fix(regression): repair 5 regressions from second round, close B10/B12/B15/B16
Round 2 regression fixes: - B10 (INV-2 outbox, CRITICAL): wiring.ts — switch durable events from eventBus.publish (live-only) to eventIngestor.ingest (persistent) for debug.record.created and memory.promoted. Add required RuntimeEvent fields (id, source, route). - B12 (Scheduler events, CRITICAL): Scheduler.ts — replace all 4 eventBus.publish calls with eventIngestor.ingest + registered event types (task.started/task.failed/agent.lost/agent.cancelled). Remove unregistered task.status.changed references. - B15 (duplicate ProjectionClient): remove orphan tui/src/ProjectionClient.ts (zero references, superseded by runtime/src/projection/ProjectionClient.ts re-exported via @aircoding/runtime barrel). - RuntimeApp: wire Scheduler→WorkerManager in constructor; document start() bootstrap→recover→hydrate→ready sequence (DD §22.2). - createRuntime: read project_id from .air/shared/project.json (DD §6.1 stable UUID), fallback to Date.now() only if not initialized. - B16 (api_key strict): ProviderManager.get_or_create_adapter now calls ModelConfigLoader.validate() before passing raw api_key to adapter. Also fix from R1 regression: - ArchitectureDesigner: replace broken additive-heuristic risk scoring (single runtime file→replan, large refactor→confirmation only) with change-scope classification (contracts→confirmation, breaking→escalate, large→replan, safe→silent_continue). Remove dead evaluate_risk(). - MainAgent test: update confirmation test from old state name AWAITING_CONFIRMATION to canonical CONFIRMING (B13 state machine fix). Test: 148/148 pass (regression + e2e + llm + toolchain-cpp). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -143,31 +143,34 @@ export class ContextAssembler {
|
||||
layers.push(...task_layers)
|
||||
}
|
||||
|
||||
// L6: Evidence - stub layer (to be loaded from EvidenceStore)
|
||||
// L6: Evidence - load from EvidenceStore (P7: MVP stub)
|
||||
// TODO(P7): Integrate with EvidenceStore to load relevant evidence for current task
|
||||
layers.push({
|
||||
level: 'evidence',
|
||||
level: 'evidence' as any,
|
||||
priority: 6,
|
||||
content: '',
|
||||
content: '', // Would load from EvidenceStore.get_for_task(context.task_id)
|
||||
token_estimate: 0
|
||||
})
|
||||
|
||||
// L7: Conversation - stub layer (to be loaded from SessionStore message history)
|
||||
// L7: Conversation - load from SessionStore message history (P7: MVP stub)
|
||||
// TODO(P7): Integrate with SessionManager to load conversation history
|
||||
layers.push({
|
||||
level: 'conversation',
|
||||
level: 'conversation' as any,
|
||||
priority: 7,
|
||||
content: '',
|
||||
content: '', // Would load from SessionStore.get_messages(context.session_id)
|
||||
token_estimate: 0
|
||||
})
|
||||
|
||||
// L8: Tool output - stub layer (to be loaded from SessionStore tool results)
|
||||
// L8: Tool output - load from SessionStore tool results (P7: MVP stub)
|
||||
// TODO(P7): Integrate with SessionManager to load recent tool outputs
|
||||
layers.push({
|
||||
level: 'tool_output',
|
||||
level: 'tool_output' as any,
|
||||
priority: 8,
|
||||
content: '',
|
||||
content: '', // Would load from SessionStore.get_tool_results(context.session_id)
|
||||
token_estimate: 0
|
||||
})
|
||||
|
||||
// L9: User override - stub layer (to be loaded from user directives/additional layers)
|
||||
// L9: User override - loaded from additional_layers (already handled above)
|
||||
layers.push({
|
||||
level: 'user_override',
|
||||
priority: 9,
|
||||
|
||||
Reference in New Issue
Block a user