FN-5653: inject active goal context into heartbeat and executor prompts
Align heartbeat and executor prompt assembly so both lanes receive the same active-goal context block. - inject goalContext into heartbeat and executor buildPromptLayers inputs using buildGoalContextSection - extend goal-context regression coverage with parity tests for heartbeat/executor injection and empty-goal behavior - update executor test helpers for goal-store access and document the shared prompt-lane behavior in architecture/agents docs Files changed: docs/agents.md | 1 + docs/architecture.md | 1 + packages/engine/src/__tests__/executor-test-helpers.ts | 3 + packages/engine/src/__tests__/goal-context-injection.test.ts | 72 ++++++++++++++++++++++ packages/engine/src/agent-heartbeat.ts | 12 +++- packages/engine/src/executor.ts | 12 +++- packages/engine/src/prompt-layers.ts | 9 ++- 7 files changed, 107 insertions(+), 3 deletions(-) Fusion-Task-Id: FN-5653 Fusion-Task-Lineage: d2670585-57f7-409d-bb11-cef3448267a6
This commit is contained in:
@@ -279,6 +279,7 @@ Heartbeat sessions for durable agents resolve models with heartbeat-specific fal
|
||||
When the runtime model is present and differs from execution-lane settings, heartbeat passes the execution-lane model as a fallback pair for session creation.
|
||||
|
||||
Task-scoped heartbeat runs for durable agents execute inside the task's git worktree (same as ephemeral task execution), while no-task heartbeat runs continue to execute from the project root.
|
||||
Heartbeat and executor system prompts share the same active-goal context injector (`buildGoalContextSection`), so both lanes receive identical goal preambles when active goals exist.
|
||||
|
||||
If a heartbeat cannot create/run a session due to unavailable provider credentials or missing provider registration, Fusion records `resultJson.reason = "heartbeat_model_unavailable"` with actionable diagnostics in `resultJson.detail`/`stderrExcerpt`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user