Repository navigation
Open pull requests and resume feedback reads in xmd repl #967
Description
An author can publish a branch, create or update its pull request, and read reviews, comments and checks in one Deno or compiled REPL entry. Leaving at a question and reopening the printed location restores acknowledged work; a later explicit read observes current feedback.
Inside an entry's selected Repository or Worktree, the existing vocabulary expresses the common path:
<Git.Push as="publication" />
<PullRequest title="Prepare release" as="pullRequest">Ready for review.</PullRequest>
<PullRequest.Reviews url={pullRequest.url} as="reviews" />
<PullRequest.Comments url={pullRequest.url} as="comments" />
<PullRequest.Checks url={pullRequest.url} as="checks" />
Current gap and delivered prerequisite
PR966 is merged at 94a20441a4c59132ba1103e00c5dd1cf828aabb0. It delivers Layer A: complete read validation and joined cleanup for existing Workflow reads, including the private read-retention helper. That work is a prerequisite already delivered.
The committed REPL entry provider still installs Push and Issue policies and leaves PullRequest and its three evidence reads without an entry provider. Preserved, unstaged Layer B code is incomplete and unverified; it is not delivered behavior. The closed PR945 reference is historical, and its old implementation and verification totals are not evidence for this ticket.
Acceptance
- A fresh upsert requires this entry's acknowledged matching Push provenance. A result supplied by middleware, another entry or another checkout grants no publication authority; the last relevant acknowledged publication decides.
- An interrupted create or numbered update resumes the exact saved request, including the original head and verbatim body, without resolving today's checkout. An acknowledged completed upsert restores its saved result without native, configuration, provider or credential work.
- Reviews, comments and checks retain separate complete snapshots. Restoration still passes current URL/provider/allowed-list admission and live outer composition. A new authored read observes current service data. Allowed URL reads work without a managed checkout.
- Shared component forms, metadata and repository-local shadowing remain unchanged. Nested and concurrent reads keep their own invocation identity and admitted callback.
- Acknowledgement follows joined attempt cleanup. Cancellation, failed cleanup and failed persistence produce no invented completion. New records are admitted before replay, and released Push/Issue histories remain readable without rewriting their bytes.
- One public terminal journey demonstrates the behavior through both the source and compiled REPL. Node and Bun keep their absent entry-provider behavior.
The accepted B1–B10 evidence covers shared component bodies and ordering, acknowledged same-entry publication, interrupted create and update, completed restoration and fresh reads, nested/concurrent read identity, mixed-history admission, joined failure/cancellation, released-history compatibility, one real terminal journey under source and compiled entrypoints, and inert assembly with unsupported hosts remaining absent.
The existing REPL contract, Git-host contracts and language specification establish the delivered baseline. Their PR-absent entry clauses are updated as this ticket's accepted behavior is implemented.
Continuation and scope
Preserve the previous Implementor's incomplete-work report and partial source. Continue with bounded feedback milestones for records/admission, complete entry integration with pending and completed recovery, and the terminal/documentation evidence. These are checkpoints within one complete B delivery, not a live-only public release or a new contract.
Update the four accepted documentation surfaces when implementation establishes the behavior: architecture.md, specs/repl-spec.md, specs/executable-mdx-spec.md and the relevant entry/PR distinctions in specs/workflow-workspace-spec.md. Preserve ordinary-run and Workflow semantics, the existing reconciliation worker, public APIs and released encodings. No new owner, public classifier, request framework, dependency or lifecycle system is included.
Activity
🚨 Move the REPL entry's repository policy into the command that owns …
🚨 Say which six operations a REPL entry's selector declares (#967)
🚨 Finish the package cut, and prove what the cancelled attempt releas…
🚨 Let the scope that asks for a fixture `git` own its child (#967)
🚨 Read the entry's own journal, and let the question say what it rest…
🚨 Load the Deno adapter where the journey that needs it runs (#967)
🚨 Let three stale paths follow the files the move relocated (#967)
🚨 Refuse a declined entry read where the chain ends, not from the top (…
🚨 Give one body to each rule the entry's pull request asks twice (#967)
🚨 Save a REPL entry's pull-request request, and pair it beside its pu…
🚨 Infer a malformed fixture's type, and drop eight narrating comments (…
🚨 Open and resume a REPL entry's pull request, and retain its three r…
🚨 Restore the semantic layer an entry's evidence read composes through (
🚨 Complete the frozen evidence a REPL entry's pull request is accepte…
🚨 Hold one owned attempt's cleanup, and watch publication wait for it (…
🚨 Park the earlier publisher above its own publication before the lat…
🚨 Open a pull request from a real terminal, leave, and come back to it (
🚨 Move the REPL entry's repository policy into the command that owns …
🚨 Say which six operations a REPL entry's selector declares (#967)
🚨 Finish the package cut, and prove what the cancelled attempt releas…
🚨 Let the scope that asks for a fixture `git` own its child (#967)
🚨 Read the entry's own journal, and let the question say what it rest…
🚨 Load the Deno adapter where the journey that needs it runs (#967)
🚨 Let three stale paths follow the files the move relocated (#967)
🚨 Refuse a declined entry read where the chain ends, not from the top (…
🚨 Give one body to each rule the entry's pull request asks twice (#967)