Priority: High | Dependency: Phase 1 (issue #17)
Description
HITL gate rendering and live step streaming. These require deeper integration with the NDJSON event stream.
Acceptance Criteria
ail-core Change Required
ail-core/src/executor.rs: add message: Option<String> to HitlGateReached variant, populated from the step's message: YAML field.
- Update
spec/core/s23-structured-output.md (or equivalent) with the new field.
Files to Modify
vscode-ail/src/panels/unifiedPanelHtml.ts — HITL card, streaming DOM append, auto-scroll
vscode-ail/src/panels/UnifiedPanel.ts — VS Code notifications, gate timeout timer
vscode-ail/src/application/RunnerService.ts — forward gate events with context
vscode-ail/src/types.ts — add message?: string to HitlGateReachedEvent
ail-core/src/executor.rs — add message field to HitlGateReached
Priority: High | Dependency: Phase 1 (issue #17)
Description
HITL gate rendering and live step streaming. These require deeper integration with the NDJSON event stream.
Acceptance Criteria
hitl_gate_reachedevent arrives, UnifiedPanel renders an interactive decision card with: step ID, gate type, message text, Approve/Reject buttons. Step row shows ⏸ glyph.permission_requestedevent arrives, render a permission card with tool name, detail, Allow/Deny buttons.hitl_responseto ail stdin. Allow/Deny writespermission_response.<id>is waiting for approval." Clicking reveals UnifiedPanel.stream_deltaevents render incrementally in active step's Output section (not batched).thinkingevents render in distinct collapsible "Thinking" section during execution.ail-core Change Required
ail-core/src/executor.rs: addmessage: Option<String>toHitlGateReachedvariant, populated from the step'smessage:YAML field.spec/core/s23-structured-output.md(or equivalent) with the new field.Files to Modify
vscode-ail/src/panels/unifiedPanelHtml.ts— HITL card, streaming DOM append, auto-scrollvscode-ail/src/panels/UnifiedPanel.ts— VS Code notifications, gate timeout timervscode-ail/src/application/RunnerService.ts— forward gate events with contextvscode-ail/src/types.ts— addmessage?: stringtoHitlGateReachedEventail-core/src/executor.rs— addmessagefield toHitlGateReached