Skip to content

docs(method): leash file for the JeditWorldlineSessionPort scaffold#34

Merged
flyingrobots merged 3 commits into
mainfrom
docs/leash-jedit-session-port
May 31, 2026
Merged

docs(method): leash file for the JeditWorldlineSessionPort scaffold#34
flyingrobots merged 3 commits into
mainfrom
docs/leash-jedit-session-port

Conversation

@flyingrobots
Copy link
Copy Markdown
Owner

Summary

The first concrete instance of the leash-files METHOD lane proposed in echo PR #386. This file is the structural, machine-readable record of the deletion contract for the `JeditWorldlineSessionPort` scaffold that landed with PR #33 (merge `90245c73`).

Why now

PR #33's session-port surface is intentionally temporary. Echo cycle 0025 Phase 2 GREEN will ship the engine-side first-class `Session` / `WorldlineId` surface that obsoletes it. The 2026-05-30 merge session ended with the explicit watchout that this scaffold could become permanent furniture if we relied on memory alone.

This leash file:

  • Names the symbols whose disappearance is the deletion proof: `JeditWorldlineSessionPort`, `JeditWorldlineSessionNotRegisteredError`, `JeditTransportSeam`, `createInMemoryJeditWorldlineSessionPort`, the installed EINT bridge, and the two session-port spec files.
  • Encodes the deletion trigger: echo cycle 0025 / Phase 2 GREEN.
  • Encodes the deletion proof: zero grep hits + companion card retirement + leash file moves to `docs/method/graveyard/leash/`.
  • Cross-references the existing companion cards (`asap/sessions-migration.md`, `bad-code/optic-codec-mixes-wire-with-session.md`) and the resolved coderabbit thread that argued for the deferral.

Composes with

  • `docs/method/backlog/asap/sessions-migration.md` — prose narrative (already merged). The leash file is the structural record; the asap card is the human-readable companion.
  • `docs/method/backlog/bad-code/optic-codec-mixes-wire-with-session.md` — must be fully resolved as part of the deletion proof.
  • echo PR #386 — convention card.

Test plan

  • Markdownlint clean.
  • Reviewer: confirm the `symbols` and `files` lists are complete. If echo PR #386's schema changes (e.g. a field rename), this file follows.
  • The behavior change ("if new capability wants to land on these symbols, prefer Phase-2-shaped pass-through") is a hint to future-self, not enforced tooling — yet. `xtask leash-audit` lands separately, after the second leash file gets created.

The transitional session surface that landed with PR #33 (merge
90245c7) — JeditWorldlineSessionPort, JeditTransportSeam, the in-
memory session-port adapter, the installed EINT bridge, and the two
session-port spec files — is deliberately temporary. It exists
because Echo cycle 0025 (sessions as causal contexts) has only landed
Phase 1 design; the engine-side first-class Session / WorldlineId
surface arrives in Phase 2 GREEN.

This leash file is the machine-readable record of that contract,
sibling to the prose narrative card at
docs/method/backlog/asap/sessions-migration.md. The prose explains
why; this file lists the symbols, the trigger, and the deletion
proof for tooling (planned: xtask leash-audit) to act on.

Convention this follows is defined in the echo repo at
echo/docs/method/backlog/cool-ideas/METHOD_leash-files.md (PR #386).

Deletion trigger: echo cycle 0025 Phase 2 GREEN.

Deletion proof:
  1. git grep for each symbol returns zero hits in src/ and spec/.
  2. asap/sessions-migration.md moves to docs/method/retro/<cycle>/
     with the deletion SHA appended.
  3. bad-code/optic-codec-mixes-wire-with-session.md is fully
     resolved per its acceptance criteria.
  4. This leash moves to docs/method/graveyard/leash/ with SHA.

Status: active. If new capability wants to land on any of the named
symbol surfaces while this leash is active, the right default is to
write it in shape-of-Phase-2 (thin pass-through that will trivially
survive deletion) rather than as a fully-featured port-side
implementation. Escalate by promoting status if that becomes
impossible for a real near-term need.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 31, 2026

Warning

Review limit reached

@flyingrobots, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 28 minutes and 5 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: f2af818a-0278-49c1-9720-c358a63fe74a

📥 Commits

Reviewing files that changed from the base of the PR and between 90245c7 and fea0f2c.

📒 Files selected for processing (1)
  • docs/method/backlog/leash/jedit-session-port.md

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 and usage tips.

Copy link
Copy Markdown

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

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: 06d0462a34

ℹ️ 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 docs/method/backlog/leash/jedit-session-port.md
Review note from PR #34: include JeditWorldlineId in the symbols
list iff its future deletion is intended. The JSDoc on the type at
src/ports/jedit-worldline-session-port.ts:11-30 is explicit that
the alias is a deferred-migration placeholder — at Phase 2 GREEN
the engine-side WorldlineId becomes first-class and jedit threads
it through instead of inventing client-side variants. So yes, leash
it: it's structurally bound to the same trigger as the rest of the
session-port scaffold.

Also added an "Adjacent symbols deliberately NOT on the leash"
section to record the boundary call: JeditWorldlineSession (the
real contract-runtime session) survives Phase 2 because only its
identity backing changes; the optic-client surfaces, EINT codecs,
and fake/installed transport adapters also survive because they
thread SessionId through rather than carrying causal state. This
note exists so the next reader (human or audit script) can tell at
a glance why those nearby names are not on the list.
Codex P2 review note on PR #34: the structural leash file is the
machine-readable deletion contract, so the symbols list must catch
the surface that actually survives into the runtime / emitted JS,
not just the compile-time TypeScript surface.

JeditTransportSeam is the TypeScript interface; jeditSessionPort
is the field name it requires (see src/ports/jedit-transport-seam.ts
and the isJeditTransportSeam type guard). The runtime grep proof
needs both, because a caller in:

  - src/adapters/fake-echo-jedit-optic-transport.ts
  - src/adapters/installed-jedit-contract-echo-transport.ts
  - spec/jedit-optic-client.spec.mjs

that still constructs a { jeditSessionPort: ... } literal would be
invisible to a grep that only searched for the interface name.
TypeScript types are erased; the runtime key is what persists.

Added a "Why both JeditTransportSeam and jeditSessionPort are on
the list" body section so the next reader knows the compile-time /
runtime distinction is deliberate.
@flyingrobots flyingrobots merged commit f2c9394 into main May 31, 2026
2 checks passed
@flyingrobots flyingrobots deleted the docs/leash-jedit-session-port branch May 31, 2026 03:18
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