diff --git a/docs/evidence/live-acceptance.json b/docs/evidence/live-acceptance.json index a7e55b0..34cdeeb 100644 --- a/docs/evidence/live-acceptance.json +++ b/docs/evidence/live-acceptance.json @@ -1,35 +1,35 @@ { "schemaVersion": "ifd-live-acceptance/v1", "acceptance": "BUILD-04", - "recorded_at": "2026-11-13T04:34:45.969186+00:00", + "recorded_at": "2026-11-13T05:22:46.980922+00:00", "deployment": { - "commit": "553a41ff8ceee658779196f2856b4cebc3ae241f", - "worker_version": "42d1aede-d6f5-4e0b-a226-32617cab2c9e" + "commit": "238f05ceee4984261cffcbe9d48e92088c19fca6", + "worker_version": "62bc3afe-fb1f-474f-b2de-765ac1fdfeb5" }, - "integration_digest": "3f5c27cd714b6f1ba0c85c7056419c4e6b62ee8481cc12be0b17cd8441e33845", + "integration_digest": "3c11a1be1cbc5c631098d42a7b6411396c9488c7c5cdda21ae51d62b40544a5c", "outcomes": { "generation_through_mcp": { "passed": true, - "detail": "v047-acceptance-20261113T0435Z leg 1, v047-acceptance-20261113T0435Z leg 2" + "detail": "v051-acceptance-20261113 leg 1, v051-acceptance-20261113 leg 2" }, "neo_response": { "passed": true, - "detail": "v047-acceptance-20261113T0435Z leg 1 (A21N), v047-acceptance-20261113T0435Z leg 2 (A21N)" + "detail": "v051-acceptance-20261113 leg 1 (A20N), v051-acceptance-20261113 leg 2 (A20N)" }, "two_legs_retained": { "passed": true, - "detail": "v047-acceptance-20261113T0435Z legs 1 and 2" + "detail": "v051-acceptance-20261113 legs 1 and 2" }, "authentication_and_resumption": { "passed": true, - "detail": "approval wait, resume and signed-in generation: v047-acceptance-20261113T0435Z" + "detail": "approval wait, resume and signed-in generation: v051-acceptance-20261113" } }, "cases": [ { - "thread": "trip-a674affc1b", - "trip": "v047-acceptance-20261113T0435Z", - "interrupts": 2, + "thread": "trip-6543469f37", + "trip": "v051-acceptance-20261113", + "interrupts": 3, "resumes": 4, "legs": [ { @@ -38,21 +38,21 @@ "requested": { "origin": "KIAD", "destination": "KEWR", - "aircraft": "A21N", - "departure": "2026-11-13T14:00:00Z" + "aircraft": "A20N", + "departure": "2026-11-14T14:00:00Z" }, "generation": { "status": "generated", - "clicked_at": "2026-11-13T04:33:08.752596+00:00", + "clicked_at": "2026-11-13T05:20:42.101703+00:00", "browser_session": true }, "snapshot": { - "sha256": "a63e3d4603943fc117c08da55c0dc8a6c86472eead1a71866862cf0fc89a169d", - "retrieved_at": "2026-11-13T04:33:21.323954+00:00", - "generated_at": "2026-11-13T04:33:09Z", + "sha256": "a43b02a687926a06f2a856a532a57007aa65c45f82f493bbe3a46e8edaeba176", + "retrieved_at": "2026-11-13T05:20:55.378465+00:00", + "generated_at": "2026-11-13T05:20:43Z", "origin": "KIAD", "destination": "KEWR", - "aircraft": "A21N", + "aircraft": "A20N", "takeoff_status": "available" } }, @@ -61,22 +61,22 @@ "revision": 1, "requested": { "origin": "KEWR", - "destination": "EIDW", - "aircraft": "A21N", - "departure": "2026-11-13T23:15:00Z" + "destination": "KIAD", + "aircraft": "A20N", + "departure": "2026-11-14T18:00:00Z" }, "generation": { "status": "generated", - "clicked_at": "2026-11-13T04:33:55.305297+00:00", + "clicked_at": "2026-11-13T05:21:31.561695+00:00", "browser_session": true }, "snapshot": { - "sha256": "3ca1d8c02210ae5e03228c3080237c58544031f86f5c5270b3be4247bc2a391c", - "retrieved_at": "2026-11-13T04:34:10.114476+00:00", - "generated_at": "2026-11-13T04:33:56Z", + "sha256": "268a6e51fe528a7ff477cad6d115b3498af037e1e6d2b715945d1212f3e99626", + "retrieved_at": "2026-11-13T05:21:43.080169+00:00", + "generated_at": "2026-11-13T05:21:32Z", "origin": "KEWR", - "destination": "EIDW", - "aircraft": "A21N", + "destination": "KIAD", + "aircraft": "A20N", "takeoff_status": "available" } } diff --git a/docs/evidence/v051-release.md b/docs/evidence/v051-release.md new file mode 100644 index 0000000..38b1d0f --- /dev/null +++ b/docs/evidence/v051-release.md @@ -0,0 +1,74 @@ +# v0.5.0 and v0.5.1 releases: managed trip preparation + +Observed November 13, 2026 UTC. v0.5.0 added durable trip progress (`trip_progress`, INT-416) +and safe cancellation with turn deadlines (`cancel_trip`, INT-417). It was deployed, failed +live acceptance, and was rolled back. v0.5.1 fixed the failure and passed production live +acceptance, including cancellation. + +## v0.5.0 incident and rollback + +- [Release run](https://github.com/IntelIP/InfiniteFlightAgent/actions/runs/43368857075) from + `3519df0b5fea383ae85cf60456a63bebf7926370`; Worker `bcca9620-3e4d-42be-bb1e-44acf95cce3a` + at 100%, image `sha256:8a5bc1cda0e9…`. +- Every SimBrief generation failed before the click (`provider_error_unknown`, Browserbase + session `3a957516-edf9-4245-9618-f730fecb23ea`, 6.2 s). Container log at 05:05:30: + `playwright/driver/node: error while loading shared libraries: libatomic.so.1`. Dependabot + [#33](https://github.com/IntelIP/InfiniteFlightAgent/pull/33) moved playwright 1.64.1 → + 1.65.0, whose driver needs a library `python:3.12-slim` lacks. Unit tests mock the browser, + so CI never started the driver. +- The same v0.5.0 trip showed `cancel_trip` withdrawing a pending approval correctly, with + one defect: `turn_status` still returned the withdrawn `approval_required`. +- Production was rolled back to v0.4.7 (Worker `42d1aede-d6f5-4e0b-a226-32617cab2c9e`) with + `wrangler versions deploy`. No v0.5.0 plan was generated. + +## v0.5.1 fix and release identity + +[PR #37](https://github.com/IntelIP/InfiniteFlightAgent/pull/37) pins `playwright==1.64.1`, +makes `turn_status` report `cancelled` after `cancel_trip` (regression test fails without +the fix), and adds the CI `image` job that starts the Playwright driver inside the built +container. Locally that check reproduced the v0.5.0 failure (`Connection closed while +reading from the driver`) and passed on the fix. + +- PR squash merge and release source/tag: `238f05ceee4984261cffcbe9d48e92088c19fca6`. +- [Release workflow](https://github.com/IntelIP/InfiniteFlightAgent/actions/runs/43370679495): guard, source CI including `image`, upload, owner-authorized production approval, promotion, trigger deployment and GitHub release publication passed. +- Production Worker: `62bc3afe-fb1f-474f-b2de-765ac1fdfeb5`, at 100%. +- Immutable image: `sha256:50cb0c37d75184b4576e091d8aed362d03543c672f47ce4074edd9350ad656e2`. +- Rollback Worker: `42d1aede-d6f5-4e0b-a226-32617cab2c9e` (v0.4.7). Do not roll back to v0.5.0. +- Integration digest: `3c11a1be1cbc5c631098d42a7b6411396c9488c7c5cdda21ae51d62b40544a5c`. +- Local: 478 tests passed with three Postgres-only skips; Ruff check and format clean. + +## Production live acceptance (v0.5.1) + +Acceptance ran on the promoted production Worker through the remote MCP tools. + +**Cancel before approval.** Conversation `trip-7928b5ad19`, trip `v051-cancel-a-20261113` +(KIAD–KTEB, A20N). `cancel_trip` returned `cancelled` (`outcome: stopped`) and withdrew the +pending approval. `trip_progress` showed the turn and approval `cancelled`; `turn_status` +returned `cancelled`; a later `approve_dispatch` was refused ("This approval was cancelled +and cannot be approved. Nothing was dispatched or generated."); `conversation_status` +returned `approval_cancelled`; nothing was saved for the trip. + +**Three-leg trip with a cancelled final leg.** Conversation `trip-6543469f37`, trip +`v051-acceptance-20261113`: private standard A20N, N320HD, four passengers, KGS, automatic +routes and runways, November 14, 2026. + +| Leg | Departure UTC | Result | Retained route | Browser seconds | +| --- | --- | --- | --- | ---: | +| 1: KIAD–KEWR | 14:00 | generated, briefing ready | `JCOBY4 SWANN PHLBO4` | 39.4 | +| 2: KEWR–KIAD | 18:00 | generated, briefing ready | `DCT PARKE HYPER9` | 37.8 | +| 3: KIAD–KBOS | 22:00 | approval cancelled, never generated | — | — | + +With leg 3's approval pending, `trip_progress` showed legs 1 and 2 `briefing_ready` and the +approval history. `cancel_trip` then withdrew leg 3 (`withdrawn_revisions: []`); afterwards +`turn_status` returned `cancelled`, `conversation_status` `approval_cancelled`, and +`approve_dispatch` was refused. Legs 1 and 2 kept their briefings (snapshots `a43b02a6…`, +`268a6e51…`). No Generate was retried and no browser remained active. All four +[database-derived BUILD-04 outcomes](live-acceptance.json) pass and product validation +reports `passed`. + +## Limitations + +Cancellation while a browser session is open, and the 600-second turn deadline, were not +exercised live; both remain controlled-test evidence. Leg 2's SimBrief-chosen route has no +SID (`DCT PARKE HYPER9`). Both briefings flag their FLEX thrust estimate as `SUSPECT` +(reduction over the 25% FAA AC 25-13 limit); thrust remains a simulation-grade estimate. diff --git a/docs/implementation/deployment.md b/docs/implementation/deployment.md index e2ed26d..80598a6 100644 --- a/docs/implementation/deployment.md +++ b/docs/implementation/deployment.md @@ -1,8 +1,28 @@ # Cloudflare deployment + + +## Current release: v0.5.1 + +Observed November 13, 2026 UTC: [PR #37](https://github.com/IntelIP/InfiniteFlightAgent/pull/37) +is merged and [v0.5.1](https://github.com/IntelIP/InfiniteFlightAgent/releases/tag/v0.5.1) +is deployed at 100%, adding trip progress and safe cancellation (v0.5.0) with the +generation fix. v0.5.0 (Worker `bcca9620-3e4d-42be-bb1e-44acf95cce3a`) failed every +generation and was rolled back to v0.4.7 before v0.5.1; do not redeploy it. + +- Release source and PR merge: `238f05ceee4984261cffcbe9d48e92088c19fca6`. +- Production Worker: `62bc3afe-fb1f-474f-b2de-765ac1fdfeb5`. +- Immutable image: `sha256:50cb0c37d75184b4576e091d8aed362d03543c672f47ce4074edd9350ad656e2`. +- Rollback Worker: `42d1aede-d6f5-4e0b-a226-32617cab2c9e` (v0.4.7). + +The [release report](../evidence/v051-release.md) owns the v0.5.0 incident, rollback, +identities, cancellation acceptance and limitations. All four +[database-derived BUILD-04 outcomes](../evidence/live-acceptance.json) pass for this release +integration. Two sequential browser sessions used 77.1 seconds; zero active browsers remained. + -## Current release: v0.4.7 +## Previous release: v0.4.7 Observed November 13, 2026 UTC: [PR #27](https://github.com/IntelIP/InfiniteFlightAgent/pull/27) is merged and [v0.4.7](https://github.com/IntelIP/InfiniteFlightAgent/releases/tag/v0.4.7)