Skip to content

Establish delivery-loop hosting feasibility - #6

Merged
flyingrobots merged 3 commits into
mainfrom
task/5-delivery-loop-feasibility
Jul 28, 2026
Merged

Establish delivery-loop hosting feasibility#6
flyingrobots merged 3 commits into
mainfrom
task/5-delivery-loop-feasibility

Conversation

@flyingrobots

Copy link
Copy Markdown
Owner

Records the current Edict-to-Echo operation surface and names the missing effect, capability, and suspension seams. Verdict: not-yet-hostable.

Closes #5.

@flyingrobots

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@flyingrobots

Copy link
Copy Markdown
Owner Author

@codex please review

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

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

Next review available in: 56 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

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.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: bc97516e-aed2-4479-ba95-8b553e4a126a

📥 Commits

Reviewing files that changed from the base of the PR and between 2abefb3 and f66eacc.

📒 Files selected for processing (1)
  • docs/feasibility.md

Walkthrough

The changelog records a feasibility report, while docs/feasibility.md documents the Edict-to-Echo seam, unavailable delivery-loop operations, durable external-effect requirements, effect-capability gaps, and prerequisites for self-hosting.

Changes

Delivery-loop hosting feasibility

Layer / File(s) Summary
Current Edict-to-Echo seam
docs/feasibility.md, CHANGELOG.md
Documents the synchronous lower/verify boundary, bounded Echo execution, durable causal state, and native host exclusion; adds the report to the changelog.
Missing operations and durable effects
docs/feasibility.md
Inventories unavailable process, filesystem, network, Git, GitHub, and model operations, and defines required suspension, resumption, and external-effect records.
Effect capabilities and named blockers
docs/feasibility.md
Describes missing compiler-checked effect capabilities, proposes Cap<Scope, Operations, Limits>, and lists prerequisites for hosting the delivery loop.

Estimated code review effort: 2 (Simple) | ~10 minutes

Poem

The seam holds firm, the loop waits still,
No host effects cross its bounded sill.
Records sleep where results should land,
Capabilities await a typed command.
Four blockers mark the distant shore.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately captures the main change: documenting delivery-loop hosting feasibility.
Description check ✅ Passed The description is directly related to the docs-focused feasibility verdict and the missing seam analysis.
Linked Issues check ✅ Passed The PR covers the issue's required seam inventory, gap classification, suspension/resumption analysis, capability boundary, and verdict documentation.
Out of Scope Changes check ✅ Passed The only changes are a feasibility doc and changelog note, both aligned with the issue scope.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/feasibility.md`:
- Around line 128-155: Expand the EffectRequested/EffectCompleted protocol in
docs/feasibility.md to define committed-but-undispatched recovery, explicit
dispatch retry state with ownership or leases and timeout handling, and
crash-safe retry rules. Specify effect_id (or a separate stable key) as the
adapter-visible idempotency key, and make program_id an immutable binding to the
admitted program, capability set, and authority so completions are validated
against the exact request. Document recovery behavior for stranded requests and
fail closed for non-idempotent effects when idempotency cannot be guaranteed.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 34de03e4-60cf-4c89-bf61-9496d7ad9b5e

📥 Commits

Reviewing files that changed from the base of the PR and between 70dcf8d and 2abefb3.

📒 Files selected for processing (2)
  • CHANGELOG.md
  • docs/feasibility.md
📜 Review details
🔇 Additional comments (1)
CHANGELOG.md (1)

9-13: LGTM!

Comment thread docs/feasibility.md Outdated
@flyingrobots

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@flyingrobots

Copy link
Copy Markdown
Owner Author

@codex please review

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@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: f66eacc3bc

ℹ️ 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/feasibility.md
Comment on lines +149 to +153
EffectCompleted | EffectFailed {
effect_id,
adapter_idempotency_key,
program_binding_digest,
canonical_result,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Bind every completion to its dispatch attempt

When a read-only or idempotent effect is retried after its lease expires, the original adapter invocation can still finish late. Because this completion record carries no attempt, lease_epoch, or dispatch-claim identity, both the old and new results have the same correlation fields, so a stale result can win the race and resume the transition. Persist and validate the dispatch attempt or claim token with every completion.

Useful? React with 👍 / 👎.

Comment thread docs/feasibility.md

| Delivery-loop operation | Exposed to Edict now | Gap class | Required extension |
| --- | --- | --- | --- |
| Process spawn | No | Genuine gap | A typed process capability with executable identity, argv, environment, working-directory, resource, and output bounds; an Echo-owned effect adapter; durable request/result evidence. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Sandbox the transitive effects of spawned processes

When the loop runs a compiler, test runner, or other permitted executable, bounding its identity, arguments, environment, working directory, resources, and output does not prevent that child from reading or writing arbitrary files or opening network connections with the host's authority. Without OS-level isolation derived from the declared filesystem and network capabilities, process spawn bypasses the separate typed effect boundaries this design is intended to enforce. Require the process adapter to sandbox child filesystem, network, credential, and subprocess access.

Useful? React with 👍 / 👎.

Comment thread docs/feasibility.md
Comment on lines +164 to +168
program_binding_digest,
state_schema,
canonical_state,
next_transition,
awaited_effect_id

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Commit suspension atomically with the effect request

When a transition reaches an effect boundary, its EffectRequested and SuspendedContinuation records must become durable in the same atomic commit. The protocol orders the dispatch claim before the adapter call and the completion before resumption, but never makes these initial records atomic; a crash between their writes can therefore leave an executable request with no continuation to resume, or a suspended continuation with no request, potentially causing an orphaned side effect or duplicate request on transition replay. Require one atomic WAL transaction for suspension and request creation before dispatch.

Useful? React with 👍 / 👎.

@flyingrobots

Copy link
Copy Markdown
Owner Author

Merge gate OPEN at f66eacc. The repository has no CI workflow or required human review; CodeRabbit completed, Codex acknowledged for five minutes without a substantive review, every bot thread is resolved, and markdownlint plus git diff --check pass. Criteria 1–4 substitute for human approval in this solo-maintained repository.

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.

Establish delivery-loop hosting feasibility

1 participant