Skip to content

fix(evaos): expose Mac-control canary blockers - #711

Merged
100yenadmin merged 2 commits into
evaos/beta-rc-20260612from
codex/v2136-staging-readiness-diagnostics
Jul 15, 2026
Merged

fix(evaos): expose Mac-control canary blockers#711
100yenadmin merged 2 commits into
evaos/beta-rc-20260612from
codex/v2136-staging-readiness-diagnostics

Conversation

@100yenadmin

@100yenadmin 100yenadmin commented Jul 15, 2026

Copy link
Copy Markdown
Owner

Description

  • Refresh the exact staging Mac private-network authority immediately before selected-binding runtime launch and fail closed on stale, future-dated, expired, malformed, or non-ready evidence.
  • Dynamically bind the canary session to the unique current staging Mac and preserve canonical sanitized blockers in a strict partial failure artifact.
  • Keep failed cleanup output off allowlisted proof paths so early failures still upload safe diagnostics without satisfying complete proof.

Related Issues

Type of Change

  • fix - Bug fix (non-breaking change which fixes an issue)
  • feat - New feature (non-breaking change which adds functionality)
  • perf - Performance improvement
  • refactor - Code restructuring (no behavior change)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • docs - Documentation update

Atomic PR Checklist (Rule 1)

  • This PR contains exactly one feature or bug fix that cannot be further decomposed
  • The PR title follows Conventional Commit format: <type>(<scope>): <subject> in English

Local Checks (Rule 2)

  • bun run format or bunx oxfmt --check <changed files> - formatting passes
  • bun run lint or targeted bunx oxlint <changed files> - no lint errors
  • bunx tsc --noEmit - no type errors
  • bunx vitest run or focused bun run test -- <files> - 301 files passed, 1 skipped; 2,820 tests passed, 3 skipped
  • i18n validated (bun run i18n:types + node scripts/check-i18n.js)
  • New or changed user-facing text uses i18n keys; N/A, no user-facing text changed
  • git diff --check - no whitespace errors

Runtime Verification

  • Verified on macOS
  • Verified on Windows
  • Verified on Linux
  • I have performed a self-review of my own code

Source validation is complete. This PR does not claim a live selected-binding callback, direct Mac-control receipt, signed/notarized installed-app proof, or customer readiness.

Agent Handoff

  • Source repos: 100yenadmin/evaOS-GUI
  • Systems touched: evaOS live-canary source and GitHub Actions workflow only; no staging/customer runtime mutation in this PR
  • Modules/files: Mac-control canary runner, readiness inventory, fixture provisioner, proof scanner, workflow, focused unit tests
  • Contracts: get_private_network_readiness exact request/response and freshness bounds; evaos.mac_control.live_canary_failure.v1; strict-vs-partial proof separation; cleanup temp-to-final publication
  • Dependencies: dashboard customer-mac-control and desktop-runtime-session contracts on current origin/main; canonical beta base 0cf0c3092587ecbaa301cc9fbd18408ca8e0a664
  • Non-goals: Mac Access extraction/identity/helper ownership, standalone pairing, customer Mac operation, release publication
  • Mutation boundary: branch and PR only; publication and live staging proof remain fail-closed
  • Proof path: 134 focused PR tests before review; 99 focused regression tests after review fixes; actionlint; four-lane adversarial review of the full PR plus an independent 98% exact-delta review at the final head; repository just push gate with 2,820 passing tests
  • Rollback: revert this PR
  • Confidence gate:
    • Primitive canary
    • Scenario canary
    • Negative-path proof
    • Adversarial replay
    • Takeover packet

Screenshots

N/A — release-canary and proof-contract change only.

Additional Context

Exact head: 6d47115ea5955b66e616b3c9d4dbdf2fd98b84ef.

The existing isolated-staging Mac fixture is not yet a truthful live connector: its enrollment/grant lineage and Headscale node are stale. That remains an explicit post-merge runtime gate; this PR makes the next run fail with exact safe evidence instead of collapsing to invalid_response or losing the artifact.

@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 2466beda-cad4-400e-bb16-7110765be186

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/v2136-staging-readiness-diagnostics

Comment @coderabbitai help to get the list of available commands.

@evaos-code-review-bot

evaos-code-review-bot Bot commented Jul 15, 2026

Copy link
Copy Markdown

evaOS review status: completed

PR: #711 - fix(evaos): expose Mac-control canary blockers
Head: 3d6d4b92064a74e600a3613991753179a9532509
Updated: 2026-07-15T13:53:42.231Z

evaOS review completed for this PR head.

Automation note: agents should wait for this comment to reach completed, stale_head, closed_or_merged_before_review, skipped, or failed before treating evaOS review as settled for this head. provider_deferred means evaOS still intends to retry.

PR URL: #711

Review URL: #711 (review)

@evaos-code-review-bot evaos-code-review-bot 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.

Walkthrough

PR: #711 - fix(evaos): expose Mac-control canary blockers
Head: 3d6d4b92064a74e600a3613991753179a9532509 into evaos/beta-rc-20260612. Review event: COMMENT.
Provider: GLM/Z.ai through ZCode (zcode-glm, zcode, model GLM-5.2).

Estimated review effort: 5/5 (~68 min)

Changed Files

File Status Churn Purpose Risk
.github/workflows/evaos-live-canary-proof.yml modified +7/-1 Changed file Low
scripts/evaosBrokerLiveCanary.js modified +165/-8 Changed file Moderate: validated P2 finding
scripts/evaosLiveCanaryReadiness.js modified +2/-0 Changed file Low
scripts/evaosProvisionLiveCanaryFixtures.js modified +33/-2 Changed file Low
scripts/evaosScanMacControlProofs.js modified +91/-0 Changed file Low
tests/unit/evaos/evaosBrokerLiveCanary.test.ts modified +322/-24 Test coverage Elevated: large change
tests/unit/evaos/evaosLiveCanaryReadiness.test.ts modified +3/-0 Test coverage Low
tests/unit/evaos/evaosLiveCanaryWorkflow.test.ts modified +64/-0 Test coverage Low
tests/unit/evaos/evaosProvisionLiveCanaryFixtures.test.ts modified +57/-3 Test coverage Low

Review Signal

Validated inline findings: 3 (P0: 0, P1: 0, P2: 1, P3: 2).
Dropped findings before posting: 0. High-severity findings: 0.

Risk Taxonomy

  • Proof gap: 1
  • Runtime correctness: 1
  • Security boundary: 1

Validation and Proof

2 required validation/proof recommendation(s) selected from changed files.

  • required: TypeScript/web build or CI proof - Runtime TypeScript/web files or package/config files changed. Proof: npm run build; typecheck; focused Vitest; green GitHub check.
  • required: CI/release smoke proof - CI, release, launchd, or package metadata changed. Proof: green GitHub check; release-status; coverage-audit; rollback note.
    Proof status: missing - 1 required validation/proof recommendation(s) missing from PR metadata.
    Profile validation hints: Do not ask for broad local suites when remote CI or fast-smoke proof is the right gate.
    Profile proof expectations: Look for focused app smoke, packaged resource checks, or CI artifact proof when relevant.

Related Context

Related issues/PRs: #480.
Suggested labels: tests.
Suggested reviewers: none from current metadata.

