Skip to content

[devtools W1d] make plugin manifests forward-compatible before pointer fields #1474

Description

@rickylabs

Authority: RFC 0005 — DevTools contribution architecture (merged on main).
Planning record: .llm/runs/plan-devtools-contribution--seed/. Ratified by the owner 2026-08-11.

Part of #400

Context

RFC 0005 §15.1 fork F-3 and plan.md risk R5 record drift D-6: #890's claim that "older
CLIs ignore an unknown block" is false — the manifest schema is .strict(), so an unknown key
hard-rejects and the plugin fails to parse. plan.md's rework audit classifies F-3 as
MUST RESOLVE — would force rework, because the .passthrough()-vs-schemaVersion: 2 choice has
different old-CLI behavior and different tests, and it blocks the pointer and emitter slices.
The decision brief also notes this is a live defect in #890/#922's own plan (slice #929 is built
on it), surfaced by this run and escalated — it is not ours to fix unilaterally.

Scope

Files / roots, verbatim from RFC 0005 §14:

  • packages/plugin/src/protocol/manifest.ts

Introduces (verbatim): the chosen compatibility contract (.passthrough()/catchall or
schemaVersion: 2).

Out of scope

Acceptance

Dependencies

  • BLOCKED on owner fork F-3 (RFC 0005 §15.1). The unblocking decision is:
    "Manifest schema-evolution precondition — land it before any manifest-visible pointer", and
    specifically which compatibility contract is chosen. Until the owner selects
    .passthrough()/catchall or schemaVersion: 2, this slice has no implementable contract and
    stays at status:triage.
  • Depends on: fork F-3 ratification (RFC 0005 §14 lists fork F-3 as this slice's dependency, not
    another slice).
  • Blocks: W2-a, and every manifest-visible pointer slice.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:pluginsplugins/* and plugin-core packagesepic:dev-dashboardDev Dashboard epic (Spine-1 headline, ships as a plugin)priority:p0Critical / release blockerstatus:triageIncoming; not yet triagedtype:fix

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions