Skip to content

Commit 2ff36ad

Browse files
authored
Merge pull request #196 from pylon-code/fix/prime-planning-capability
fix(server): report Prime plan observation
2 parents 728239b + b51abb0 commit 2ff36ad

4 files changed

Lines changed: 26 additions & 6 deletions

File tree

‎apps/server/src/provider/prime/PrimeAgentFeatureCapabilities.test.ts‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ describe("PrimeAgentFeatureCapabilities", () => {
3030
runtimeModes: ["approval-required", "full-access"],
3131
enforcement: "host-gated",
3232
});
33+
expect(capabilities.planning).toMatchObject({
34+
support: "read-only",
35+
operations: ["observe"],
36+
});
37+
expect(capabilities.planning?.reason).toContain("formal Plan interaction mode");
3338
expect(capabilities.agents).toMatchObject({
3439
support: "read-write",
3540
operations: ["observe", "hierarchy", "live-activity", "message", "cancel", "set-depth"],
@@ -143,6 +148,11 @@ describe("PrimeAgentFeatureCapabilities", () => {
143148
runtimeModes: ["full-access"],
144149
enforcement: "none",
145150
});
151+
expect(capabilities.planning).toMatchObject({
152+
support: "read-only",
153+
operations: ["observe"],
154+
});
155+
expect(capabilities.planning?.reason).toContain("standard ACP PlanUpdated");
146156
expect(capabilities.model?.operations).toEqual(["select"]);
147157
expect(capabilities.agents?.support).toBe("unavailable");
148158
expect(capabilities.goals?.support).toBe("unavailable");

‎apps/server/src/provider/prime/PrimeAgentFeatureCapabilities.ts‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@ const shared = {
1717
"Pylon reports whether Prime Agent has a configured model provider; sign-in and sign-out remain owned by the Prime Agent CLI.",
1818
operations: ["status"] as const,
1919
},
20-
planning: unavailable("Prime Agent does not expose a Pylon-compatible plan mode."),
20+
planning: {
21+
support: "read-only" as const,
22+
reason:
23+
"Pylon shows bounded Prime plan progress from the managed daemon bridge or standard ACP PlanUpdated events. Prime does not expose a compatible formal Plan interaction mode.",
24+
operations: ["observe"] as const,
25+
},
2126
goals: unavailable("Goal state is not projected into Pylon yet."),
2227
gates: unavailable("Autonomous gate mutation is not exposed by the loaded Prime Agent runtime."),
2328
automation: unavailable("Prime Agent automations are not projected into Pylon yet."),

‎docs/internals/prime-agent-daemon-parity.md‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,10 @@ unavailable, and when custom Prime launch arguments are configured. Prime Agent
194194
the managed bridge and drops custom tool-result `details`, so those sessions retain only Prime's standard
195195
ACP `PlanUpdated` handling. Matching managed-tool parity in ACP requires a separately reviewed bounded
196196
content envelope and credible extension verifier, or another scoped transport; it is not implied by this
197-
ledger's daemon support.
197+
ledger's daemon support. The provider feature snapshot advertises planning as read-only `observe` in both
198+
modes because bounded plan progress reaches Pylon. It does not advertise `propose`, `update`, or
199+
`select-mode`; Prime has no compatible formal Plan interaction mode, and Pylon keeps that composer control
200+
hidden instead of synthesizing one with a hidden prompt.
198201

199202
Any transcript mismatch, incomplete streaming snapshot, MCP reattachment failure, or unvalidated barrier
200203
fails the canonical turn once and disposes the uncertain native session. This recovery is in-memory only;

‎docs/user/providers-prime-agent.md‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -273,10 +273,12 @@ access off withholds both the tools and their instructions; it does not affect b
273273
- Prime Agent 0.8.1 has no daemon-native or operating-system sandbox policy. Supervised mode gates
274274
tool admission but does not restrict an approved tool.
275275
- Authentication is managed in Prime Agent, not Pylon.
276-
- Plan mode, provider-conversation rollback, and general per-item queue editing or reordering are
277-
not supported yet. Pylon integrates Prime Agent 0.8.1's mutation API only for removing a lane's
278-
sole item. With multiple count-only items, clients cannot identify a
279-
specific target safely without exposing queued text, and ambiguous mutations are never retried.
276+
- Formal Plan interaction mode is not supported. Pylon still shows bounded plan progress during Build
277+
turns through its managed daemon integration or plan updates from ACP compatibility mode.
278+
- Provider-conversation rollback and general per-item queue editing or reordering are not supported yet.
279+
Pylon integrates Prime Agent 0.8.1's mutation API only for removing a lane's sole item. With multiple
280+
count-only items, clients cannot identify a specific target safely without exposing queued text, and
281+
ambiguous mutations are never retried.
280282
- Pylon does not present live Prime reasoning streams, durable or historical child-session transcripts,
281283
cost breakdowns, goal mutations, heartbeats, saved-session history, or native package or MCP catalogs as first-class features. Active children have only the bounded **Live activity** view described above.
282284
- Heartbeat creation remains unavailable even though Prime Agent 0.8.1 exposes heartbeat methods. Prime does not identify a scheduled run in a way Pylon can safely match to a durable conversation turn and filesystem checkpoint. Clearing a heartbeat also does not return its underlying session to the normal lifecycle, so stopping or deleting the Pylon thread could otherwise leave invisible work behind. Pylon will not offer creation until recovery, clearing, stopping, and deletion can be made authoritative.

0 commit comments

Comments
 (0)