Skip to content

HOLD: harden disabled AEON Aspect workers (no live activation)#2346

Open
StephGlansberg wants to merge 3 commits into
block:mainfrom
StephGlansberg:codex/aeon-aspect-workers
Open

HOLD: harden disabled AEON Aspect workers (no live activation)#2346
StephGlansberg wants to merge 3 commits into
block:mainfrom
StephGlansberg:codex/aeon-aspect-workers

Conversation

@StephGlansberg

@StephGlansberg StephGlansberg commented Jul 22, 2026

Copy link
Copy Markdown

HOLD — no live activation

This PR is a disabled source checkpoint for six AEON Aspect buzz-acp workers. It does not install, load, start, restart, switch, or mutate any live Gateway, session, token, worker, Fleet policy, or Concilium path. It makes no Voxis, A2A, or live-canary claim.

What it hardens

  • Canonical private ephemeral-room admission: positive ttl, valid future ttl_deadline, deterministic latest kind-39000 selection, exact h tag, and fail-closed revocation on expiry/archive/membership removal/query failure.
  • Runtime receipt correlation from triggering request through ACP evidence to one cryptographically verified reply using the exact prompt anchor; delayed duplicates fail closed. Thread-root follow-ups and receipt-enabled top-level DMs share the same prompt/readback anchor.\n- Opt-in trusted inbound-event transport: one signature-verified event is carried outside prompt text at _meta.buzz.inboundEvent; invalid, ambiguous, multi-event, cancelled/merged, and heartbeat turns fail closed with no envelope.
  • Stable fixed Gateway sessions with --require-existing, --no-memory, and --no-base-prompt; Gateway remains the identity, tools, skills, memory, and compaction owner.
  • Existing Buzz ACP behavior is pinned explicitly: one process, queue/queue handling, presence/typing/observer on, bounded context, heartbeat/count rotation off, timeouts fixed, and Architect-approved bypassPermissions posture. No Buzz MCP/model/system/team/initial prompt is injected.
  • Private-office and invited-huddle rules accept the native kind-9 and kind-40002 stream-message surfaces while retaining exact room, exact h, Architect author, and huddle mention gates.
  • One-handle O_NOFOLLOW Aspect key reads with current-user/0600/expected-pubkey checks.
  • Six deterministic, secret-free LaunchAgent previews with RunAtLoad=false, KeepAlive=false, Fleet placeholders, and one-worker rollback labels.
  • Real six-TOML load_rules() and Clap parsing tests plus package validators.

Proof

  • node --test deploy/local/aeon-aspects/worker.test.mjs — 9/9
  • node deploy/local/aeon-aspects/validate.mjs — OK
  • cargo test -p buzz-acp — 595/595, including two-turn thread-root and top-level-DM receipt contracts
  • cargo clippy -p buzz-acp --all-targets -- -D warnings — green
  • just ci — format, workspace clippy, Desktop/web/mobile checks, Rust/JS tests, and Desktop build reached green; one first-run macOS process-group test returned getsid=-1, then the full pre-push Desktop suite reran green (1531 passed, 13 ignored)
  • pre-push rust-tests, desktop-tauri-test, and branch-skew — green
  • git diff --check — clean
  • detect-secrets + manual changed/generated-file scan — no secrets; reported examples/test hex only
  • Three independent final blocker reviews — no actionable findings after correcting thread-root and top-level-DM receipt anchoring

Does not prove / resume blockers

  • Current OpenClaw ACP wire does not expose a fresh per-prompt Gateway runId.
  • The fixed Nexus session's caller-bound outbound Buzz publisher/signing path is not yet proven.
  • Exact live relay membership is not proven by the identity-map declaration.
  • Cross-process exactly-once is not durable; unattended restart therefore remains disabled.
  • Kind-48106 huddle guideline delivery, broad avatar metadata, and spoken-huddle proof remain open.
  • Workflow approval/multi-room behavior, media mutations, Concilium speech, broad A2A speech, and the other five live workers remain outside the Nexus text canary.

