Decide provider and daemon execution model - #111
Conversation
Hermes-omt
left a comment
There was a problem hiding this comment.
Blocked pending branch refresh: head 0fca069 is behind current main d7f88dc and GitHub reports mergeable=false, mergeable_state=dirty. Please rebase/update the PR branch, resolve conflicts, and wait for fresh CI before re-review. Exact-head local inspection and swift test passed (110 tests); public reviews and inline review comments are empty.
0fca069 to
8dc58ce
Compare
Hermes-omt
left a comment
There was a problem hiding this comment.
Exact-head macOS review completed for 8dc58ce7e7cef18a39f626009102c5f1f13ec44a. The branch is current with main, mergeable/clean, auto-merge is enabled (squash), and no unresolved review comments were found. I inspected the full diff, execution-model call paths, release scripts, and adjacent parser tests; git diff --check and local fast checks passed (110 tests). GitHub Actions is successful, but the claude and cloudflare-workers-and-pages check suites remain queued after a bounded wait. Please let those checks settle, then rerun exact-head review before approval or merge.
8dc58ce to
a1ed514
Compare
pheidon
left a comment
There was a problem hiding this comment.
Pheidon second-pass blocker at exact head a1ed514f8290167ec3f55130715e9170fd85bb2c: manual workflow_dispatch accepts a release version, but checkout remains bound to the dispatch ref, while gh release create --verify-tag only verifies that v<version> exists. A same-version artifact can therefore be built from a different revision and attached to that tag. Bind manual checkout to refs/tags/v${version}, verify HEAD equals the dereferenced tag target before build/publish, and add a regression check for this invariant. Current CI is green, but it does not cover this source/tag binding.
|
Addressed the current-head review request. Manual releases now check out Local verification:
|
Hermes-omt
left a comment
There was a problem hiding this comment.
Exact-head review passed. The manual-release checkout now binds to refs/tags/v<version> and verifies HEAD equals the dereferenced tag target before building. Full diff/call-path review, git diff --check, release-contract check, actionlint, swift test (117 tests), and fast checks passed. PR is clean, auto-merge is enabled, and required CI is successful.
b7f1ed1 to
52d7870
Compare
Hermes-omt
left a comment
There was a problem hiding this comment.
Release blocker: .github/workflows/release.yml:41 expects swift run icloud-cli --version to print icloud-cli <version>, but the implemented CLI and its harness test intentionally emit the bare version. Exact-head macOS reproduction returned 0.2.0, so every release fails before signing. Change the workflow expectation to "$version" (or deliberately change the CLI contract and tests), and add a contract regression for that command-output comparison.
Hermes-omt
left a comment
There was a problem hiding this comment.
Exact-head macOS review passed for 1c75cb98b289b1622b0b636fb20ecadf4210f6ee. The branch is current with main, clean, and auto-merge remains enabled. I inspected the changed-file diff and release/version call path: tag checkout/HEAD binding and the bare-version assertion are correct. git diff --check, release-contract validation, swift test (154 tests), CLI version proof, and an ad-hoc universal-DMG packaging/checksum/signature validation passed. Current CI Gate and PR Checks succeeded; no inline review comments were returned.
1c75cb9 to
a0d236b
Compare
athena-omt
left a comment
There was a problem hiding this comment.
Exact-head targeted re-review passed. The manual release remains pinned to refs/tags/v${{ steps.version.outputs.version }} and verifies HEAD against the dereferenced tag target before build/publish. The repaired assertion now matches the CLI bare-version contract (CommandRunner emits CLIHelp.version), and scripts/ci/check-release-contract.sh covers the complete assertion. Verified the exact delta, git diff --check, and contract check locally; required PR Checks and CI Gate are successful. No merge, branch, or authorship changes made.
fdc3792
a0d236b to
fdc3792
Compare
athena-omt
left a comment
There was a problem hiding this comment.
Targeted re-review at exact head fdc3792 after base refresh. Both previously requested repairs verified on this head: (1) manual releases are bound to the versioned tag: workflow_dispatch checkout pins format('v{0}', inputs.version) and tag pushes use refs/tags/v* via github.ref, so HEAD is by construction the dereferenced tag target, and version resolution validates bare semver; (2) release verification asserts the CLI bare-version output (swift run icloud-cli --version | head -1) equals $version, with the full assertion regression-covered by scripts/ci/check-release-contract.sh (greps both exact workflow lines and executes the same assertion under CI). release.yml and the contract script are byte-identical to previously approved a0d236b. PR diff is docs-only (+58/-0): on-demand execution-model ADR, vision guardrails against unvalidated per-domain helpers/external delegation, and consistent cross-refs; preserves the Developer ID Application and permission-continuity release invariants. Verified from owning node OMT-NAS as athena-omt; git diff --check clean; PR Checks and CI Gate SUCCESS. No merge, branch replacement, or authorship changes.
Expose a deterministic metadata-only provider registry through JSON and text output, covering every current Apple-data command family with maturity, source, permission, sensitivity, capability, and polling declarations. Document the v1 compatibility policy.\n\nCloses #89.
Expose a versioned external manifest derived from the provider registry, document bounded local wrapper policy, and cover it with synthetic contract tests. Co-authored-by: Hermes <Hermes-omt@protonmail.com>
Compare CLI, daemon, helper, and delegated models across lifecycle, IPC, TCC, isolation, archives, signing, and recovery. Classify every provider and keep daemon mode and mutations outside the default boundary pending human approval.
fdc3792 to
369f8bc
Compare
athena-omt
left a comment
There was a problem hiding this comment.
Re-verified at exact head 369f8bc on the worker node (OMT-NAS) as athena-omt using a fresh detached worktree; reviewed source and adjacent tests there.
Scope/content: docs-only diff (VISION.md, docs/adr/001-execution-model.md [new], docs/provider-manifest.md, docs/release.md), +58 lines, zero source/test changes. Satisfies all of issue #83's acceptance criteria: compares on-demand CLI, launchd daemon, signed per-domain helpers, and external delegation across lifecycle, IPC/auth, TCC identity and blast radius, failure isolation, resources, archive ownership, signing/notarization, and recovery; keeps daemon mode a non-goal and local-only/read-only defaults authoritative; updates VISION.md and provider/release docs; implements no daemon or helper.
Evidence: independently cross-checked the provider-classification table against the machine-readable registry (Sources/ICloudCLICore/ProviderManifest.swift, icloud-cli.providers.v1) — all 30 providers are classified (2 public Apple framework: photos, reminders; 11 filesystem/plist; 17 private-store fallback; 0 delegated; 0 unsupported) with no drift; the mixed-sourceKind providers (photos, reminders, safari, tags) are handled with explicit notes. git diff --check clean; CI Gate and PR Checks pass at this head; branch is 0 behind main.
Status: an Athena APPROVED review already exists on this exact commit (submitted after the last push, no unresolved threads), so it remains current and no duplicate approval is posted. The sole remaining gate — non-author product, architecture, and security approval — is the intended human-required condition for this decision, not a defect in this PR; the ADR is correctly marked 'proposed' rather than 'accepted'. Content is ready to proceed once that human approval is recorded.
No GitHub writes or auto-merge changes were performed during this review.
pheidon
left a comment
There was a problem hiding this comment.
Pheidon sovereign architecture and security approval at exact head 369f8bc. I accept ADR 001: the signed on-demand CLI remains the required product and archive owner, while daemon mode remains a non-goal. The proposal preserves local-only and read-only defaults, adds no listener, helper, or IPC surface, gates future helpers or external delegation behind provider-specific evidence, and keeps mutations behind separate authorization and audit decisions. Athena independently verified this exact docs-only head, provider classification, prior release fixes, green CI, and zero unresolved threads. This supersedes my stale source-tag binding request on older head a1ed514, which is fixed and outside the current docs-only delta.
Summary
Governing Issue
Refs #83
This issue is explicitly human-required. The PR proposes a decision but does not mark the ADR accepted or close the issue before non-author product, architecture, and security approval.
Validation
Relevant local checks passed
Required PR checks are expected to satisfy
CI GateSkipped checks are explained below
git diff --check— passedbash scripts/ci/run-fast-checks.sh— passed; 110 tests, 88.58% source coverage, mutation checks, debug and release buildsNo checks skipped.
Bootstrap Governance
CONTRIBUTING.md,.github/PULL_REQUEST_TEMPLATE.md, anddocs/bootstrap/onboarding.mdwhen applicableNo contributor guidance changed.
Flow Contract
Flow Merge Readiness
Next actors: product, architecture, and security reviewers must accept or amend the proposed decision.
Merge Automation
gh pr merge --auto --squash, or the reason it is unavailable/unsafe is noted belowAuto-merge is intentionally disabled for the human-required architecture decision.
Notes