Skip to content

[obvious-fleet] real-WebSocket cook-session E2E for phone and gateway, goal-path green - #186

Merged
SamGu-NRX merged 9 commits into
alphafrom
obv/burst9-fridgeluck-lechef-socket
Oct 16, 2026
Merged

SamGu-NRX merged 9 commits into
alphafrom
obv/burst9-fridgeluck-lechef-socket

Conversation

@obvious-autobuild

@obvious-autobuild obvious-autobuild Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

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.ts keeps only production wiring; the HTTP routes and live-session gateway move to injectable agentServer.ts so 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-e2e builds 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.ts mounts 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 → getStepContext answered 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

How it was checked (commands and results)

Post-revert head 43ae74d:

Intermediate heads (evidence trail):

  • 6bd3abb, run 38851697494: failed only GoalPathTests.testFridgeToMealToTasteGoalPath (the two asserts above) — exact failure inventory from --log-failed.
  • ab6c9f1, run 38856495680: GoalPath errors 0; SafetyGatesSweepTests + 1 substitution case failing (counts above) — the reason for the revert.
  • Feature verification at 6bd3abb (burst9 continuation): ./apps/ios/Tools/lechef-e2e/run.sh walk 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 check clean; swiftc -parse apps/ios/Tests/LeChefPlanWeeklyTests.swift clean; bunx oxlint 0 errors, 1 pre-existing warning (ToolResponsePayload, liveSessionGateway.ts:181).

What is not verified

Assumptions

🔗 Obvious Project · 🧵 Obvious Thread · 🔀 Obvious PR Artifact

@coderabbitai

coderabbitai Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 8f5241d4-ba21-41b8-b5f2-12b7d2e8e231

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@obvious-autobuild obvious-autobuild Bot changed the title test(e2e): run the phone and gateway cook session over a real WebSocket [obvious-fleet] real-WebSocket cook-session E2E for phone and gateway, alpha-merged Oct 16, 2026
@SamGu-NRX
SamGu-NRX changed the base branch from obv/burst8-fridgeluck-goal-path to alpha October 16, 2026 05:26
ObviousApp and others added 4 commits October 16, 2026 05:34
…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>
@obvious-autobuild obvious-autobuild Bot changed the title [obvious-fleet] real-WebSocket cook-session E2E for phone and gateway, alpha-merged [obvious-fleet] real-WebSocket cook-session E2E for phone and gateway, goal-path green Oct 16, 2026
SamGu-NRX and others added 2 commits October 16, 2026 02:11
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>
@SamGu-NRX
SamGu-NRX marked this pull request as ready for review October 16, 2026 07:34
@codemetrics-ai

Copy link
Copy Markdown

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.

@SamGu-NRX
SamGu-NRX merged commit 9fc0549 into alpha Oct 16, 2026
2 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-16T07:36:32.262554Z 5da8444 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants