Skip to content

feat(claude): discover bounded Orca profiles with provenance checks - #173

Merged
abruption merged 5 commits into
mainfrom
feat/claude-profiles-165
Nov 3, 2026
Merged

abruption merged 5 commits into
mainfrom
feat/claude-profiles-165

Conversation

@abruption

@abruption abruption commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

Problem and resulting behavior

Claude sessions registered only in macOS Orca profiles are missing from the default list and target-selection path. This change inventories the default registry and known immediate Orca profile locations, carrying the selected registration source through send and handoff checks instead of reconstructing a default path.

  • Nonempty CLAUDE_CONFIG_DIR / ANTHROPIC_CONFIG_DIR overrides retain precedence and isolate discovery to one registry. Linux and Windows do not scan the macOS convention.
  • Automatic directories and records require current-user ownership and no group/world write permission, including canonical aliases. macOS extended ACLs, including owner-only entries, are conservatively refused using bounded trusted system metadata inspection. The legacy default/explicit-only policy stays intact.
  • Inventory processes at most 128 profile entries and 4,096 total registry entries, with an overflow entry for limit detection; registration files remain bounded to 1 MiB. Readable rows survive incomplete inventory, but send and sender inference refuse incomplete or conflicting evidence.
  • Canonical aliases of the same registry scan once. Distinct live PID, socket-string or underlying endpoint claims conflict even if records have identical text. Ordinary name ambiguity remains a refusal.
  • Private metadata for the selected source and all observed records/endpoints/absence is rechecked after asynchronous hooks and identity reads, before submission. This is observable continuity checking, not an atomic filesystem snapshot, native-incarnation authentication or a blocking-I/O deadline guarantee.
  • Doctor and sender detection share the bounded inventory. Confirmed exited Windows PIDs stay stale without disabling healthy sessions; genuine inspection uncertainty remains fail-closed. Public ordinary row fields remain unchanged apart from the explicit stale diagnostic, and Claude generation remains null.
  • Four-language guides, help and parity notes describe the source scope. VERSION/dependencies stay at 0.5.2; no release is included.

Validation

Exact head 3373c265b2ba240106ca152fed190fa74543658d on Node 24.22.1 / macOS arm64:

  • Full suite: 552 tests — 540 pass, 0 fail, 11 skip, 1 existing TODO, using immutable Python 1.1.0 reference 8ca77cf31254c8287a2593fe484bb30a7dba2727.
  • Profile suite 49/49; additional legacy record and Windows inspection fixtures remain in the full suite. Fixtures cover overrides, optional/unsafe/incomplete sources, aliases/conflicts, limits, permissions, Windows absence versus unknown inspection, late competing profiles, in-place changes to other records and endpoint retargeting. Refusal/list/dry-run fixtures assert zero fixture-inbox connections.
  • Build/types, repository metadata and local links/anchors, scoped version consistency and git diff --check pass.
  • Package smoke passes: existing 79-file package contract, reproducible pack checks in current-head CI, isolated install/native binding/shorthand/uninstall checks.

Independent Codex review findings were checked against source and fixed with regression fixtures. The two GitHub review threads (confirmed Windows absence; all-record final fencing) have fixes and replies in d7997b5 and are resolved. The existing name-ambiguity fixture now uses distinct endpoints so it continues testing name ambiguity rather than conflicting endpoint claims. Initial Windows CI also exposed PID 1 being treated as an inspection failure; known-invalid PIDs are now rejected before native inspection, without weakening actual failure handling.

Current-head CI is 12/12 successful (macOS/Ubuntu Node 22/24, Windows Node 22/24, repository policy, package/release gate, CodeQL and GitGuardian). Fresh manual Code Review and Security Review both completed on this exact head with no findings.

No actual user profile inventory, real agent inbox input, live native/model/SSH or ACK qualification was performed. Test sockets/processes are isolated fixtures. No merge, release, npm publication or global installation is included.

Closes #165

Preserve registry provenance through selection and handoff checks, and refuse incomplete or conflicting inventories before submission.

Refs #165
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-03T00:33:53.944268Z 3373c26 Manual request
🔒 Security Review ✅ Completed 2026-11-03T00:34:56.781226Z 3373c26 Manual request

Security findings

Advisory findings (1)

ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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

ℹ️ 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 src/discovery.ts Resolved
Comment thread src/discovery.ts Resolved
…robes

Require current-user ownership and non-writable-by-others automatic directory and record evidence, including canonical aliases. Treat known-invalid PID 1 as stale before Windows inspection.

Refs #165
…le processes

Distinguish confirmed Windows process absence from unknown inspection, and retain metadata for all observed registration and endpoint paths through the last effect boundary.

Refs #165
@abruption

Copy link
Copy Markdown
Owner Author

@codex review

Please review the current head d7997b5, including the fixes to confirmed Windows process absence and the complete registration/endpoint metadata fence.

@abruption

Copy link
Copy Markdown
Owner Author

@codex security review

Please review the current head d7997b5.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. What shall we delve into next?

Reviewed commit: d7997b520a

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

@abruption

Copy link
Copy Markdown
Owner Author

@codex security review

@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 Security Review

Here are some automated security review suggestions for this pull request.

Reviewed commit: d7997b520a

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

Comment thread src/discovery.ts Resolved
Inspect automatic directories and records through bounded trusted macOS metadata batches and revalidate ACL/path evidence before effect. Preserve legacy explicit and default-only behavior.

Refs #165
@abruption

Copy link
Copy Markdown
Owner Author

@codex review

@abruption

Copy link
Copy Markdown
Owner Author

@codex security review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Can't wait for the next one!

Reviewed commit: 3373c265b2

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

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review

Security review completed. No security issues were found in this pull request.

Reviewed commit: 3373c265b2

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@abruption
abruption merged commit fb33954 into main Nov 3, 2026
12 checks passed
@abruption
abruption deleted the feat/claude-profiles-165 branch November 3, 2026 05:05
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.

feat(claude): support bounded macOS Orca profile discovery and unambiguous selection

1 participant