Repository navigation
fix: converge Codex Dev Facade lifecycle - #19
Merged
Merged
Conversation
superche
force-pushed
the
feat/codex-dev-facade-lifecycle-20260726
branch
from
July 26, 2026 12:15
c29d6bc to
9ecd52f
Compare
superche
marked this pull request as ready for review
July 26, 2026 12:33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
npm run codex:dev:appconverge the Dev App, gateway/worker bundle, and detached local Facade as three explicit lifecycle layersRoot cause
The cold Dev profile restart stopped the App and refreshed the plugin cache, but it did not manage the detached local Facade daemon. Runtime bootstrap primarily compared
PIPPIT_LOCAL_RUNTIME_VERSION, so an old daemon could be reused when code and schemas changed without a version bump. That produced a mixed generation: new Widget/MCP worker with an old Facade schema.Design
Validation
After rebasing onto the latest
main:npm test— 53 files, 394 tests passednpm run typechecknpm run lintnpm run buildnpm run check:architecturenpm run check:plugin-versionnpm run check:public-lockfilenpm run check:plugin-contract— MCPebd0353dbcff95babc100dfa429f69bc64639b3fd322b98c8eecba9645358112, plugin3cb4f56273b2aa5296acfaa75f3b5e7ed8016fc273d238ddfc8e7aeb57efb5c7npm run check:release-artifactnpm run check:dev-gateway— version0.3.0, 17 tools, 2 resources, 2 templatesgit diff --checkReal isolated Dev profile evidence
Initial incident reproduction showed Dev App PID
73572with an old0.2.12legacy-unidentified Facade at PID67983; status reportedmatchesGateway=false. The first cold convergence replaced it and preserved runtime data.A final cold restart after rebasing onto the latest
mainproduced current-commit evidence:replaced38427, confirmed stopped64465645290.3.0/Users/bytedance/.pippit-bridge/dev-v1/generations/bootstrap-ecc3ff1f2e08/dist/local-facade-daemon.mjse8d28acb03dd4a33c300dbd312304a787163351929ad084a9ba4d6d2b936ed6c49543ef94345521dbb6acfe5a64f9917d6fe42c096d35ad7766ad5d94a9f1b25matchesExpectedArtifact=true,matchesGateway=true,healthy=trueExisting runtime secret, BYOK credential, and idempotency files remained present across the restart.
No paid upstream generation, npm publish, or production marketplace activation was performed.