Skip to content

mcpx plugin: the instructions option has never worked on opencode v1 #1938

Closed

Description

@dezren39

Relocated from dezren39/darwin-nix#217 on 2026-10-28 (placement audit): mcpx's single source lives in developing-today/code (pkgs/mcpx); re-home tracked at #309. Original body below; issue references inside it are historical (dezren39/nix numbering).

Parent: #181

Summary

The plugin's instructions option pushes onto output.parts, but opencode v1 calls experimental.chat.system.transform with {system: string[]}. Nothing is injected, silently, on every turn.

Found while writing the comparison register (pkgs/mcpx/docs/compare/) and checked against the code at 05c78b2. Each row below links its register entry, which carries the value, effort, risk, the specification text and every source.

Register rows

row difference mcpx @ 05c78b2 effort
PLG-16 experimental.chat.system.transform output is {system: string[]} ✗ broken — writes output.parts; never injected S

Evidence

plugin/opencode/mcpx-session.ts:745-746; v1:packages/opencode/src/session/llm/request.ts:69-73 (opencode 1.18.31).

What to do

output.system.push(text), and a test that runs the hook against v1's call shape.

Ease · Impact · Related

Ease S · Impact low · Related: #189, #47

Acceptance criteria

  • The plugin's instructions option actually reaches the system prompt on opencode v1: the hook writes to output.system (a string[]), not output.parts.
  • A regression test runs the hook against opencode v1's actual call shape (experimental.chat.system.transform with {system: string[]}).
  • Setting the option with no instructions configured remains a no-op (no empty injection).

Activity

  1. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    History carried over from dezren39/darwin-nix#217 (verbatim, oldest first):


    @dezren39 · 2026-10-28T04:30:35Z

    🤖 Intake review — fleet monitor, 2026-10-27 run

  2. developing-today commented on Oct 28, 2026

    @developing-today
    Contributor
  3. added
    bugSomething isn't working
    kind/bugSomething isn't working (prefixed form of the classic bug label)
    source/humanFiled directly by a human
    priority/normalOrdinary priority (the default)
    effort/sSmall: expected under 2 hours of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)
    queue/queuedHas a queued task in the Supabase agent queue
    on Oct 28, 2026
  4. added
    work/assignedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Oct 29, 2026
  5. 16 remaining items

  6. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    queue/claimedQueue worker lifecycle state
    and removed
    queue/claimedQueue worker lifecycle state
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Oct 30, 2026
  7. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Agent note — picked up (resume)

  8. added a commit that references this issue on Oct 30, 2026
  9. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Agent note — done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)bugSomething isn't workingeffort/sSmall: expected under 2 hours of workkind/bugSomething isn't working (prefixed form of the classic bug label)meta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)source/humanFiled directly by a human

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions