Worktree-safe verify-local stamps; SPEC-0009 EINT v1/v2 layer clarification - #534
Conversation
SPEC-0009 documents the EINT v1 layout but did not say which layer it binds or that EINT v2 exists. Adds a source-cited note: application dispatch routes OpticIntentPayload::EintV1 (kernel_port.rs#2687), while the EINT v2 envelope lives at the session protocol layer (echo-session-proto/src/eint_v2.rs) outside ABI v3 dispatch. Also fixes verify-local.sh stamp dir for linked worktrees: .git is a file there, so mkdir .git/verify-local failed; resolve the real gitdir via git rev-parse --git-dir.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis PR updates the verify-local script to resolve the real git directory for per-worktree stamp storage, and adds a SPEC-0009 clarification that ABI v3 application-dispatch consumes EINT v1 ( ChangesGit Worktree Support and ABI Documentation
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
|
@coderabbitai review |
✅ Action performedReview finished.
|
# Conflicts: # CHANGELOG.md
What
Two small, self-contained fixes from the Graft integration lane:
scripts/verify-local.sh: worktree-safe stamp storage. The stamp dirwas hardcoded to
.git/verify-local; in a linked worktree.gitis afile, so
mkdirfailed and pre-commit aborted (mkdir: .git: Not a directory). Now resolves the real gitdir viagit rev-parse --git-dir(with a
.gitfallback outside git contexts). Side benefit: stamps areper-worktree, so verification state in one worktree can't mask another's.
SPEC-0009: name the layer EINT v1 binds to. The spec documents the
EINT v1 layout without saying it is the ABI v3 application-dispatch intake
(
OpticIntentPayload::EintV1→KernelPort::dispatch_intent[
crates/echo-wasm-abi/src/kernel_port.rs#2687@2048da5c]), and nevermentions that a richer EINT v2 envelope exists at the session-protocol
layer [
crates/echo-session-proto/src/eint_v2.rs#3@2048da5c]. An externalconsumer reading the spec alone (ask me how I know) can't tell which
envelope to implement. Added a source-cited note distinguishing the two.
How found
Building Graft's fake Echo-shaped TypeScript witness
(flyingrobots/graft, cycle/CORE_graft-fake-echo-shaped-typescript-witness):
the worktree hook crash hit on first commit in the
lane/graft-integrationworktree, and the EINT ambiguity surfaced while validating the spec against
live source.
Review trail
2048da5c; therev-parsesubstitution runs after the script'scd "$REPO_ROOT";set -euo pipefail-safe via|| echo .gitfallback.(markdownlint, prettier,
bash -n) from inside a linked worktree.Testing
git commit+git pushfrom a linked worktree (previously failed atpre-commit; now passes).
bash -n scripts/verify-local.shclean.Summary by CodeRabbit
Bug Fixes
Documentation