Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
86a4694
📝 Specify the software factory deployment contract (#710)
minkimcello Sep 2, 2026
80884f9
📝 Close the software factory contract gaps (#710)
minkimcello Sep 2, 2026
0d08dcc
📝 Resolve the software factory contract rulings (#710)
minkimcello Sep 2, 2026
b364b98
📝 State the attempt-state rule in the generic external-effect contrac…
minkimcello Sep 2, 2026
817d3dd
📝 Separate machine waits from typed answers (#710)
minkimcello Sep 2, 2026
8f27b04
🔧 Own the neutral lifecycle types and derive a factory run id (#698)
minkimcello Sep 2, 2026
95a8f0e
🚚 Keep the GitHub-named run-id derivation out of the neutral surface …
minkimcello Sep 2, 2026
61b63fc
🚚 Give the software factory its own package subpath (#698)
minkimcello Sep 2, 2026
937a388
📦 Add the Cloudflare Workers test runtime (#698)
minkimcello Sep 2, 2026
299ca74
🔒 Narrow the software-factory seam to the product promise (#698)
minkimcello Sep 2, 2026
28814ef
🧪 Stand up the workerd suite and measure real Durable Object storage …
minkimcello Sep 2, 2026
670ad0c
📌 Collapse the duplicate vitest peer context (#698)
minkimcello Sep 2, 2026
da758d9
🧱 Share the SQLite schema and give Cloudflare its own identity carrie…
minkimcello Sep 2, 2026
f7b2a24
✅ Prove the owner's storage on real workerd (#698)
minkimcello Sep 2, 2026
0cbd8ef
👷 Give the workerd suite a required CI job (#698)
minkimcello Sep 2, 2026
b69bab4
🔐 Admit an executor and give it a private transport (#698)
minkimcello Sep 3, 2026
fc4841a
🧾 Collect a remote transaction and submit one closed intent (#698)
minkimcello Sep 3, 2026
bf6358d
📡 Carry a runner's request to its owner (#698)
minkimcello Sep 3, 2026
871dbc8
🔑 Verify the token instead of trusting claims (#698)
minkimcello Sep 3, 2026
dd45ed8
🔒 Own the whole transaction, detach the intent, fail the channel clos…
minkimcello Sep 3, 2026
b6f58d0
🧩 Publish the pure core predicates from node-free subpaths (#698)
minkimcello Sep 3, 2026
89272a6
🛡️ Harden the token, own the transaction, type the answers (#698)
minkimcello Sep 3, 2026
026ef1f
🔎 Bound the answer envelope and prove teardown (#698)
minkimcello Sep 3, 2026
febef13
🔌 Make the connection release the acquisition it holds (#698)
minkimcello Sep 3, 2026
b69ab73
📖 Read a run from the owner that holds it (#698)
minkimcello Sep 3, 2026
827f1d4
🧱 Prove a whole retained root before answering with one (#698)
minkimcello Sep 3, 2026
d97615f
🌳 Put a retained root on a runner and read it back (#698)
minkimcello Sep 3, 2026
6e4596d
🔗 Keep two hardlink groups two files (#698)
minkimcello Sep 3, 2026
eb4fb81
🧭 Keep the content-store format out of the Workspace surface (#698)
minkimcello Sep 3, 2026
99b21a1
✍️ Let the owner decide one whole proposal (#698)
minkimcello Sep 3, 2026
4a0e940
🧷 Hold a proposal to what it claims to be (#698)
minkimcello Sep 3, 2026
f143493
🗝️ Admit a locator, and decide the mappings before writing any (#698)
minkimcello Sep 3, 2026
2290d44
🚚 Let the runner actually publish what it did (#698)
minkimcello Sep 3, 2026
dd08600
🧹 Read the sent command instead of asserting its shape (#698)
minkimcello Sep 3, 2026
867e9a8
🤝 Prove the two capture implementations describe one Workspace (#698)
minkimcello Sep 3, 2026
aec12b8
🎯 Make a retry the same question, and seal only after teardown (#698)
minkimcello Sep 4, 2026
11236ff
🧾 Make a decision survive the connection that asked for it (#698)
minkimcello Sep 4, 2026
45ad250
🔐 Let the transaction that got the answer be the one that promotes (#…
minkimcello Sep 4, 2026
3a3de81
🎟️ Enlist the attempt, not a proposal about it (#698)
minkimcello Sep 4, 2026
1088f75
🗄️ Give a remote run the same handle a local one has (#698)
minkimcello Sep 4, 2026
fdb2b4a
🧮 Anchor the execution list where the owner can choose the anchor (#698)
minkimcello Sep 4, 2026
6473ff9
🧷 Prove the snapshot, and answer failures the way the interface says …
minkimcello Sep 4, 2026
e61793c
🐛 Send the record the client parses, and carry the version the owner …
minkimcello Sep 4, 2026
0303ae2
🐛 Report what actually failed, and close the version domain
minkimcello Sep 4, 2026
ddd9f0c
✨ Run Workspace work on the runner against a run the owner holds
minkimcello Sep 4, 2026
7c0bf30
🐛 Resolve what a Workspace path lands on, and bind one run as one thing
minkimcello Sep 4, 2026
5b04ad2
🐛 Make one owner link one value, so a run cannot be opened from two
minkimcello Sep 5, 2026
74b8a28
✨ Find a run on its owner, or create it exactly once
minkimcello Sep 5, 2026
37bd50f
✨ Decide a run's lifecycle once, and keep it on the owner
minkimcello Sep 6, 2026
81b9c67
✨ Read a run's owner without taking it
minkimcello Sep 6, 2026
6dcf906
✨ Move a run's lifecycle, and fork one, from its owner
minkimcello Sep 7, 2026
9df6094
🐛 Prove a fork's copy, and stage one where it can be replayed
minkimcello Sep 7, 2026
79a1e6e
🐛 Own a lifecycle call, and continue a fork from what it retains
minkimcello Sep 7, 2026
570ef63
🐛 Prove a fork continuation, and end a call safely
minkimcello Sep 7, 2026
15cc211
🐛 Name each question a call asks, and give up the socket with the lock
minkimcello Sep 7, 2026
6635d2c
🐛 Give a second transfer its own name, and let a cancelled call keep …
minkimcello Sep 7, 2026
79b83f8
✨ Answer a run somebody else owns, and spend the answer once
minkimcello Sep 8, 2026
fcee265
🐛 Judge a delivered answer where it is written, and let one wait end …
minkimcello Sep 8, 2026
e87db6b
🐛 Run the real credential gate at the owner, and stop claiming the sc…
minkimcello Sep 8, 2026
4a2ae75
✨ Judge an elicitation response with one implementation, everywhere i…
minkimcello Sep 8, 2026
d235030
🐛 Tell a schema from the data inside it, and say what failed without …
minkimcello Sep 8, 2026
ae7d2b6
✨ Replay a completed run from what its owner holds, and reach nothing…
minkimcello Sep 8, 2026
15e9f50
🐛 Let recovery decide the replay, and hold a retained history to what…
minkimcello Sep 9, 2026
f0ea668
🐛 Replay every run the lifecycle already ended, however it was named
minkimcello Sep 9, 2026
c8fd0f0
🐛 Give one execution one outcome, and let a replay change nothing but…
minkimcello Sep 9, 2026
e98e5cd
🐛 Carry an unreadable terminal through recovery, and refuse every act…
minkimcello Sep 9, 2026
856a73b
🐛 Let damage outrank the row, and read a terminal against the history…
minkimcello Sep 9, 2026
ecdec57
🐛 Count every root import, and parse the one before a terminal counts
minkimcello Sep 9, 2026
356d347
🐛 Verify a retained selection against the document that recorded it
minkimcello Sep 10, 2026
08fdd40
📝 Record what the remote host and a retained terminal actually do
minkimcello Sep 10, 2026
f01c32c
✨ Reach a run's owner over three requests, and assemble one host from…
minkimcello Sep 10, 2026
2adb4fc
🐛 Give a remote run the attachment a document actually reaches
minkimcello Sep 10, 2026
c1ad422
🐛 Let a runner attach a checkout and retain a session without the loc…
minkimcello Sep 10, 2026
0e7ff6d
✅ Prove a Repository, a Git mutation and an Agent session on a remote…
minkimcello Sep 10, 2026
2f53522
✅ Prove the remote continuation and Agent profile the tests claimed
minkimcello Sep 10, 2026
d1cddb7
✅ Make the replay and conflict evidence discriminate what it claims
minkimcello Sep 10, 2026
452265f
✅ Refuse a journal cursor at its anchor, the way the owner does
minkimcello Sep 10, 2026
a8c9f32
🧹 Let the runner's Workspace tests own their own scope
minkimcello Sep 10, 2026
fc5481b
🚚 Call the shared undo an undo, and leave savepoints to the host that…
minkimcello Sep 10, 2026
c469b48
🔧 Record which two remote suites belong to the Deno host
minkimcello Sep 10, 2026
b6c127f
🔧 Run the workerd suite through the vitest the plugin resolves
minkimcello Sep 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -640,6 +640,34 @@ jobs:
# on a `ci-main-red-fix` pull request, and may be skipped on an ordinary one.
# Every other job must succeed outright — an unexpected skip is an unproven
# job, which is exactly what this check exists to catch.
# The workerd suite. It runs where the runtime is real: acquisition lifetime,
# owner eviction and transaction atomicity are properties of a Durable Object
# rather than of any model of one, so none of them is provable in the Deno,
# Node or Bun corpora — which is also why these files carry a `.vitest.ts`
# suffix those corpora never discover.
#
# `pnpm install` comes last on purpose: `deno install` prunes the links pnpm
# placed (scripts/deps.ts says so in its own header), and the plugin only
# takes over the pool when it and the CLI hold the same vitest.
test-cloudflare:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6

- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: "22"

- uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4

- run: pnpm install

- name: Typecheck the Cloudflare owner
run: pnpm check:cloudflare

- name: Cloudflare Workers suite
run: pnpm test:cloudflare

green:
needs:
[
Expand All @@ -653,6 +681,7 @@ jobs:
site,
test-node,
test-bun,
test-cloudflare,
]
if: always()
runs-on: ubuntu-latest
Expand Down
244 changes: 241 additions & 3 deletions architecture.md

Large diffs are not rendered by default.

16 changes: 13 additions & 3 deletions deno.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,21 @@
{
"workspace": ["packages/*", "site"],
"workspace": [
"packages/*",
"site"
],
"exclude": [
"scripts/tests/fixtures",
".xmd-eval",
"**/npm",
"packages/workflow/vendor/cloudflare-computer-dofs/upstream",
"packages/workflow/vendor/cloudflare-computer-dofs/generated/**/*.d.ts",
"packages/acp/vendor/acpx/upstream",
"packages/acp/vendor/acpx/generated/**/*.d.ts"
"packages/acp/vendor/acpx/generated/**/*.d.ts",
"packages/workflow/src/cloudflare",
"packages/workflow/tests/cloudflare",
"vitest.config.ts",
"packages/workflow/tsconfig.cloudflare.json",
"packages/workflow/cloudflare.ts"
],
"nodeModulesDir": "auto",
"lock": {
Expand Down Expand Up @@ -71,6 +79,8 @@
"review:local": "deno run --allow-all packages/cli/src/deno.ts run .reviews/ReviewPR.local.md --component-dir .reviews/components --component-dir .reviews/policies --component-dir packages/core/components -j .reviews/journal.local.jsonl",
"analyze": "deno run --allow-all packages/cli/src/deno.ts run .reviews/AnalyzeRepo.md --component-dir .reviews/components --component-dir .reviews/policies --component-dir packages/core/components -j .reviews/journal.analyze.jsonl",
"analyze:ci": "deno run --allow-all packages/cli/src/deno.ts run .reviews/AnalyzeRepoCI.md --component-dir .reviews/components --component-dir .reviews/policies --component-dir packages/core/components -j .reviews/journal.analyze.ci.jsonl",
"analyze:dispatch": "deno run --allow-all packages/cli/src/deno.ts run .reviews/DispatchRepoAnalysis.md --component-dir .reviews/components --component-dir .reviews/policies --component-dir packages/core/components -j .reviews/journal.dispatch.jsonl"
"analyze:dispatch": "deno run --allow-all packages/cli/src/deno.ts run .reviews/DispatchRepoAnalysis.md --component-dir .reviews/components --component-dir .reviews/policies --component-dir packages/core/components -j .reviews/journal.dispatch.jsonl",
"test:cloudflare": "pnpm test:cloudflare",
"check:cloudflare": "pnpm check:cloudflare"
}
}
Loading