Skip to content

Commit 7b829f7

Browse files
committed
feat(subagent): single routing resolver with persisted binding provenance
Model selection for a new subagent lived in planSpawn() and in the config-section helper, and nothing recorded why a child was bound the way it was, so a resumed child that kept an older model looked like a bug. - resolveSubagentModelRoute() is the only authority that binds a model (inherit | default | pool | force, primary override, force rejects any explicit choice); resolveSubagentBinding() and the new SessionSubagentRoutingService both delegate to it. planSpawn() is a facade over the routing service and every plan carries RoutingProvenance: operation, profile/model source, policy mode and source, feature source, the ambient routingEnvironmentRevision and the request-level routeDecisionFingerprint. - SubagentBindingProvenance is persisted once on the child (durable agent event + replayable state key) when it is created from a plan. Resume reads it back: modelSource/profileSource become resume-existing, the original revision is kept, and the caller's current revision is reported alongside, never written into the child. - SubagentTaskInfo, the subagent.spawned event, REST /tasks, the WS roster and the session snapshot carry the provenance and the current revision; the protocol package and the web client map it into AppTask, DynamicWorkflowMember and the card rows. - The Dynamic Workflow result writes durable <subagent> attributes (profile, model, thinking, provenance ids, started_at, completed_at) through the attribute escaper; the web parser reads them and older results without them still parse.
1 parent f9599fb commit 7b829f7

137 files changed

Lines changed: 2142 additions & 524 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": minor
3+
---
4+
5+
Subagent tasks and Dynamic Workflow results now record the profile, model, and routing source of each subagent, and a resumed subagent keeps the binding it was created with.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"sourceHash": "5d7616360c85d8f5fe0f68babfb195b1fc7c06007a60950699e51cc59f73c31d",
2+
"sourceHash": "ff9cea689ea2d9e07ac26673855bc5420a99d0e05548db0f809e1873a4d72502",
33
"sourceFileCount": 405
44
}

apps/pythinker-code/dist-web/assets/CodeBlockNode-CMu72p77.js renamed to apps/pythinker-code/dist-web/assets/CodeBlockNode-awqT9Za4.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/pythinker-code/dist-web/assets/DesignSystemView-PS4WSCE_.js renamed to apps/pythinker-code/dist-web/assets/DesignSystemView-BykQN2PA.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/pythinker-code/dist-web/assets/Tooltip-DPIc56UM.js renamed to apps/pythinker-code/dist-web/assets/Tooltip-DODMvEi_.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/pythinker-code/dist-web/assets/abnfDiagram-VCTEODGH-ayZPYKeK.js renamed to apps/pythinker-code/dist-web/assets/abnfDiagram-VCTEODGH-DDD-hIs9.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/pythinker-code/dist-web/assets/arc-D3QDsavW.js renamed to apps/pythinker-code/dist-web/assets/arc-JOc_QHZh.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/pythinker-code/dist-web/assets/architectureDiagram-5GKGNRK7-BbXkNb7a.js renamed to apps/pythinker-code/dist-web/assets/architectureDiagram-5GKGNRK7-D4DZkbUo.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)