Nexus-only resume checklist

After Fleet releases the runtime lock, all of these are required before requesting a separate Architect Nexus-only canary GO:

  1. Supply the immutable Gateway generation identity and immutable OpenClaw binary path.
  2. Prove pre-existing agent:main:buzz-private and current openclaw acp --require-existing flag behavior.
  3. Supply the owned token-file path and read back: absolute, regular, non-symlink, current-user owner, mode 0600.
  4. Supply an ACP wire fixture with fixed sessionKey and a fresh per-prompt runId.
  5. Prove a caller-bound Nexus-session outbound Buzz publisher that cannot select an arbitrary Aspect and emits a Nexus-signed exact reply anchor.
  6. Verify the live Nexus private room contains exactly Architect and Nexus.
  7. Confirm the legacy aeon-buzz reply path is disabled and no Gateway switch/restart/validation is in progress.
  8. Render replacements for Nexus only, start one worker only, perform one request/reply, retain both event IDs + session key + run ID, and materialize the receipt.
  9. Roll back only org.aeon.buzz-acp.nexus if any proof fails.

The other five workers remain disabled and require separate later authorization.

@StephGlansberg
StephGlansberg force-pushed the codex/aeon-aspect-workers branch 2 times, most recently from 254186c to 2838194 Compare July 22, 2026 16:47
Signed-off-by: StephGlansberg <StephGlansberg@users.noreply.github.com>
@StephGlansberg
StephGlansberg force-pushed the codex/aeon-aspect-workers branch from 2838194 to 4ef8526 Compare July 22, 2026 17:09
@StephGlansberg
StephGlansberg marked this pull request as ready for review July 22, 2026 17:10
@StephGlansberg
StephGlansberg requested a review from a team as a code owner July 22, 2026 17:10
@StephGlansberg

StephGlansberg commented Jul 22, 2026

Copy link
Copy Markdown
Author

@wesbillman — requesting review as a recent buzz-acp approver. The fork workflows also need maintainer approval to run.

Ready for maintainer review at current head 47f4b73aaa862a03830b8043a691e567e4215f42.

The branch remains based on current main (f8fd055). The new head adds the default-off trusted inbound-event ACP metadata seam needed for a caller-bound AEON reply tool; it adds no endpoint and performs no live activation.

Fresh focused proof:

  • node --test deploy/local/aeon-aspects/worker.test.mjs — 9/9
  • node deploy/local/aeon-aspects/validate.mjs — OK
  • cargo test -p buzz-acp — 595/595
  • cargo clippy -p buzz-acp --all-targets -- -D warnings — green
  • pre-push Rust and Desktop Tauri suites — green
  • git diff --check origin/main...HEAD — clean

This remains a source-only, disabled-by-default package. A maintainer must approve the fork workflows and a @block/buzz-oss-team CODEOWNER must approve before the protected squash merge can proceed. Please approve/run workflows and review when available.

@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: 4ef8526d45

ℹ️ 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".


const here = dirname(fileURLToPath(import.meta.url));
const manifest = loadJson(join(here, "workers.json"));
const identityMap = loadJson(manifest.identityMap);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Make worker tests independent of private identity map

In any checkout that does not have the AEON vault mounted at manifest.identityMap, this top-level load aborts before the tests can start; I reproduced node --test deploy/local/aeon-aspects/worker.test.mjs failing with ENOENT for /Volumes/AEON/.../identity-map.json. Because this test file is checked in and the README/commit proof asks people to run these validators without live-state changes, please use a checked-in fixture, a path override, or an explicit skip when the external identity map is absent.

Useful? React with 👍 / 👎.

Signed-off-by: StephGlansberg <StephGlansberg@users.noreply.github.com>
@StephGlansberg
StephGlansberg force-pushed the codex/aeon-aspect-workers branch from 420ca5f to 011c25e Compare July 22, 2026 17:26
Signed-off-by: StephGlansberg <StephGlansberg@users.noreply.github.com>

Copy link
Copy Markdown
Author

@codex review

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