Repository navigation
[obvious-fleet] real-WebSocket cook-session E2E for phone and gateway, goal-path green - #186
Conversation
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…k-lechef-socket # Conflicts: # apps/ios/Tests/LeChefPlanWeeklyTests.swift
… into obv/burst9-fridgeluck-lechef-socket
…es' into obv/burst9-fridgeluck-lechef-socket
…n land green Merge ab6c9f1 brought the safety-gates feature whose sweep suite has never run green anywhere: CI run 38856495680 fails 934 sweep assertions plus one substitution-screen case, and the rejoin line's repaired head bc155f2 (run 38855840833) fails the same signature — the breakage is base-borne on obv/burst9-fridgeluck-safety-gates, not introduced by this branch's merge. PRs #187/#188 own that repair; this branch is the LeChef socket E2E work. Reverting merge ab6c9f1 restores the aea3b8f state (alpha + goal-path tip merged), where GoalPathTests.testFridgeToMealToTasteGoalPath is green — the original blocker of this PR, fixed by carrying e87ee7b's pin of actual pantry/evidence behavior. Co-authored-by: Sam Gu <sgu07966@gmail.com> Co-authored-by: obvious-autobuild[bot] <262744130+obvious-autobuild[bot]@users.noreply.github.com>
Alpha (ef236fc, via #188) already carries everything this branch adds: the lechef-e2e tool, the backend e2e boot/script, the agentServer split, GoalPathTests with the pantry and evidence pins, and the AppDependencies wiring are byte-identical on both sides. The one branch-only difference, the rights_status filter in RecipeRepositoryCatalogRecommend.swift, is also on alpha alongside the household safety gate. The automatic merge was wrong: the branch's revert of the safety-gates merge (43ae74d) made git treat alpha's repaired safety-gate code as deleted, so it silently dropped HouseholdSafetyGate, the resolver, the sweep suite and the v2 bundle classes. This merge takes alpha's tree as-is. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Note Review skipped Codemetrics is installed on this repository, but it hasn't been added to your team yet. To enable AI code reviews for this repo, go to your dashboard and add FridgeLuck to your team's repositories. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
fleet-packet: burst10-fl-lechef-socket-green
Human author: Sam Gu (sgu07966@gmail.com). This PR (opened as #186, branch
obv/burst9-fridgeluck-lechef-socket) carries burst9's phone–gateway E2E work; the burst10 continuation fixed the goal-path CI blocker and re-scoped the branch green.What changed and why
The feature (burst9, unchanged by this continuation)
The phone and the LeChef gateway had never been exercised together: the gateway's tests fake the model side, and the phone's live stack was only checked by iOS compile/tests. This PR adds the missing seam-to-seam walk — the pinned production phone sources speak the real WebSocket protocol to the real gateway, whose model side is a scripted fake.
refactor(backend)(676d7e8):server.tskeeps only production wiring; the HTTP routes and live-session gateway move to injectableagentServer.tsso an in-process boot can mount them with fakes. The gateway's frame holder gains an injectable default. No production behavior change.test(e2e)(c59bcbe):apps/ios/Tools/lechef-e2ebuilds the pinned production phone sources (WebSocket client, proposal coordinator, wire codec, proposal executor, CookMode types) on Linux with the documented rewrites (FoundationNetworking, CryptoKit, Combine@Published, excluded session-context methods) and a walk-kitchen executor implementation.src/lechef/e2e/boot.tsmounts the parameterized server with an in-memory store, the scripted fake live session, and an observable frame holder, then spawns the walk and asserts the gateway side.The session the walk runs: bounded snapshot (revision 7, pantry, recipe, eaters) → shutter frame → timer proposal proposed/approved/executed → butter swap to soy sauce proposed and rejected by the allergen re-check (Ana, wheat) with the contract-shaped recheck receipt → recipe finished on the device → re-snapshot →
getStepContextanswered from the phone's state (done, step 4) → stale step advance refused ("no active step") → close; session doc deleted and frame cache evicted.Burst10 delta: the goal-path blocker fixed, the branch re-scoped green
GoalPathTests.testFridgeToMealToTasteGoalPathfailed at lines 295 (stock 1380→1380, "logging the meal consumed pantry stock") and 323 (learned-layer evidence nil). Root cause: a merge-timing race, not product code — merge 6851bbb (04:29:03) pulled obv/burst8-fridgeluck-goal-path one commit before e87ee7b (04:39:08) replaced the strict test there with a pin of actual behavior ("catalog cooks deduct no pantry stock yet — known follow-up"; "a 4-star cook contributes availability, not a low-rating numerator … by design"). test(ios): wire the overhaul into the app and prove the fridge-to-meal-to-taste path #182/feat(evaluation): re-gate taste residual on the app recommendation pool #184/feat(ios): serve catalog recipes to the assistant, finalization, and cloud ranking #185 pass because they carry e87ee7b. No product commit anywhere implements catalog stock deduction (git log -S inventoryConsumption|applyConsumptionacross all refs).git revert -m 1 ab6c9f18, normal fast-forward push ab6c9f1..43ae74d, no force-push) drops that speculative merge: this branch is the LeChef socket E2E work + the alpha merge + the goal-path pin. Post-revert tree is byte-identical to aea3b8f (git diff aea3b8fe HEAD— empty). The safety-gates work returns once feat(ios): one allergen and diet screen behind every offering surface #187/feat(release): the release-candidate build with every late fix, the goal path and the safety sweep green #188 land and re-merge.How it was checked (commands and results)
Post-revert head 43ae74d:
bun install(222 pkgs);bun run check— tsc clean;bun test src/__tests__— 338 pass, 0 fail (5006 expect() calls, 23 files);bun run src/run/lechef-suite.ts— 65/65 job successes, 0 unsafe answers, 0 unauthorized actions, gates all true.git show origin/obv/burst9-fridgeluck-lechef-socket:apps/ios/Tests/GoalPath/GoalPathTests.swift | git hash-object --stdin= 7648a9c0 (the test(ios): wire the overhaul into the app and prove the fridge-to-meal-to-taste path #182/feat(evaluation): re-gate taste residual on the app recommendation pool #184/feat(ios): serve catalog recipes to the assistant, finalization, and cloud ranking #185 version).Intermediate heads (evidence trail):
--log-failed../apps/ios/Tools/lechef-e2e/run.shwalk 11/11 + boot 12/12 ("phone and gateway ran the cook session end to end ✓");bun test src/__tests__338 pass / 0 fail; lechef suite 65/65;bun run checkclean;swiftc -parse apps/ios/Tests/LeChefPlanWeeklyTests.swiftclean;bunx oxlint0 errors, 1 pre-existing warning (ToolResponsePayload, liveSessionGateway.ts:181).What is not verified
Tools/lechef-e2eis a standalone SPM package not referenced byproject.yml, so CI does not build or run it; the walk was proven locally at 6bd3abb and its sources are untouched by the burst10 delta.Assumptions
🔗 Obvious Project · 🧵 Obvious Thread · 🔀 Obvious PR Artifact