3.8 KiB
3.8 KiB
Track 12 Acceptance - 20260307_161629
Environment
- Base URL:
http://localhost:8080 - Database:
sqlite:///./.data_local/mvp_cc.db - Asterisk host:
92.38.48.166 - Operator user:
operator - Operator extension:
2001
Acceptance Basis
Track 12 is a UX/state hardening layer on top of accepted Track 11.
This package closes the Track 12 delta and keeps Track 11 control-path proof as the inherited baseline.
Reference control-path package:
Track 12 delta call:
call_id = 1772881979.108interaction_id = int_0349796d1erecording_id = rec_733ef323b1
Executed Scenarios
- Happy path inherited from accepted Track 11 package
- Transfer path inherited from accepted Track 11 package
- Passive path: answer in SIP, no browser action, call remains in
live-callsuntil real hangup - No-fake-cards path:
Живые звонкиuses bridge data only and does not showinteraction:int_*
Delta Evidence
- Active live call snapshot: operator-live-calls.json
- Recent call snapshot: operator-recent-calls.json
- Empty live snapshot after call end: operator-live-calls-empty.json
- Action log summary: bridge-actions.json
- Playback proof: playback-proof.json
- Live monitor trace: track12-monitor.log
What The Monitor Proved
For call 1772881979.108:
- At
2026-03-07T11:13:01+00:00the call entered/asterisk/live-callsas:status = activetelephony_status = ringing
- At
2026-03-07T11:13:05+00:00it stayed in/asterisk/live-callsand moved to:telephony_status = connectedoperator_extension = 2001
- At
2026-03-07T11:13:26+00:00a synthetic reconciledcall.endedwas emitted, but the call still remained in/asterisk/live-calls. - Only at the real final hangup (
2026-03-07T11:13:30+00:00) the call left/asterisk/live-callsand moved to/asterisk/recent-calls. recording.readywas emitted and the recording was imported successfully.
This closes the earlier defect where the card could disappear from the operator flow on the reconciled service event instead of the real final hangup.
Mandatory Checks
GET /proxy/asterisk-bridge/asterisk/live-callsreturns only active callsGET /proxy/asterisk-bridge/asterisk/recent-callsreturns only recent ended calls- passive SIP answer does not force the card out of
Активные звонкиbefore real hangup - final hangup moves the card to
Только что завершённые - no
interaction:int_*fallback cards are used forЖивые звонки - recording is available for the monitored call
- Track 11
claim / hangup / blind-transfercontrol path remains covered by the accepted Track 11 package
Notes
- The initial runtime regression after a local restart was caused by
scripts/local_stack.pynot loading.env.production; this is fixed and the launcher now auto-loads.env.production,.env.local, and.env. - The current passive-path monitored call ended without browser actions, so
bridge-actions.jsoncontains no action rows for1772881979.108. This is expected for the passive-path check. - Control-path actions (
claim,hangup,blind-transfer) remain validated by the accepted Track 11 package and were not redefined by Track 12.
Decision
- GO / NO-GO:
GO - Track 12 status:
Accepted