Skip to content

[API] setConfiguration/getConfiguration not synced through provider state, task controls unwired (vps2 F5; upstream #982) #1556

Description

@easonLiangWorldedtech

Title: [API] setConfiguration/getConfiguration not synced through provider state, task controls unwired (vps2 F5; upstream #982)

Body:

Gap

At the base of record (upstream/main @ 0d937c0) plus the shipped F1-series and F2 heads, the extension API (src/extension/api.ts) is out of sync with the durable per-view state machinery:

  • setConfiguration writes through contextProxy.setValues directly with no sidebar/extension-host view-targeting contract (view-local vs global routing is undefined); getConfiguration has no flatten / secret-strip.
  • startNewTask has no preserveOpenTabs passthrough (the new-tab editor cleanup always runs).
  • The API has no task registry: approveTaskAsk / denyAsk resolve against nothing, and no TaskCreated/TaskCompleted/TaskAborted lifecycle tracking.
  • selectTaskFollowupSuggestion is absent (a follow-up suggestion cannot be applied to a task, including the mode-switch-failure path that must still deliver the answer).
  • getGlobalState is absent.

Upstream provenance

Fix unit

vps2 F5 of the durable per-view state series (fork tracking issue easonLiangWorldedtech#41). Draft PR: #1557 (branch vps2/f5-api-wiring, stacked on the F2 head aa0f3b1). Tracking ledger: easonLiangWorldedtech#41.

Fix scope (5 files, a+d 557 measured vs the F2 head)

  1. packages/types/src/api.ts — the two documented doc fixes: the preserveOpenTabs @PARAM JSDoc on startNewTask; the stale setConfiguration JSDoc rewrite (writes target the extension-host (sidebar) view: view-local values pinned to the sidebar's per-view state, global values to the shared ContextProxy). Comment/type-level only.
  2. src/extension/api.ts — the wiring port (byte-identical to the vps2 CS blob): setConfiguration/getConfiguration through provider state, task registry, approveTaskAsk/denyAsk, selectTaskFollowupSuggestion (mode-switch failure still delivers the answer, logged to the output channel), preserveOpenTabs passthrough, getGlobalState.
  3. src/extension/tests/api-task-control.spec.ts (new, 320 lines; CS-verbatim + 2 coordinator-added mutation-kill tests).
  4. src/extension/tests/api-set-configuration.spec.ts (new, 55 lines; CS-verbatim).
  5. src/extension/tests/api-configuration.spec.ts (new, 38 lines; CS-verbatim).

Parked limitation (documented in the PR, not fixed)

Sidebar-only API targeting (#41 parked item 10, A4 major): the extension API always targets the sidebar/extension-host provider; a per-view API handle is the architectural fix and is out of scope for this series.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions