You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
plugin API: v2 plugins cannot list child sessions, read live provider pricing, or learn the server URL #19
Porting the tokenscope plugin from v1 to v2 lost these features because the v2 plugin Context (packages/plugin/src/promise/plugin.ts) has no equivalent for them:
Child sessions: no way to enumerate a session's subagent sessions, so there is no per-subagent cost breakdown.
Provider pricing: no access to live model pricing; the plugin falls back to a bundled models.json.
Agent/skill catalog: no way to estimate the token cost of the agent and skill catalog.
Server URL: v1 passed serverUrl (plus client); v2 passes neither, so anything that called the HTTP API from a plugin can't.
Context window:ctx.session.context only returns messages since the last compaction.
Request: expose read-only APIs for these, or document the intended replacement.
Acceptance criteria
A v2 plugin can enumerate a session's child (subagent) sessions read-only, or the issue is answered with the intended replacement API and the plugin-facing docs are updated.
A v2 plugin can read live provider/model pricing (the same data the server uses), instead of relying on a bundled models.json.
A v2 plugin receives the server URL (and an authenticated client or equivalent) as v1 did, so HTTP-API calls from plugins work again.
For each remaining gap (agent/skill catalog token cost, full pre-compaction session context), there is either an API or a documented, intentional 'not supported' decision recorded on this issue.
Filed by Drew 2026-10-17 while porting the tokenscope plugin from v1 to v2: five concrete API losses in the v2 plugin Context (packages/plugin/src/promise/plugin.ts). Still live at intake — no merged PR found restoring any of the five, and the issue has had no triage labels until now. Effort/l: this is plugin-API design + implementation across several surfaces, and it needs a maintainer-shaped decision on what the v2 API should expose (design first, then implement — a design note on the issue would unblock scoping). Related: the tokenscope port is the consumer; per-subagent cost breakdown is the headline use case.
— Fleet monitor intake enrichment (protocol §5): acceptance criteria appended to the body where missing, labels normalised, meta/enriched added. Liveness checked against merged PRs / related issues at intake; no merged PR explicitly resolves this issue, so it stays open.
Per-gap verdict at HEAD 88ecd395ae846401b861c07413337a162f30f2c2 (2026-10-28):
Child sessions — CONFIRMED (for plugins). The client SessionApi has list, and SessionListInput accepts a parentID filter (packages/client/src/effect/api/api.ts:121-135), but the plugin SessionDomain (packages/plugin/src/promise/session.ts) is a Pick<SessionApi, …> that omits list (and stats). A v2 plugin therefore cannot enumerate child sessions even though the server/client can.
Server URL — CONFIRMED. The plugin Context interface (packages/plugin/src/promise/plugin.ts) exposes app, location, options and domain objects only — no serverUrl, no client. Anything that called the HTTP API from a v1 plugin still can't.
Live pricing — NOT a gap at HEAD.Model.Info carries cost: Array<Cost> (input/output/cache, USD per million tokens — packages/schema/src/model.ts), ModelApi.list returns Model.Info[], and the plugin ModelDomain extends ModelApi. Pricing is already readable via ctx.model.list(); what is missing is documentation saying so.
Agent/skill catalog — enumeration exists.AgentDomain/SkillDomain expose list() editors returning Agent.Info[]/Skill.Info[]. Token-cost estimation from those listings is plugin-side; this needs a documented decision, not a new API.
Session context — contextis in the plugin Pick; its post-compaction-only behaviour is left for the follow-up to document as intentional or file separately.
Issue stays open; the fix (items 1–2 in code, 3–5 as documentation) is queued as task 2684.
Activity
dezren39 commentedon Oct 27, 2026
Intake review
Filed by Drew 2026-10-17 while porting the tokenscope plugin from v1 to v2: five concrete API losses in the v2 plugin
Context(packages/plugin/src/promise/plugin.ts). Still live at intake — no merged PR found restoring any of the five, and the issue has had no triage labels until now. Effort/l: this is plugin-API design + implementation across several surfaces, and it needs a maintainer-shaped decision on what the v2 API should expose (design first, then implement — a design note on the issue would unblock scoping). Related: the tokenscope port is the consumer; per-subagent cost breakdown is the headline use case.— Fleet monitor intake enrichment (protocol §5): acceptance criteria appended to the body where missing, labels normalised,
meta/enrichedadded. Liveness checked against merged PRs / related issues at intake; no merged PR explicitly resolves this issue, so it stays open.dezren39 commentedon Oct 28, 2026
🤖 Agent note · picked up
dezren39 commentedon Oct 28, 2026
🤖 Agent note · done
Per-gap verdict at HEAD
88ecd395ae846401b861c07413337a162f30f2c2(2026-10-28):SessionApihaslist, andSessionListInputaccepts aparentIDfilter (packages/client/src/effect/api/api.ts:121-135), but the pluginSessionDomain(packages/plugin/src/promise/session.ts) is aPick<SessionApi, …>that omitslist(andstats). A v2 plugin therefore cannot enumerate child sessions even though the server/client can.Contextinterface (packages/plugin/src/promise/plugin.ts) exposesapp,location,optionsand domain objects only — noserverUrl, noclient. Anything that called the HTTP API from a v1 plugin still can't.Model.Infocarriescost: Array<Cost>(input/output/cache, USD per million tokens —packages/schema/src/model.ts),ModelApi.listreturnsModel.Info[], and the pluginModelDomainextendsModelApi. Pricing is already readable viactx.model.list(); what is missing is documentation saying so.AgentDomain/SkillDomainexposelist()editors returningAgent.Info[]/Skill.Info[]. Token-cost estimation from those listings is plugin-side; this needs a documented decision, not a new API.contextis in the plugin Pick; its post-compaction-only behaviour is left for the follow-up to document as intentional or file separately.Issue stays open; the fix (items 1–2 in code, 3–5 as documentation) is queued as task 2684.
16 remaining items
dezren39 commentedon Oct 29, 2026
🤖 Agent note · parked
dezren39 commentedon Oct 29, 2026
🤖 Agent note · state: done (merged)
docs(roadmap): drop landed rows (#78/#81/#82/#8/#19) (#890)