---ci---
phase: 8
milestone: v0.1
status: approval_pending
escalation:
type: prototype_approval
hook: prototype_approval
resolution: pending_owner_decision
message: >-
Extended prototype (v0.1.8) complete and presented for approval,
with v0.1.7-uat already staged on the LXC host per owner cadence.
On recorded approval: milestone merge to main, milestone branches
deleted, v0.2 unblocked. On rejection: feedback becomes binding
decisions for a fix cycle.
requirements:
covered: [REQ-52, REQ-53, REQ-54, REQ-55, REQ-56, REQ-57, REQ-58, REQ-59, REQ-60, REQ-61, REQ-63, REQ-64, REQ-65, REQ-66, REQ-67, REQ-68]
partial: [REQ-62]
---/ci---
Final phase: full-milestone 2nd final review PASS-WITH-FIXES (double-
compose race + drawer-keyboard P1s, suite 88→90 with regression
tests), audit PASS-WITH-NOTES with all notes applied (ARCHITECTURE
§7 + Build Order ask-intelligence layer, root README /ask row,
VERSIONING v0.1.8 table, settings About + package.json version).
PLAN.md records the phase-8 work + 10-step owner demo script.
Checkpoint: approval_pending at the REQ-62 gate — milestone merge to
main halts for the recorded owner decision.
---ci---
phase: 8
milestone: v0.1
status: execute
persona: ci-lead-developer
requirements:
covered: [REQ-62]
partial: [REQ-67, REQ-68]
---/ci---
Full-milestone 2nd final review verdict: PASS-WITH-FIXES. Probe
suite proved: Enter at the last exchange question composed TWICE
(stale section-level guard re-ran submitAnswer after the input guard
advanced — invisible with the deterministic mock, a doubled paid
POST the day v0.2 wires the endpoint), and Enter on focused drawer
buttons (Keep original/Skip/Next) was dead (section preventDefault
swallowed the click). Fixed: single Enter path (input guard owns
Enter; buttons self-activate); error state gained a Keep original
button (mouse-user trap on compose failure). 2 regression tests
(single-compose spy, Enter-on-button activation); suite 88→90.
P2s applied: VERSIONING.md tag table → v0.1.0…v0.1.8, gate note →
v0.1.7/v0.1.8; settings About string + pinning test → v0.1.8;
trailing newline. P6 fixes verified holding (deep-link resolver,
avatar toggle, preview pills, live dials); P7 verify fixes sound;
deploy-record refs verified accurate. Adversarial probe: no drawer
control can submit the outer form (0 submissions through input,
Next, Skip, Keep original).
Post-hoc v0.2 log: compose-endpoint idempotency key; freeze draft
at drawer-open; confirm-overwrite when context non-empty; Try-
again from error state; textarea answers; aria-live progress.