Skip to content

build(deps): relock Jedit to new Echo and Edict commits in one command - #376

Merged
flyingrobots merged 3 commits into
mainfrom
build/echo-edict-relock
Oct 20, 2026
Merged

flyingrobots merged 3 commits into
mainfrom
build/echo-edict-relock

Conversation

@flyingrobots

Copy link
Copy Markdown
Owner

Moving Jedit to new Echo and Edict commits took an hour of hand work in #374, and nothing re-tested Jim against Echo or Edict, so the pins sat three months stale. This makes the move one command, so a scheduled or upstream job can run it.

node scripts/deps/echo-edict-relock.mjs --echo-repo /path/to/echo --edict-repo /path/to/edict

Given clean Echo and Edict checkouts, it regenerates everything derived from them, in dependency order:

Step Output
Echo pins native/jedit-echo-host and edict/replace-range/tests/runtime Cargo manifests and lockfiles
Host bindings src/generated/contract.rs from that Echo's echo-wesley-gen --contract-host, then the host must compile (otherwise the run stops: that is source work)
Oracle npm run lawpack:replace-range:update
Lawpack edict.lawpack.json compatibility and corpus digests from the oracle
Vendor vendor/jedit-text republished by that Edict, and ReplaceRange.edict's import digest
Toolchain lock Edict and Echo commits, Edict CLI version, Echo provider pins (component bytes checked against the provider manifest), validation-file hashes
Build locks assert-build-output.mjs --write-locks
Proof tests/build.sh (both runtime witnesses)

spec/echo-edict-relock.spec.mjs pins the pure helpers (Cargo rev rewrite, oracle digests, import digest, manifest digest, provider pins, and refusal of components that disagree with the provider manifest). End to end: run against Echo 0faaf58 and Edict 2ddc069 on #374's tree, it reproduces #374's hand relock byte for byte and the chain verifies.

This is the tool the warpspace prove workflow (flyingrobots/jim) will run to prove a selected Echo/Edict pair against Jedit and to try Echo and Edict main nightly.

scripts/deps/echo-edict-relock.mjs takes clean Echo and Edict checkouts
and regenerates every derived artifact: host and conformance-runtime
Echo pins, Wesley host bindings, the ReplaceRange oracle, the lawpack's
oracle digests, the republished jedit.text vendor and import digest,
the toolchain lock (provider pins and validation-file hashes), and the
build and executable-subject locks, then runs the package-chain proof.
A host that no longer compiles stops the run before generated artifacts
change.

Pure helpers are pinned by spec/echo-edict-relock.spec.mjs. Run against
Echo 0faaf58 and Edict 2ddc069 on the #374 tree, the tool reproduces the
hand relock byte for byte and the chain verifies.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 20, 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-20T23:39:53.037576Z 780384b Manual request
ℹ️ 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.

@coderabbitai

coderabbitai Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 40 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: e2a66188-65f2-407c-9ac7-c8255e0bec12
📥 Commits

Reviewing files that changed from the base of the PR and between b0d7d75 and 780384b.

📒 Files selected for processing: 4
  • CHANGELOG.md
  • edict/replace-range/README.md
  • scripts/deps/echo-edict-relock.mjs
  • spec/echo-edict-relock.spec.mjs
  • 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.

@flyingrobots

Copy link
Copy Markdown
Owner Author

@codex review please, focus on scripts/deps/echo-edict-relock.mjs: step order, that a failed host compile stops before generated artifacts change, provider-pin derivation, and whether any derived artifact the package chain checks is missed.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e2ec6a7a64

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/deps/echo-edict-relock.mjs
Comment thread scripts/deps/echo-edict-relock.mjs Outdated
Review findings on the relock tool:

- A failure after regeneration began (for example the host no longer
  compiling against the new Echo) left the Cargo pins and contract.rs
  rewritten. The run now refuses to start unless its managed paths are
  clean, and on any failure restores them and removes files it created.
  Verified against Echo 90f63ae: the host fails to compile and the tree
  is left unchanged.
- The lawpack's targetAdapters kept acceptedTargetProfile and
  acceptedTargetIr from the previous provider. They are now derived from
  the selected provider's target profile before the lawpack is
  republished.

Specs cover both. Against Echo 0faaf58 and Edict 2ddc069 the tool still
reproduces main byte for byte.
@flyingrobots

Copy link
Copy Markdown
Owner Author

@codex review please, focus on 780384b: restoringOnFailure (managed path set, dirty-start refusal, restore and cleanup) and adapter-target rebinding from the selected provider.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep them coming!

Reviewed commit: 780384bde6

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@flyingrobots
flyingrobots merged commit c53e7d4 into main Oct 20, 2026
13 checks passed
@flyingrobots
flyingrobots deleted the build/echo-edict-relock branch October 20, 2026 23:57
flyingrobots added a commit that referenced this pull request Oct 21, 2026
Brings in #376. CHANGELOG keeps both entries.
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.

1 participant