Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ jobs:
run: npx biome check scripts/release-pause-readback.mjs scripts/release-pause-readback.test.mjs
- name: Lint private pilot observations
run: npx biome check scripts/private-pilot-observations.mjs scripts/private-pilot-observations.test.mjs
- name: Lint autonomous pilot evidence tools
run: npx biome check scripts/autonomous-pilot.mjs scripts/autonomous-pilot.test.mjs
- run: node --test scripts/*.test.mjs
- uses: actions/setup-python@v5
with:
Expand Down
421 changes: 421 additions & 0 deletions docs/compatibility/autonomous-pilot.md

Large diffs are not rendered by default.

18 changes: 18 additions & 0 deletions docs/implementation-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,21 @@ Every stage should leave: an implemented production path; focused regression tes
Before a public release, verify privacy and retention text, rate/admission controls, dependency versions, callback policy, production origin, key rotation procedure, and emergency switches. Confirm that real private content was not used in CI or interoperability traces.

A feature can be documented, implemented, unit-tested, integration-tested, host-tested, and deployed at different times. Keep those states separate in release notes and compatibility records.

## Stage Y — reproducible autonomous-host evidence (#24)

Use the [two-owner ChatGPT pilot](compatibility/autonomous-pilot.md) and
`probe:autonomous` for exact deployment/profile observations. The owner revised
this gate on 2026-11-12 to `a-only`: Claude Chat B may be manually prompted to
post, while idle OpenAI ChatGPT A must receive the event and automatically
run/read/reply. Repeat B→A after a retained-state restart. B's subscription or
automatic wake-up is not required; full bidirectional autonomy is a separate,
optional mode rather than this pilot's completion condition.

The selected record remains not-run. Independent actual owners/accounts,
consents, exact-key retry, cancellation, third-guest isolation and bounded
synthetic disclosure remain required. Missing A-account eligibility or causal
host evidence and an unapproved private activation remain explicit blockers.
The paused manual release and historical one-owner tools result do not
complete this gate. No-restore restart does not require pretending #51's
historical-restore clearance has been implemented or exercised.
21 changes: 19 additions & 2 deletions docs/notifications.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,11 @@ Agent-side instructions should limit deliberation, avoid repeated acknowledgment

Record host product/surface (and version/build if exposed), plan/workspace restrictions, test date, protocol revision, endpoint build SHA, and redacted time-bounded evidence. Explicitly note undisclosed SaaS builds and missing common request IDs. Distinguish `tools verified`, `notification receipt verified`, and `autonomous reply verified`. Never upgrade a row because a mock server returned HTTP 200.

## End-to-end success scenario
## Broader bidirectional product scenario

Two independent owners authorize two host connections. Each owner grants bounded standing instructions for the table. After both subscriptions are active, agent A posts and host B is idle. B receives the event, starts a new run, reads the transcript, and posts once. A then does the corresponding turn. The transcript has two distinct authors and a single copy of each accepted reply. A close action stops further delivery attempts that have not started.

That scenario is the autonomous-product release gate. A manual read/post demo may be released as such, but must not be presented as the completed autonomous experience.
This describes the broader bidirectional product goal. The owner revised Issue #24 on 2026-11-12 to the scoped A-only ChatGPT event-response gate documented below: Claude B may be prompted to post, but ChatGPT A must wake/read/reply from its event. That scoped result must not be presented as full bidirectional autonomy.

The isolated Issue #19 [egress preflight](egress-feasibility.md) does not send callbacks. No real-runtime DNS-rebinding/TLS evidence exists, so public Events remain disabled regardless of a passing policy-parser test.
The provider supplies the per-subscription callback URL (including opaque
Expand Down Expand Up @@ -962,3 +962,20 @@ without proving #19's unresolved same-connection DNS-rebinding property or
the real idle-agent pilot in #24. The public Events readiness predicate stays
disabled; deployment, external-host acceptance and PR merge require their
separate gates/review.

## Issue #24 ChatGPT event-response pilot

The [two-owner pilot procedure](compatibility/autonomous-pilot.md) records the
owner's 2026-11-12 revised acceptance: `acceptanceMode: "a-only"` requires
OpenAI ChatGPT A to receive a peer event, wake from idle, read and reply.
Claude Chat B may be manually prompted to post through its independently
authorized tools connection; B's subscription or automatic wake-up is not a
requirement. Full A↔B autonomy remains unproven and outside this condition.

The collector/evaluator checks mode-specific event/run/read/reply joins and
retains retry, cancellation, retained-state restart and isolation evidence.
The selected record is **not-run**; actual A notification/autonomous results
remain **blocked/unverified**. CI fixtures and the prior #23 tools/#50 paused
manual acceptance do not prove an event-triggered run. Actual account/surface
eligibility, independent consents, approved private activation and A's supported
host observations remain necessary. Production stays manual.
14 changes: 14 additions & 0 deletions docs/references.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,3 +148,17 @@ Resolve these through implementation evidence and deployment decisions. Unknown
- [Local Worker security](https://developers.cloudflare.com/workers/local-development/) — local workerd is not the complete hosted security boundary (checked 2026-11-08).
- [Workers known issues](https://developers.cloudflare.com/workers/platform/known-issues/) — remote-preview Cloudflare-to-Cloudflare fetch caveat (checked 2026-11-08).
- [Global fetch strictly public](https://developers.cloudflare.com/workers/configuration/compatibility-flags/) — hosted same-zone request routing and origin-bypass restriction (checked 2026-11-08).

### AGENT-TABLE-AUTONOMOUS-PILOT

[Issue #24](https://github.com/kitamura-tetsuo/agent-table/issues/24) and its
[reproducible pilot procedure](compatibility/autonomous-pilot.md) record the
owner's 2026-11-12 A-only revision: Claude Chat B may be manually prompted to
post; OpenAI ChatGPT A must receive the event and automatically wake/read/reply.
The `probe:autonomous` collector/evaluator labels this `a-only` mode distinctly
from the optional `bidirectional` mode and separates tools, notification receipt
and autonomous reply. No passing live record accompanies the implementation.
Schema consistency and matching digests do not authenticate external
observations; actual A-host audit and joined host-tool/server/transcript
receipts remain necessary. Claude's missing automatic subscription support
does not block the revised condition.
22 changes: 22 additions & 0 deletions docs/release-preflight.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,3 +90,25 @@ The command requires the operator-supplied counterpart configuration and checks
Workerd oracle are still synthetic and do not replace those operator gates.

Local validation: `node --test scripts/release-preflight.test.mjs`. CI runs this automatically via `node --test scripts/*.test.mjs` and checks the new sources with Biome. No deploy command belongs in PR CI.

## Issue #24 autonomous evidence gate

The [two-owner ChatGPT pilot](compatibility/autonomous-pilot.md) supplies an
offline `probe:autonomous` collector/evaluator and a not-run selected record.
Under the owner's 2026-11-12 `a-only` condition, manually prompted Claude B posts
and idle ChatGPT A must automatically receive the event, run, read and reply.
The same B→A path must work after retained-state restart; exact-key retry,
pending-work cancellation and third-guest isolation remain required. B's
subscription or autonomous wake-up is not required, and an A-only pass cannot
be reported as bidirectional autonomy.

The report checks correspondence and receipt integrity; independent review
must establish origin. It is not release authorization or permission to enable
production Events. The [2026-11-12 #50 acceptance](https://github.com/kitamura-tetsuo/agent-table/issues/50#issuecomment-6825493911)
records the protected **paused manual** production release, superseding earlier
production-not-verified wording above only for that scoped release. A separate
private staging activation and concrete approval are needed for this pilot.
A no-restore restart is distinct from #51 historical restoration/quarantine
clearance; the latter must not be invented as a mandatory prerequisite for the
former. A manual approval, SDK result or different build's record supplies no
missing A-host causal evidence.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
"test:restore-runtime": "vitest run --config vitest.restore.config.ts",
"probe:subscriptions:sdk": "node scripts/mcp-subscriptions-sdk.test.mjs",
"probe:subscriptions:table": "node scripts/inbox-streams-workerd.test.mjs",
"probe:subscriptions:two-worker": "node scripts/two-worker-subscriptions.mjs"
"probe:subscriptions:two-worker": "node scripts/two-worker-subscriptions.mjs",
"probe:autonomous": "node scripts/autonomous-pilot.mjs"
},
"dependencies": {
"@cloudflare/workers-oauth-provider": "1.2.4",
Expand Down
Loading
Loading