Review Settings Preview

  • Profile: assertive
  • Enabled sections: Review summary (inline_review); Walkthrough (inline_review); Changed-files table (walkthrough); Effort estimate (walkthrough); Related issues/PRs (walkthrough); Suggested labels (suggestion_only); Review status comment (sticky_status)
  • Path instructions: apps/eva-desktop-mac/** - Check macOS identity, helper path, TCC identity, and packaged resource shape risk.
  • Path instructions: scripts/** - Treat release, packaging, and artifact-shape changes as high risk.
  • Label suggestions: workbench, macos, regression-hardening
  • Reviewer suggestions: none
  • Suggestion behavior: suggestions only; labels and reviewers are not auto-applied.
  • Roadmap-only settings: auto-apply labels; auto-request reviewers; required status checks

Pre-merge checklist

  • Inline comments target current RIGHT-side diff lines.
  • No secret-like content survived into posted inline comments.
  • REQUEST_CHANGES is only used when eligible P0/P1 findings survive validation.
  • Required behavior proof is present or not applicable.
  • Labels and reviewers are suggestions only; the bot did not auto-apply them.

Comment thread scripts/evaosBrokerLiveCanary.js
Comment thread scripts/evaosBrokerLiveCanary.js
Comment thread scripts/evaosBrokerLiveCanary.js

@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: 3d6d4b9206

ℹ️ 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 scripts/evaosBrokerLiveCanary.js
Comment thread scripts/evaosProvisionLiveCanaryFixtures.js Outdated
@evaos-code-review-bot

evaos-code-review-bot Bot commented Jul 15, 2026

Copy link
Copy Markdown

evaOS review status: completed

PR: #711 - fix(evaos): expose Mac-control canary blockers
Head: 6d47115ea5955b66e616b3c9d4dbdf2fd98b84ef
Updated: 2026-07-15T14:23:35.890Z

evaOS review completed for this PR head.

Automation note: agents should wait for this comment to reach completed, stale_head, closed_or_merged_before_review, skipped, or failed before treating evaOS review as settled for this head. provider_deferred means evaOS still intends to retry.

PR URL: #711

Review URL: #711 (review)

@evaos-code-review-bot evaos-code-review-bot 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.

Walkthrough

PR: #711 - fix(evaos): expose Mac-control canary blockers
Head: 6d47115ea5955b66e616b3c9d4dbdf2fd98b84ef into evaos/beta-rc-20260612. Review event: COMMENT.
Provider: GLM/Z.ai through ZCode (zcode-glm, zcode, model GLM-5.2).

Estimated review effort: 5/5 (~68 min)

Changed Files

File Status Churn Purpose Risk
.github/workflows/evaos-live-canary-proof.yml modified +7/-1 Changed file Low
scripts/evaosBrokerLiveCanary.js modified +166/-8 Changed file Low
scripts/evaosLiveCanaryReadiness.js modified +2/-0 Changed file Low
scripts/evaosProvisionLiveCanaryFixtures.js modified +32/-2 Changed file Low
scripts/evaosScanMacControlProofs.js modified +91/-0 Changed file Low
tests/unit/evaos/evaosBrokerLiveCanary.test.ts modified +330/-24 Test coverage Elevated: large change
tests/unit/evaos/evaosLiveCanaryReadiness.test.ts modified +3/-0 Test coverage Low
tests/unit/evaos/evaosLiveCanaryWorkflow.test.ts modified +64/-0 Test coverage Low
tests/unit/evaos/evaosProvisionLiveCanaryFixtures.test.ts modified +70/-3 Test coverage Low

Review Signal

No validated inline findings.
Dropped findings before posting: 0. High-severity findings: 0.

Risk Taxonomy

No finding categories.

Validation and Proof

2 required validation/proof recommendation(s) selected from changed files.

  • required: TypeScript/web build or CI proof - Runtime TypeScript/web files or package/config files changed. Proof: npm run build; typecheck; focused Vitest; green GitHub check.
  • required: CI/release smoke proof - CI, release, launchd, or package metadata changed. Proof: green GitHub check; release-status; coverage-audit; rollback note.
    Proof status: missing - 1 required validation/proof recommendation(s) missing from PR metadata.
    Profile validation hints: Do not ask for broad local suites when remote CI or fast-smoke proof is the right gate.
    Profile proof expectations: Look for focused app smoke, packaged resource checks, or CI artifact proof when relevant.

Related Context

Related issues/PRs: #480.
Suggested labels: tests.
Suggested reviewers: none from current metadata.

Review Settings Preview

  • Profile: assertive
  • Enabled sections: Review summary (inline_review); Walkthrough (inline_review); Changed-files table (walkthrough); Effort estimate (walkthrough); Related issues/PRs (walkthrough); Suggested labels (suggestion_only); Review status comment (sticky_status)
  • Path instructions: apps/eva-desktop-mac/** - Check macOS identity, helper path, TCC identity, and packaged resource shape risk.
  • Path instructions: scripts/** - Treat release, packaging, and artifact-shape changes as high risk.
  • Label suggestions: workbench, macos, regression-hardening
  • Reviewer suggestions: none
  • Suggestion behavior: suggestions only; labels and reviewers are not auto-applied.
  • Roadmap-only settings: auto-apply labels; auto-request reviewers; required status checks

Pre-merge checklist

  • Inline comments target current RIGHT-side diff lines.
  • No secret-like content survived into posted inline comments.
  • REQUEST_CHANGES is only used when eligible P0/P1 findings survive validation.
  • Required behavior proof is present or not applicable.
  • Labels and reviewers are suggestions only; the bot did not auto-apply them.

@100yenadmin
100yenadmin merged commit 42c8a87 into evaos/beta-rc-20260612 Jul 15, 2026
22 of 23 checks passed
@100yenadmin

Copy link
Copy Markdown
Owner Author

Durable v2.1.36 / Mac Access handoff

Canonical GUI lineage:

  • base: 0cf0c3092587ecbaa301cc9fbd18408ca8e0a664
  • PR head: 6d47115ea5955b66e616b3c9d4dbdf2fd98b84ef
  • merge / current evaos/beta-rc-20260612: 42c8a872a0103551e5fa841c5f969af15fdd641e
  • bridge source digest remains f883286b66cfe0c0af8105569a5fb539dd1d08e8d6d242a48ce1154d580185f2

Changed paths are limited to:

  • .github/workflows/evaos-live-canary-proof.yml
  • scripts/evaosBrokerLiveCanary.js
  • scripts/evaosLiveCanaryReadiness.js
  • scripts/evaosProvisionLiveCanaryFixtures.js
  • scripts/evaosScanMacControlProofs.js
  • the four matching tests/unit/evaos/* files

Connector contracts future Mac Access must inherit:

  • v2.1.36 remains Workbench-owned: com.evaos.workbench, /Applications/evaOS Workbench.app, LaunchAgent com.electricsheep.evaos-desktop-bridge, plugin evaos-desktop-bridge.
  • Selected customer, VM, connector, grant, binding ID/version/expiry, capabilities, callback, and exact-host cookie are broker/ws-proxy authority. Caller-supplied authority headers are stripped and mismatches fail closed.
  • Signed execution context is evaos.mac_control_execution_context.v1, Ed25519 verified, short-lived, exact-scope, and replay-resistant.
  • Runtime receipt is gateway-authenticated POST /api/v1/evaos/mac-control/runtime-receipt, connector-forwarded to POST /v1/canary/mac-control, and proves the low-impact direct action customer_mac.desktop_hotkey with keys=escape, dryRun=false, unchanged ready/full-access control state, matching audit, and signed private/public attestations.
  • Release proof requires both installed native-app local-control proof and the selected-binding signed proxy receipt. Neither substitutes for the other.
  • This PR adds immediate get_private_network_readiness refresh with canonical device/enrollment/grant/audit lineage, exact-one raw staging device selection, 30-second producer authority, sanitized evaos.mac_control.live_canary_failure.v1, and strict separation of partial failure diagnostics from success proof.

Server dependencies:

  • ws-proxy selected binding: merge ac10d9284154dbb6340b14fd65ec8334b45dd541
  • ws-proxy signed context: merge 02949b8f3aa6a1857ce8c47749105a139c677053
  • ws-proxy exact-host cookie/current head: 06cb5fdc933072a299119ba0bc69ccc475b9e9dd
  • no known release-critical server/ws-proxy source dependency remains unmerged

Proof state:

  • replacement exact-head CI run 29422581794: fully green, including macOS arm64 install smoke
  • CodeRabbit: approved
  • evaOS exact-head review: completed with no findings
  • all five review threads: resolved
  • not yet proven: recreated truthful isolated-staging Mac lineage; signed installed-app callback/direct-control receipt; pristine-Mac onboarding without preinstalled Python/Tailscale; RC/live canaries; signed/notarized public assets and distribution

Mac Access #699/#707 may safely refresh from 42c8a872a0103551e5fa841c5f969af15fdd641e. This merge changes canary/workflow/test surfaces only and does not transfer helper ownership or alter connector identity.

@100yenadmin

Copy link
Copy Markdown
Owner Author

v2.1.36 beta.1 signed-artifact checkpoint

This is artifact evidence only. Publication remains disabled; no runtime or customer-readiness claim is made.

  • Frozen source: 42c8a872a0103551e5fa841c5f969af15fdd641e
  • Workbench Functional Smoke: run 29423463925, successful at the frozen source
  • Build and Release: run 29423991459, successful at the frozen source
  • Target: Apple Silicon macOS, app version/build 2.1.36
  • CI artifact: macos-build-arm64
  • Local DMG notarization submission: 7ddc7803-946b-4977-8c61-961eaf976e93, Accepted
  • DMG staple and Gatekeeper open assessment: passed
  • Mounted app deep signature, staple, and Gatekeeper execute assessment: passed
  • Updater-ZIP app deep signature, staple, and Gatekeeper execute assessment: passed
  • App CDHash from both containers: c07b61f134612d6c82634f23f07c30f0b5c5e5c9
  • Bundle identity: com.evaos.workbench
  • URL scheme: evaos-workbench
  • Packaged bridge source: exact frozen commit
  • Bundled Python: 3.12.13, arm64, isolated PyObjC imports passed
  • Bundled Peekaboo: 3.8.0

Final SHA-256:

  • evaOS.Workbench-2.1.36-mac-arm64.dmg: 021cac315a3b5d427a01d4851fe178b8471bd17e3eacdf36e6b332747931c83f
  • evaOS.Workbench-2.1.36-mac-arm64.zip: 7cb451cd554b5ad55355032d96907d7f4df5f18a4f73112c28edd7da0c7fd1b9
  • latest-arm64-mac.yml: 67da78ce35513578373a5e6880e4370b4e677e9ccb87bef1ed7003de06e18dd6

Updater metadata names the exact ZIP and its declared size 387512379 and SHA-512 match the final ZIP.

Still fail-closed: no approved organization-controlled pristine/staging Mac is currently available for clean onboarding, canonical enrollment/binding, selected-binding callback/direct-control receipt, or installed interactive proof. RC/live canaries and public distribution remain pending. The stale original 2.1.36 tag/draft/assets will not be moved or reused.

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