From be4abfb477552bc0a07f10d51d33308608587b3d Mon Sep 17 00:00:00 2001 From: 0xLeif Date: Sat, 18 Jul 2026 17:12:37 -0600 Subject: [PATCH 1/3] Error contract: exit-code taxonomy and JSON error envelope (Closes #31) - sysexits-aligned exit codes for every APSError: 64 usage, 65 data (corruptState + decodingFailed), 69 unavailable, 70 internal, 73 write did not persist (66 reserved) - single CLIOutput.fail path: human stderr line + optional {error:{code,message,hint}} envelope (--json/--jsonl or APS_ERROR_JSON=1); replaces the corruptState-only reportAPSError shim and ValidationError flattening; dump/reset covered for the first time - keeps CHG-0016's requireDecodableDiskState as the loud corrupt-state mechanism (no duplicate) - tests + smoke assertions for the whole contract; specs/README in lockstep - SpecSync CHG-0018 accepted; evidence rebound for CHG-0003/0004/0007/0011/ 0012/0013/0014/0015/0016/0017 (audited reopens, actor 0xLeif) Supersedes #47 (rebuilt on post-#43 main). --- .specsync/change-sequence.json | 4 +- .../approvals.json | 19 +++ .../change.md | 24 +++ .../context.md | 24 +++ .../deltas/aps-cli.md | 89 ++++++++++ .../design.md | 17 ++ .../docs.md | 11 ++ .../plan.md | 15 ++ .../requirements.md | 10 ++ .../state.json | 45 ++++++ .../tasks.md | 11 ++ .../testing.md | 17 ++ .../verification-attempts.json | 22 +++ .../verification.json | 153 ++++++++++++++++++ README.md | 23 +++ Scripts/smoke.sh | 26 +++ Sources/aps/Aps.swift | 66 ++++---- Sources/aps/CLIOutput.swift | 47 +++++- Sources/aps/DemoKey.swift | 42 +++++ Tests/apsTests/APSTests.swift | 58 +++++++ specs/aps-cli/aps-cli.spec.md | 38 ++++- specs/aps-cli/requirements.md | 4 +- 22 files changed, 718 insertions(+), 47 deletions(-) create mode 100644 .specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/approvals.json create mode 100644 .specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/change.md create mode 100644 .specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/context.md create mode 100644 .specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/deltas/aps-cli.md create mode 100644 .specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/design.md create mode 100644 .specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/docs.md create mode 100644 .specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/plan.md create mode 100644 .specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/requirements.md create mode 100644 .specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/state.json create mode 100644 .specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/tasks.md create mode 100644 .specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/testing.md create mode 100644 .specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification-attempts.json create mode 100644 .specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification.json diff --git a/.specsync/change-sequence.json b/.specsync/change-sequence.json index cbacac9..085fce3 100644 --- a/.specsync/change-sequence.json +++ b/.specsync/change-sequence.json @@ -1,6 +1,6 @@ { "schema_version": 1, - "sequence": 20, - "id": "CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46", + "sequence": 21, + "id": "CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on", "acknowledged_collisions": [] } diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/approvals.json b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/approvals.json new file mode 100644 index 0000000..6fcb6bb --- /dev/null +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/approvals.json @@ -0,0 +1,19 @@ +{ + "approvals": [ + { + "gate": "definition", + "actor": "0xLeif", + "timestamp": 1784415716, + "digest": "ecbe6220e5438a506b18a610387c0e828176ef9c8716d97b792f5cc9ad891434", + "note": null + }, + { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784415731, + "digest": "cc2c7fc9932eeb89363ac40d0433c6d5a1051f3d48fab933f4951efcd25e5be4", + "note": null + } + ], + "reopenings": [] +} diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/change.md b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/change.md new file mode 100644 index 0000000..c90785e --- /dev/null +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/change.md @@ -0,0 +1,24 @@ +--- +id: CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on +state: accepted +type: feature +base_commit: 8cf886df7ac87eac4234fc3fb8c13f46362e08d6 +--- + +# Error contract: exit-code taxonomy and JSON error envelope (issue 31, rebuilt on corruptState main) + +## Intent + +Error contract: exit-code taxonomy and JSON error envelope (issue 31, rebuilt on corruptState main) + +## Affected Canonical Specs + +- `aps-cli` + +## Acceptance Criteria + +- Domain errors exit per the taxonomy (64 usage, 65 corrupt/undecodable state, 69 unavailable, 70 internal, 73 persist-fail) through one CLIOutput.fail path; stderr carries a human line plus a {error:{code,message,hint}} envelope with --json/--jsonl or APS_ERROR_JSON=1; stdout stays empty on error; codes include corrupt_state from the merged multi-writer work; tests and smoke assert all of it. + +## No-spec Rationale + +Not applicable diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/context.md b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/context.md new file mode 100644 index 0000000..7b9c417 --- /dev/null +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/context.md @@ -0,0 +1,24 @@ +--- +change: CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on +artifact: context +--- + +# Context + +Issue #31 (design decision 4). Originally built as CHG-0016/PR #47, then +rebuilt on fresh main after CHG-0016 (multi-writer corruptState, PR #43) +landed the corrupt-state slice with different naming. This change keeps the +merged `corruptState` semantics and adds the full error contract on top. + +## Decisions + +- sysexits-aligned taxonomy for every APSError: 64 usage, 65 data + (`corruptState` + `decodingFailed`), 69 unavailable, 70 internal, + 73 write did not persist (66 reserved). +- One failure path (`CLIOutput.fail`): human line on stderr, optional + `{"error":{"code","message","hint"}}` envelope, taxonomy exit code. + Replaces the corruptState-only `reportAPSError` shim and the old + flatten-to-`ValidationError` bridge. +- Envelope timing: machine modes (`--json`/`--jsonl`) or `APS_ERROR_JSON=1`. +- Loud corrupt-state stays with CHG-0016's `requireDecodableDiskState`; + this change adds no duplicate mechanism. diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/deltas/aps-cli.md b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/deltas/aps-cli.md new file mode 100644 index 0000000..791ef4c --- /dev/null +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/deltas/aps-cli.md @@ -0,0 +1,89 @@ +# aps-cli error contract: exit taxonomy and JSON envelope + +## MODIFIED + +### REQUIREMENT REQ-aps-cli-002 + +`set` SHALL reject values that cannot parse to the key's type and exit non-zero via `APSError.invalidValue`. All domain errors SHALL follow the error contract: human line on stderr, taxonomy exit code, and a JSON envelope when `--json` / `--jsonl` or `APS_ERROR_JSON=1`. + +Acceptance Criteria +- Non-integer `counter` values fail with an invalid-value message. +- Non-boolean `flag` values fail with an invalid-value message. +- `APSError.description` names the key and expected type. +- Exit codes: 64 usage, 65 corrupt or undecodable persisted state, 69 unavailable, 70 internal, 73 write did not persist. +- The envelope shape is `{"error":{"code","message","hint"}}` with stable snake_case codes (`invalid_value`, `encoding_failed`, `decoding_failed`, `persistence_failed`, `keychain_unavailable`, `corrupt_state`); stdout stays empty on error. + +### SPEC SECTION Public API + +| Export | Description | +|--------|-------------| +| `DemoKey` | Fixed schema enum including `profile`, `secret`, and `profileName`. | +| `ProfileDocument` | Codable `{name, version}` FileState document. | +| `name` | ProfileDocument display name field. | +| `version` | ProfileDocument integer version field. | +| `init` | ProfileDocument memberwise initializer. | +| `APSKeychain` | Well-known Keychain service/account for `secret`. | +| `service` | Reverse-DNS Keychain feature namespace (`dev.leif.aps`). | +| `account` | Keychain account id (`secret`). | +| `secretAccount` | Full account key (`dev.leif.aps/secret`). | +| `APSError` | Typed CLI/domain errors. | +| `counter` | Int key stored in AppState `State`. | +| `message` | String key stored in AppState `State`. | +| `flag` | Bool key stored in AppState `StoredState`. | +| `note` | String key stored in AppState `FileState`. | +| `profile` | ProfileDocument key stored in AppState `FileState`. | +| `secret` | String key stored in AppState `SecureState` (Keychain). | +| `profileName` | String Slice over `ProfileDocument.name`. | +| `invalidValue` | Value could not parse for the key type. | +| `encodingFailed` | UTF-8 JSON encode failure. | +| `decodingFailed` | UTF-8 JSON decode failure. | +| `persistenceFailed` | Disk/Keychain-backed key did not persist after write. | +| `keychainUnavailable` | SecureState unavailable without Apple Security. | +| `corruptState` | FileState file exists but is undecodable (torn write). | +| `corruptStateExitCode` | Exit code 65 (`EX_DATAERR`) for `corruptState`. | +| `storage` | Human storage kind (`State` / `StoredState` / `FileState` / `SecureState` / `Slice`). | +| `valueType` | Human value type (`Int` / `String` / `Bool` / `ProfileDocument`). | +| `helpSummary` | Tab-separated key/type/storage columns for `keys`. | +| `detail` | One-line description for `keys`. | +| `description` | Actionable error text for humans. | +| `code` | Stable machine error code for the JSON envelope. | +| `exitCode` | sysexits-aligned process exit code. | +| `hint` | Actionable next step in the error envelope. | + +### SPEC SECTION Invariants + +1. The CLI entry point runs on the real main thread so AppState + `notifyChange()` assertions hold on Linux and macOS. +2. stdout for `get` / `set` / `watch` / `reset ` is only the value line(s); + stdout stays empty on error; help uses ArgumentParser defaults and domain + errors use the Error Cases contract (human line plus optional JSON envelope). +3. `State` keys are process-local; a new process must not be expected to retain + `counter` or `message`. +4. `watch` must flush each printed value immediately when stdout is not a TTY. +5. `keys` and `--help` do not mutate application state. + +### SPEC SECTION Error Cases + +Domain errors fail through a single contract (`CLIOutput.fail`): a human line +on stderr, an optional JSON envelope, and a taxonomy exit code. + +Exit codes (sysexits-aligned): + +| Code | Meaning | aps mapping | +|------|---------|-------------| +| 0 | success | stdout contract satisfied | +| 64 | EX_USAGE | caller-fixable: bad key/flags, `invalidValue`, reset arg conflicts | +| 65 | EX_DATAERR | corrupt persisted state (`corruptState`) or undecodable data (`decodingFailed`) | +| 69 | EX_UNAVAILABLE | `keychainUnavailable` on platforms without Apple Security | +| 70 | EX_SOFTWARE | internal bug: `encodingFailed` | +| 73 | EX_CANTCREAT | write did not persist: `persistenceFailed` | +| 66 | EX_NOINPUT | reserved for future explicit-file operations | + +- Missing state files are not errors: they mean the initial value. +- A disk-backed file that exists but does not decode fails loudly (65) via + `StateStore.requireDecodableDiskState` before `get` / `watch` output. +- With `--json` / `--jsonl`, or when `APS_ERROR_JSON=1`, stderr additionally + gets one `{"error":{"code","message","hint"}}` envelope; stdout stays empty + on error in every mode. +- Unknown `DemoKey` token and flag shape errors: ArgumentParser rejects + before `run()` with its own 64. diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/design.md b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/design.md new file mode 100644 index 0000000..eee5892 --- /dev/null +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/design.md @@ -0,0 +1,17 @@ +--- +change: CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on +artifact: design +--- + +# Design + +- `APSError` gains `code` (stable snake_case), `exitCode` (Int32 taxonomy, + reusing `corruptStateExitCode` for the two data cases), and `hint`. +- `CLIOutput.ErrorEnvelope` encodes via `encodeLine` with + `.withoutEscapingSlashes`. +- `CLIOutput.fail(_:json:)` writes the human line, conditionally the + envelope, then throws `ExitCode(error.exitCode)`. All commands catch + `APSError` through it, including dump and reset which previously + propagated raw errors. +- The watch jsonl corrupt-state event from CHG-0016 is unchanged; the + process exit after it now follows the same taxonomy via `fail`. diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/docs.md b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/docs.md new file mode 100644 index 0000000..a7c415d --- /dev/null +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/docs.md @@ -0,0 +1,11 @@ +--- +change: CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on +artifact: docs +--- + +# Docs + +README gains an "Error contract" section next to the multi-writer section: +exit-code table (0/64/65/69/70/73 plus 66 reserved), the +missing-means-initial rule, the JSON envelope shape with a real example, +the stable code list, and `APS_ERROR_JSON=1`. diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/plan.md b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/plan.md new file mode 100644 index 0000000..5496797 --- /dev/null +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/plan.md @@ -0,0 +1,15 @@ +--- +change: CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on +artifact: plan +--- + +# Plan + +1. Extend `APSError` with code/exitCode/hint (corruptState included). +2. Add `ErrorEnvelope` + `fail` to `CLIOutput`; route get/set/watch through + it (replacing `reportAPSError`) and add coverage to dump/reset. +3. Tests: taxonomy mapping, envelope shape, envelope modes, + requireDecodableDiskState corrupt case. +4. Smoke: exit codes 64/65/73, stdout purity, envelope greps, + `APS_ERROR_JSON=1`. +5. aps-cli spec + requirements + README in the same change (lockstep rule). diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/requirements.md b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/requirements.md new file mode 100644 index 0000000..466809d --- /dev/null +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/requirements.md @@ -0,0 +1,10 @@ +--- +change: CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on +artifact: requirements +--- + +# Requirements + +- REQ-aps-cli-002 extended: taxonomy exit codes (64/65/69/70/73), + envelope shape with stable codes including `corrupt_state`, and stdout + purity on error. diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/state.json b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/state.json new file mode 100644 index 0000000..8765ae4 --- /dev/null +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/state.json @@ -0,0 +1,45 @@ +{ + "schema_version": 1, + "id": "CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on", + "slug": "error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on", + "title": "Error contract: exit-code taxonomy and JSON error envelope (issue 31, rebuilt on corruptState main)", + "description": "Error contract: exit-code taxonomy and JSON error envelope (issue 31, rebuilt on corruptState main)", + "kind": "feature", + "state": "accepted", + "canonical_applied": true, + "base_commit": "8cf886df7ac87eac4234fc3fb8c13f46362e08d6", + "created_at": 1784415698, + "updated_at": 1784415731, + "affected_specs": [ + "aps-cli" + ], + "affected_paths": [ + "Sources/aps/Aps.swift", + "Sources/aps/CLIOutput.swift", + "Sources/aps/DemoKey.swift", + "Tests/apsTests/APSTests.swift", + "Scripts/smoke.sh", + "specs/aps-cli", + "README.md", + ".specsync/change-sequence.json" + ], + "no_spec_change": false, + "no_spec_change_rationale": null, + "acceptance_criteria": [ + "Domain errors exit per the taxonomy (64 usage, 65 corrupt/undecodable state, 69 unavailable, 70 internal, 73 persist-fail) through one CLIOutput.fail path; stderr carries a human line plus a {error:{code,message,hint}} envelope with --json/--jsonl or APS_ERROR_JSON=1; stdout stays empty on error; codes include corrupt_state from the merged multi-writer work; tests and smoke assert all of it." + ], + "selected_artifacts": [ + "context", + "requirements", + "plan", + "tasks", + "testing", + "docs", + "design" + ], + "dependencies": [], + "answers": { + "architecture_risk": "no", + "public_contract": "yes" + } +} diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/tasks.md b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/tasks.md new file mode 100644 index 0000000..60516d2 --- /dev/null +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/tasks.md @@ -0,0 +1,11 @@ +--- +change: CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on +artifact: tasks +--- + +# Tasks + +- [x] APSError code/exitCode/hint +- [x] CLIOutput envelope + fail path in all commands +- [x] Unit tests and smoke assertions +- [x] aps-cli spec, requirements, and README updates diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/testing.md b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/testing.md new file mode 100644 index 0000000..30df92a --- /dev/null +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/testing.md @@ -0,0 +1,17 @@ +--- +change: CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on +artifact: testing +--- + +# Testing + +## Requirement evidence + +| Requirement | Evidence | +| --- | --- | +| REQ-aps-cli-002 | `testAPSErrorContractCodesAndExitCodes`, `testErrorEnvelopeEncodesStableShape`, `testStructuredErrorsEnabledModes`; smoke asserts exit 64/65/73, stdout purity, and envelope greps incl. `APS_ERROR_JSON=1` | + +## Suites + +- `swift test` +- `fledge lanes run verify` diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification-attempts.json b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification-attempts.json new file mode 100644 index 0000000..da34a08 --- /dev/null +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification-attempts.json @@ -0,0 +1,22 @@ +{ + "schema_version": 1, + "attempts": [ + { + "timestamp": 1784415725, + "commit": "8cf886df7ac87eac4234fc3fb8c13f46362e08d6", + "contract_digest": "ecbe6220e5438a506b18a610387c0e828176ef9c8716d97b792f5cc9ad891434", + "workspace_digest": "a6f1e1398ee1ed71507e9a499bddf864b32aab24adf12b8605e2fb621dbd882b", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-002" + ] + } + ] +} diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification.json b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification.json new file mode 100644 index 0000000..3db6186 --- /dev/null +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification.json @@ -0,0 +1,153 @@ +{ + "timestamp": 1784415725, + "commit": "8cf886df7ac87eac4234fc3fb8c13f46362e08d6", + "contract_digest": "ecbe6220e5438a506b18a610387c0e828176ef9c8716d97b792f5cc9ad891434", + "workspace_digest": "a6f1e1398ee1ed71507e9a499bddf864b32aab24adf12b8605e2fb621dbd882b", + "acceptance_input_digest": "663ef99a96a2c945fb7c695e67262ba1789470fc2129d63e5317b641bd035b3c", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "681173662e60625fbe69ef01b5a01eb8aad8242c07d001242525b198ae92e9d4", + "entry_digest": "bea1cade7667b76a3d2f0a57b510bdc10fcb79ddafd2495ced2f23e89cdf360d", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "5d56ca0c651c7e1f749defd56a1ea7ac2b9090c83f4095fb446179b30ecd0550", + "entry_digest": "cf8e7d8a87ef598b4463103d1fa66ce1b562fe3c1bf0e93aff56ccfdccb7a49c", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Scripts/smoke.sh", + "kind": "file", + "mode": 33261, + "payload_digest": "2edf3b5ea543dcc7d6c40b720313b4a5d5a3931a9bd22b3874cdd641ac1132a0", + "entry_digest": "d6ba00e8c657b061d382405e5eb3c6876fd12aa82538f2015143d07c81daba88", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Sources/aps/Aps.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "c103edfab09948f06eb51023ba1f557de3be70cfc35a5c18e2f83feadde7f8f8", + "entry_digest": "b42ff2ad1138fbb261e2524a79aaec902d3c6be3e41a75a0b70d90340c83b1d0", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/CLIOutput.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "18ccec04502ed6fcb8aec0e684e34f5889f7aa04241964f4816b046bd97b6dd2", + "entry_digest": "5b215aa458464414befc6c49713d4aebe6b5839cce22c0c5489fddd70ada2dd3", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoKey.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "c6ac05ed87e9fb6a4ba0f287d67dc18cfe27211f1e37628d1f7a02eec6e90065", + "entry_digest": "4a73f07438c6db33b397f2ddc808134bdc4b6cc34222edf152e121d2f42c3ab6", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "b8a0472f7ce1d9e6b874a91139e4a492709a4ebdd7a86369a7ca3f17dbe475b2", + "entry_digest": "b389a1059cabd6d309dc8d44e56d9f880765955b5b58b1dd8386a7288cfc3670", + "owners": [ + "@exact:test" + ] + }, + { + "path": "specs/aps-cli", + "kind": "non_file", + "mode": 0, + "payload_digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "entry_digest": "6f7c83bad496153e7b31ed762f67bd1c75394999419522d3535142c1e5746b58", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7da38113e9e1cb54d0fd6943a4a7df9b02d6e2c2c0d50948b1a8d63ac755229e", + "entry_digest": "f637fac124c81bb1dff79c11619c192d1c8df231277aa1a54514cdc766dc262a", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "f5234d71a70bb5e836a8b83909ad8146757d4dd474e5e99c4430444604e572b8", + "entry_digest": "deb3ed737b4e929d21b6633ec912ff587273d37a3dff57fae51953f98bf2b2a7", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "f299b5b0fe35a9e1c65fc5d13b05e2cac7ac130dc86e94ab436b6818db9cb30a", + "entry_digest": "b23e62877a76ebeb4476e82c42cdde4a5e423eb62dadc9d13760104ac4e4903e", + "owners": [ + "aps-cli" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-002" + ] +} diff --git a/README.md b/README.md index ed64a17..b94b456 100644 --- a/README.md +++ b/README.md @@ -142,6 +142,29 @@ When a FileState file **exists but is undecodable** (torn write), `aps` does **n AppState itself is unchanged; this is an `aps` dogfood/CLI contract only. Repair with `aps reset ` (or delete the torn file under the state root). +### Error contract + +Domain errors always print a human line to stderr and keep stdout empty, with a sysexits-aligned exit code: + +| Code | Meaning | When | +|------|---------|------| +| 0 | success | stdout contract satisfied | +| 64 | EX_USAGE | caller-fixable input: bad key/flags, invalid value | +| 65 | EX_DATAERR | corrupt or undecodable persisted state (see Multi-process FileState semantics) | +| 69 | EX_UNAVAILABLE | `secret` on a platform without Apple Security | +| 70 | EX_SOFTWARE | internal bug | +| 73 | EX_CANTCREAT | write did not persist (unwritable state root) | + +64 means fix the invocation; 65+ means environment or data; 70 means an aps bug. Missing state files are not errors: they mean the initial value. + +With `--json` / `--jsonl`, or when `APS_ERROR_JSON=1`, stderr additionally gets one structured envelope: + +```json +{"error":{"code":"invalid_value","hint":"Run `aps keys` to see expected types per key.","message":"Invalid value 'nope' for counter (Int)"}} +``` + +`code` is stable and safe to match on: `invalid_value`, `encoding_failed`, `decoding_failed`, `persistence_failed`, `keychain_unavailable`, `corrupt_state`. + ## Tests and smoke ```bash diff --git a/Scripts/smoke.sh b/Scripts/smoke.sh index d8f1407..b6a796b 100755 --- a/Scripts/smoke.sh +++ b/Scripts/smoke.sh @@ -91,4 +91,30 @@ if "$bin" set counter nope >/dev/null 2>&1; then exit 1 fi +# Error contract: taxonomy exit codes, stdout purity, JSON envelope. +out="$("$bin" set counter nope 2>/dev/null)" && { echo "expected invalid counter to fail" >&2; exit 1; } +test $? -eq 64 || { echo "expected exit 64 for invalid value" >&2; exit 1; } +test -z "$out" || { echo "stdout must stay empty on error" >&2; exit 1; } +err="$("$bin" set counter nope --json 2>&1 >/dev/null || true)" +echo "$err" | grep -q '"code":"invalid_value"' + +# Corrupt persisted state exits 65 with a corrupt_state envelope. +echo 'garbage{{' > "$APS_HOME/note.json" +out="$("$bin" get note 2>/dev/null)" && { echo "expected corrupt note to fail" >&2; exit 1; } +test $? -eq 65 || { echo "expected exit 65 for corrupt state" >&2; exit 1; } +test -z "$out" || { echo "stdout must stay empty on corrupt state" >&2; exit 1; } +err="$("$bin" get note --json 2>&1 >/dev/null || true)" +echo "$err" | grep -q '"code":"corrupt_state"' +"$bin" reset note >/dev/null + +# Unwritable state root exits 73 on write. +BADROOT="$(mktemp "${TMPDIR:-/tmp}/aps-smoke-file.XXXXXX")" +out="$("$bin" set note x --state-dir "$BADROOT" 2>/dev/null)" && { echo "expected unwritable root to fail" >&2; exit 1; } +test $? -eq 73 || { echo "expected exit 73 for unwritable state root" >&2; exit 1; } +rm -f "$BADROOT" + +# APS_ERROR_JSON=1 opts into structured errors without --json. +err="$(APS_ERROR_JSON=1 "$bin" set flag maybe 2>&1 >/dev/null || true)" +echo "$err" | grep -q '"code":"invalid_value"' + echo "smoke ok" diff --git a/Sources/aps/Aps.swift b/Sources/aps/Aps.swift index 75d3c4a..5cca6c8 100644 --- a/Sources/aps/Aps.swift +++ b/Sources/aps/Aps.swift @@ -54,7 +54,7 @@ extension Aps { do { try StateStore.requireDecodableDiskState(for: key) } catch let error as APSError { - try reportAPSError(error) + try CLIOutput.fail(error, json: options.json) } if options.json { let payload = CLIOutput.KeyValuePayload( @@ -92,7 +92,7 @@ extension Aps { do { try store.set(key, value: value) } catch let error as APSError { - try reportAPSError(error) + try CLIOutput.fail(error, json: options.json) } if options.json { let payload = CLIOutput.KeyValuePayload( @@ -179,7 +179,7 @@ extension Aps { CLIOutput.writeLine(line) } } - try reportAPSError(error) + try CLIOutput.fail(error, json: jsonl) } } } @@ -198,7 +198,11 @@ extension Aps { boot(stateDir: options.stateDir) // dump is always JSON; --json is accepted for agent symmetry. _ = options.json - print(try StateStore().dump()) + do { + print(try StateStore().dump()) + } catch let error as APSError { + try CLIOutput.fail(error, json: true) + } } } } @@ -319,26 +323,30 @@ extension Aps { try onMainThread { boot(stateDir: options.stateDir) let store = StateStore() - if all { - store.resetAll() - if options.json { - let payload = CLIOutput.ResetPayload(reset: "all", key: nil, value: nil) - print(try CLIOutput.encodePretty(payload)) - } else { - print("reset all keys") - } - } else if let key { - store.reset(key) - if options.json { - let payload = CLIOutput.ResetPayload( - reset: "key", - key: key.rawValue, - value: try CLIOutput.typedValue(for: key, store: store) - ) - print(try CLIOutput.encodePretty(payload)) - } else { - print(store.get(key)) + do { + if all { + store.resetAll() + if options.json { + let payload = CLIOutput.ResetPayload(reset: "all", key: nil, value: nil) + print(try CLIOutput.encodePretty(payload)) + } else { + print("reset all keys") + } + } else if let key { + store.reset(key) + if options.json { + let payload = CLIOutput.ResetPayload( + reset: "key", + key: key.rawValue, + value: try CLIOutput.typedValue(for: key, store: store) + ) + print(try CLIOutput.encodePretty(payload)) + } else { + print(store.get(key)) + } } + } catch let error as APSError { + try CLIOutput.fail(error, json: options.json) } } } @@ -363,15 +371,3 @@ private func onMainThread( try body() } } - -/// Maps `APSError` for CLI exit. `corruptState` prints to stderr and uses exit 65 (`EX_DATAERR`). -private func reportAPSError(_ error: APSError) throws -> Never { - if case .corruptState = error { - let message = "Error: \(error.description)\n" - if let data = message.data(using: .utf8) { - FileHandle.standardError.write(data) - } - throw ExitCode(APSError.corruptStateExitCode) - } - throw ValidationError(error.description) -} diff --git a/Sources/aps/CLIOutput.swift b/Sources/aps/CLIOutput.swift index c0ad43f..df2e3e6 100644 --- a/Sources/aps/CLIOutput.swift +++ b/Sources/aps/CLIOutput.swift @@ -99,7 +99,7 @@ enum CLIOutput { static func encodeLine(_ value: T) throws -> String { let encoder = JSONEncoder() - encoder.outputFormatting = [.sortedKeys] + encoder.outputFormatting = [.sortedKeys, .withoutEscapingSlashes] encoder.dateEncodingStrategy = .iso8601 let data = try encoder.encode(value) guard let string = String(data: data, encoding: .utf8) else { @@ -108,6 +108,51 @@ enum CLIOutput { return string } + // MARK: - Error contract + + /// Structured error envelope emitted on stderr in machine modes. + /// Stable shape: codes are snake_case APSError cases, never removed. + struct ErrorEnvelope: Encodable { + struct Body: Encodable { + let code: String + let message: String + let hint: String + } + let error: Body + } + + /// True when structured errors should accompany the human line: machine + /// mode was requested, or APS_ERROR_JSON=1 opts in unconditionally. + static func structuredErrorsEnabled(json: Bool) -> Bool { + json || ProcessInfo.processInfo.environment["APS_ERROR_JSON"] == "1" + } + + static func writeError(_ line: String) { + if let data = (line + "\n").data(using: .utf8) { + FileHandle.standardError.write(data) + } + } + + /// Single failure path for domain errors: human line on stderr, optional + /// JSON envelope, then the taxonomy exit code. Usage/shape errors from + /// ArgumentParser itself still exit 64 on their own. + static func fail(_ error: APSError, json: Bool) throws -> Never { + writeError("Error: \(error.description)") + if structuredErrorsEnabled(json: json), + let envelope = try? encodeLine( + ErrorEnvelope( + error: .init( + code: error.code, + message: error.description, + hint: error.hint + ) + ) + ) { + writeError(envelope) + } + throw ExitCode(error.exitCode) + } + static func writeLine(_ line: String) { if let data = (line + "\n").data(using: .utf8) { FileHandle.standardOutput.write(data) diff --git a/Sources/aps/DemoKey.swift b/Sources/aps/DemoKey.swift index 6596431..629d0c3 100644 --- a/Sources/aps/DemoKey.swift +++ b/Sources/aps/DemoKey.swift @@ -112,4 +112,46 @@ public enum APSError: Error, CustomStringConvertible, Equatable { return "Corrupt or torn \(key.rawValue) state file (undecodable). Concurrent writers may have torn the file; reset the key or repair the file." } } + + /// Stable machine code for the JSON error envelope. Never removed or renamed. + public var code: String { + switch self { + case .invalidValue: return "invalid_value" + case .encodingFailed: return "encoding_failed" + case .decodingFailed: return "decoding_failed" + case .persistenceFailed: return "persistence_failed" + case .keychainUnavailable: return "keychain_unavailable" + case .corruptState: return "corrupt_state" + } + } + + /// sysexits-aligned exit code. 64 means the caller can fix the invocation; + /// 65+ means environment or data, 70 means an aps bug. + public var exitCode: Int32 { + switch self { + case .invalidValue: return 64 // EX_USAGE + case .decodingFailed, .corruptState: return APSError.corruptStateExitCode // EX_DATAERR + case .keychainUnavailable: return 69 // EX_UNAVAILABLE + case .encodingFailed: return 70 // EX_SOFTWARE + case .persistenceFailed: return 73 // EX_CANTCREAT + } + } + + /// Actionable next step for humans and agents. + public var hint: String { + switch self { + case .invalidValue: + return "Run `aps keys` to see expected types per key." + case .encodingFailed: + return "The value could not be JSON-encoded; please report this if it reproduces." + case .decodingFailed: + return "A value or file is not valid JSON for its key; check the input or the state root (--state-dir / APS_HOME)." + case .persistenceFailed: + return "Check that the state root exists and is writable (--state-dir / APS_HOME)." + case .keychainUnavailable: + return "The secret key currently requires macOS Keychain; an encrypted-file store is planned (issue #35)." + case .corruptState(let key): + return "Reset the key (`aps reset \(key.rawValue)`) or repair the file under the state root." + } + } } diff --git a/Tests/apsTests/APSTests.swift b/Tests/apsTests/APSTests.swift index 8d3a5d1..6ce9273 100644 --- a/Tests/apsTests/APSTests.swift +++ b/Tests/apsTests/APSTests.swift @@ -695,4 +695,62 @@ final class APSTests: XCTestCase { XCTAssertTrue(corrupt.description.contains("torn") || corrupt.description.contains("Corrupt")) XCTAssertEqual(APSError.corruptStateExitCode, 65) } + + func testAPSErrorContractCodesAndExitCodes() { + XCTAssertEqual(APSError.invalidValue(key: .counter, value: "x").code, "invalid_value") + XCTAssertEqual(APSError.encodingFailed.code, "encoding_failed") + XCTAssertEqual(APSError.decodingFailed.code, "decoding_failed") + XCTAssertEqual(APSError.persistenceFailed(key: .note).code, "persistence_failed") + XCTAssertEqual(APSError.keychainUnavailable.code, "keychain_unavailable") + XCTAssertEqual(APSError.corruptState(key: .note).code, "corrupt_state") + + XCTAssertEqual(APSError.invalidValue(key: .counter, value: "x").exitCode, 64) + XCTAssertEqual(APSError.decodingFailed.exitCode, 65) + XCTAssertEqual(APSError.corruptState(key: .note).exitCode, 65) + XCTAssertEqual(APSError.keychainUnavailable.exitCode, 69) + XCTAssertEqual(APSError.encodingFailed.exitCode, 70) + XCTAssertEqual(APSError.persistenceFailed(key: .note).exitCode, 73) + + for error in [APSError.invalidValue(key: .flag, value: "x"), .encodingFailed, .decodingFailed, .persistenceFailed(key: .flag), .keychainUnavailable, .corruptState(key: .profile)] as [APSError] { + XCTAssertFalse(error.hint.isEmpty, "hint required for \(error.code)") + } + } + + func testErrorEnvelopeEncodesStableShape() throws { + let envelope = CLIOutput.ErrorEnvelope( + error: .init( + code: APSError.corruptState(key: .note).code, + message: APSError.corruptState(key: .note).description, + hint: APSError.corruptState(key: .note).hint + ) + ) + let line = try CLIOutput.encodeLine(envelope) + XCTAssertTrue(line.contains(#""code":"corrupt_state""#)) + XCTAssertTrue(line.contains(#""message":"#)) + XCTAssertTrue(line.contains(#""hint":"#)) + XCTAssertTrue(line.hasPrefix(#"{"error":{"#)) + } + + func testStructuredErrorsEnabledModes() { + XCTAssertTrue(CLIOutput.structuredErrorsEnabled(json: true)) + let env = ProcessInfo.processInfo.environment["APS_ERROR_JSON"] + XCTAssertEqual(CLIOutput.structuredErrorsEnabled(json: false), env == "1") + } + + @MainActor + func testRequireDecodableDiskStateCorruptThrows() throws { + let store = StateStore() + try store.set(.note, value: "ok") + + let path = FileManager.defaultFileStatePath + let url = URL(fileURLWithPath: path).appendingPathComponent("note.json") + try "garbage{{".write(to: url, atomically: false, encoding: .utf8) + + XCTAssertThrowsError(try StateStore.requireDecodableDiskState(for: .note)) { error in + guard case .corruptState = (error as? APSError) else { + return XCTFail("expected corruptState, got \(error)") + } + XCTAssertEqual((error as? APSError)?.exitCode, 65) + } + } } diff --git a/specs/aps-cli/aps-cli.spec.md b/specs/aps-cli/aps-cli.spec.md index 107b35c..0323b11 100644 --- a/specs/aps-cli/aps-cli.spec.md +++ b/specs/aps-cli/aps-cli.spec.md @@ -51,14 +51,18 @@ agents can get, set, watch, dump, list, and reset typed application state. | `valueType` | Human value type (`Int` / `String` / `Bool` / `ProfileDocument`). | | `helpSummary` | Tab-separated key/type/storage columns for `keys`. | | `detail` | One-line description for `keys`. | -| `description` | Actionable error text for humans and ValidationError bridging. | +| `description` | Actionable error text for humans. | +| `code` | Stable machine error code for the JSON envelope. | +| `exitCode` | sysexits-aligned process exit code. | +| `hint` | Actionable next step in the error envelope. | ## Invariants 1. The CLI entry point runs on the real main thread so AppState `notifyChange()` assertions hold on Linux and macOS. 2. stdout for `get` / `set` / `watch` / `reset ` is only the value line(s); - help and errors use ArgumentParser defaults. + stdout stays empty on error; help uses ArgumentParser defaults and domain + errors use the Error Cases contract (human line plus optional JSON envelope). 3. `State` keys are process-local; a new process must not be expected to retain `counter` or `message`. 4. `watch` must flush each printed value immediately when stdout is not a TTY. @@ -92,12 +96,29 @@ Then the watcher prints `changed` within one poll interval. ## Error Cases -- Unknown `DemoKey` token: ArgumentParser rejects before `run()`. -- Non-integer `counter` value: `APSError.invalidValue` -> ValidationError. -- Non-boolean `flag` value: `APSError.invalidValue` -> ValidationError. -- `reset` with neither a key nor `--all`: ValidationError. -- `reset` with both a key and `--all`: ValidationError. -- Failed `note` disk persistence: `APSError.persistenceFailed` -> ValidationError. +Domain errors fail through a single contract (`CLIOutput.fail`): a human line +on stderr, an optional JSON envelope, and a taxonomy exit code. + +Exit codes (sysexits-aligned): + +| Code | Meaning | aps mapping | +|------|---------|-------------| +| 0 | success | stdout contract satisfied | +| 64 | EX_USAGE | caller-fixable: bad key/flags, `invalidValue`, reset arg conflicts | +| 65 | EX_DATAERR | corrupt persisted state (`corruptState`) or undecodable data (`decodingFailed`) | +| 69 | EX_UNAVAILABLE | `keychainUnavailable` on platforms without Apple Security | +| 70 | EX_SOFTWARE | internal bug: `encodingFailed` | +| 73 | EX_CANTCREAT | write did not persist: `persistenceFailed` | +| 66 | EX_NOINPUT | reserved for future explicit-file operations | + +- Missing state files are not errors: they mean the initial value. +- A disk-backed file that exists but does not decode fails loudly (65) via + `StateStore.requireDecodableDiskState` before `get` / `watch` output. +- With `--json` / `--jsonl`, or when `APS_ERROR_JSON=1`, stderr additionally + gets one `{"error":{"code","message","hint"}}` envelope; stdout stays empty + on error in every mode. +- Unknown `DemoKey` token and flag shape errors: ArgumentParser rejects + before `run()` with its own 64. ## Dependencies @@ -128,3 +149,4 @@ Then the watcher prints `changed` within one poll interval. | 2026-07-18 | CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38: Loud torn FileState reads and document multi-writer semantics for issue 38 | | 2026-07-18 | CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45: Add PowerShell smoke script and windows-latest smoke CI for issue 45 | | 2026-07-18 | CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46: Prove swift test on windows-latest and portable APS_HOME env tests for issue 46 | +| 2026-07-18 | CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on: Error contract: exit-code taxonomy and JSON error envelope (issue 31, rebuilt on corruptState main) | diff --git a/specs/aps-cli/requirements.md b/specs/aps-cli/requirements.md index b637664..46604e8 100644 --- a/specs/aps-cli/requirements.md +++ b/specs/aps-cli/requirements.md @@ -17,12 +17,14 @@ Acceptance Criteria ### REQ-aps-cli-002 -`set` SHALL reject values that cannot parse to the key's type and exit non-zero via `APSError.invalidValue`. +`set` SHALL reject values that cannot parse to the key's type and exit non-zero via `APSError.invalidValue`. All domain errors SHALL follow the error contract: human line on stderr, taxonomy exit code, and a JSON envelope when `--json` / `--jsonl` or `APS_ERROR_JSON=1`. Acceptance Criteria - Non-integer `counter` values fail with an invalid-value message. - Non-boolean `flag` values fail with an invalid-value message. - `APSError.description` names the key and expected type. +- Exit codes: 64 usage, 65 corrupt or undecodable persisted state, 69 unavailable, 70 internal, 73 write did not persist. +- The envelope shape is `{"error":{"code","message","hint"}}` with stable snake_case codes (`invalid_value`, `encoding_failed`, `decoding_failed`, `persistence_failed`, `keychain_unavailable`, `corrupt_state`); stdout stays empty on error. ### REQ-aps-cli-003 From 5e6433c3943e1f48d23d23d7517cdd326da5d2bd Mon Sep 17 00:00:00 2001 From: 0xLeif Date: Sat, 18 Jul 2026 18:18:40 -0600 Subject: [PATCH 2/3] Recreate change as CHG-0021 and rebind evidence after base move Main took CHG-0018 (Windows audit), CHG-0019 (PowerShell smoke), and CHG-0020 (windows tests) while this branch was in flight; the error contract change is recreated as CHG-0021 and all shared accepted changes are rebound (audited reopens, actor 0xLeif). --- .../approvals.json | 126 +++++++ .../state.json | 2 +- .../verification-attempts.json | 15 + .../verification.json | 12 +- .../approvals.json | 345 ++++++++++++++++++ .../state.json | 2 +- .../verification-attempts.json | 24 ++ .../verification.json | 36 +- .../approvals.json | 66 ++++ .../state.json | 2 +- .../verification-attempts.json | 15 + .../verification.json | 12 +- .../approvals.json | 239 ++++++++++++ .../state.json | 2 +- .../verification-attempts.json | 18 + .../verification.json | 36 +- .../approvals.json | 250 +++++++++++++ .../state.json | 2 +- .../verification-attempts.json | 19 + .../verification.json | 40 +- .../approvals.json | 219 +++++++++++ .../state.json | 2 +- .../verification-attempts.json | 18 + .../verification.json | 36 +- .../approvals.json | 76 ++++ .../state.json | 2 +- .../verification-attempts.json | 15 + .../verification.json | 12 +- .../approvals.json | 199 ++++++++++ .../state.json | 2 +- .../verification-attempts.json | 18 + .../verification.json | 24 +- .../approvals.json | 221 +++++++++++ .../state.json | 2 +- .../verification-attempts.json | 20 + .../verification.json | 36 +- .../approvals.json | 86 +++++ .../state.json | 2 +- .../verification-attempts.json | 15 + .../verification.json | 12 +- .../approvals.json | 86 +++++ .../state.json | 2 +- .../verification-attempts.json | 15 + .../verification.json | 16 +- .../approvals.json | 148 ++++++++ .../state.json | 2 +- .../verification-attempts.json | 17 + .../verification.json | 20 +- .../approvals.json | 151 +++++++- .../state.json | 2 +- .../verification-attempts.json | 17 + .../verification.json | 24 +- .../approvals.json | 8 +- .../change.md | 2 +- .../state.json | 6 +- .../verification-attempts.json | 8 +- .../verification.json | 34 +- specs/aps-cli/aps-cli.spec.md | 3 +- 58 files changed, 2639 insertions(+), 202 deletions(-) diff --git a/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/approvals.json b/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/approvals.json index 9848f7f..f77834e 100644 --- a/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/approvals.json +++ b/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/approvals.json @@ -97,6 +97,13 @@ "timestamp": 1784418378, "digest": "91ea967a37363ccda4c54550c0a266210f7f1cbcafcbc9d1cec067d82b39dfdc", "note": "Re-accept after issue 46 Windows swift test." + }, + { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419762, + "digest": "fadc9465f3191172f40ce73fe7364ffa27f4f3e618e2e0a0a2a876726f4072a4", + "note": null } ], "reopenings": [ @@ -1408,6 +1415,125 @@ }, "stale_acceptance_input_digest": "b7871363149444d9f55154fd55ae1798f9277ddbe742f5c800c0c1283fd8315d", "current_acceptance_input_digest": "0b33390f2dd715ddc7a4cd6746582b38cbd6a934bd5cb1a536681eacc342cb07" + }, + { + "schema_version": 1, + "change_id": "CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal", + "actor": "0xLeif", + "reason": "Rebase of the error contract branch onto current main changed delivery inputs; rebinding evidence", + "timestamp": 1784419746, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784418378, + "digest": "91ea967a37363ccda4c54550c0a266210f7f1cbcafcbc9d1cec067d82b39dfdc", + "note": "Re-accept after issue 46 Windows swift test." + }, + "prior_verification": { + "timestamp": 1784418370, + "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "contract_digest": "641111b8f92bdfff2ba1f3bcda40f5299d9dc8a65449cd2a4a49333fac21100f", + "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", + "acceptance_input_digest": "0b33390f2dd715ddc7a4cd6746582b38cbd6a934bd5cb1a536681eacc342cb07", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/.gitignore", + "kind": "file", + "mode": 33188, + "payload_digest": "a3129d6f93250ade8dbacfc73bc7eeae0cc47c2f7032142ca47cb4f1ffb2483e", + "entry_digest": "9badbf40b83d05f58bafda0fc2cafccfe726e4da7e6e67ef513e822989e13f04", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "ddf1f4cbb0fd983c8356a34b9b4f4ef77ca22764ac2ec36b223431402c043328", + "entry_digest": "7fd95f31d540d3d3e7128fbd03cb3207a3da428c98a81515a76b7dfc9b34d582", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/config.toml", + "kind": "file", + "mode": 33188, + "payload_digest": "54a83f6a4a252649bac390d2e936aa0815711fba86b6bfc8ea8fff2fffdfd29b", + "entry_digest": "e60f979233a7db75ce63f4ef42d6f1f7676ad1655a438b9baf78558aba60ec3e", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/registry.toml", + "kind": "file", + "mode": 33188, + "payload_digest": "c423be1a5cf87318f85dc252fe0acd1c1486c5224ddc2d8e19bea1ac9c69c820", + "entry_digest": "7e1f068900ced849b8d1028ca40165fbdc5280ae7f53452f0e57e2710d895848", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/sdd.json", + "kind": "file", + "mode": 33188, + "payload_digest": "2d5fb3058b1ee4ce584c3cda9410c193c4893e272ed459205e58bfde06afc7b0", + "entry_digest": "8c6b11fc5787eb04e7ee651eb15fbf98fc3ea22db37e65423e3d75f99c09df19", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/version", + "kind": "file", + "mode": 33188, + "payload_digest": "f9893302cd3158f3b5aea394dcd2a91574869e9e6ff69e9235b10a3bf8c983fb", + "entry_digest": "f980ba79f6c953bed30303c6b87d8e868ad6a7f4114bf0e745c9099255e665b0", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "GOAL.md", + "kind": "file", + "mode": 33188, + "payload_digest": "20146bfa50165791ec6059f6245716170c43b23106e5123ec590a306a590a966", + "entry_digest": "68fbffe2a6cce1f402c5dcebbd733d2b1f3d5e3d259a0ee91dfc23bbc034fc56", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", + "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "owners": [ + "@exact:delivery" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [] + }, + "stale_acceptance_input_digest": "0b33390f2dd715ddc7a4cd6746582b38cbd6a934bd5cb1a536681eacc342cb07", + "current_acceptance_input_digest": "9431c62c0f2aebc5b04026bce0b883448ce3ec9907ac5a75bbe2094e65844b6a" } ] } diff --git a/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/state.json b/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/state.json index d105ee4..2eaa4f6 100644 --- a/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/state.json +++ b/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "c02a551afc126ca5394c62baa557ceaf30fd5bc5", "created_at": 1784398063, - "updated_at": 1784418378, + "updated_at": 1784419762, "affected_specs": [], "affected_paths": [ ".specsync/", diff --git a/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/verification-attempts.json b/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/verification-attempts.json index 7a16ef6..cb35e1b 100644 --- a/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/verification-attempts.json +++ b/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/verification-attempts.json @@ -180,6 +180,21 @@ } ], "requirement_ids": [] + }, + { + "timestamp": 1784419755, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "641111b8f92bdfff2ba1f3bcda40f5299d9dc8a65449cd2a4a49333fac21100f", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [] } ] } diff --git a/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/verification.json b/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/verification.json index bc662ca..359efdc 100644 --- a/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/verification.json +++ b/.specsync/changes/CHG-0003-archive-merged-v1-specsync-change-and-publish-aps-v1-1-goal/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784418370, - "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "timestamp": 1784419755, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", "contract_digest": "641111b8f92bdfff2ba1f3bcda40f5299d9dc8a65449cd2a4a49333fac21100f", - "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", - "acceptance_input_digest": "0b33390f2dd715ddc7a4cd6746582b38cbd6a934bd5cb1a536681eacc342cb07", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "9431c62c0f2aebc5b04026bce0b883448ce3ec9907ac5a75bbe2094e65844b6a", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -81,8 +81,8 @@ "path": "README.md", "kind": "file", "mode": 33188, - "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", - "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", "owners": [ "@exact:delivery" ] diff --git a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/approvals.json b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/approvals.json index 30f0c3b..408e657 100644 --- a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/approvals.json +++ b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/approvals.json @@ -167,6 +167,13 @@ "timestamp": 1784418401, "digest": "4d9c8964b3bbcb762b77bf5b0977f5409be7f9408a871d60f103ea8f8a7b0e68", "note": "Re-accept after issue 46 Windows swift test." + }, + { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419787, + "digest": "05505e1602efcfb625965b2f738e95890148ccdffdf9fcb0d357241e70b56c45", + "note": null } ], "reopenings": [ @@ -5953,6 +5960,344 @@ }, "stale_acceptance_input_digest": "f6c724b1ef148f6fdbcf95debef6faa782f98f375c7fcb39b7c842f42e978133", "current_acceptance_input_digest": "327e31058a0c1bc8562431b4c7eb22d876d9c233e0ec00d0050c2d4e0ced7894" + }, + { + "schema_version": 1, + "change_id": "CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate", + "actor": "0xLeif", + "reason": "Rebase of the error contract branch onto current main changed delivery inputs; rebinding evidence", + "timestamp": 1784419768, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784418401, + "digest": "4d9c8964b3bbcb762b77bf5b0977f5409be7f9408a871d60f103ea8f8a7b0e68", + "note": "Re-accept after issue 46 Windows swift test." + }, + "prior_verification": { + "timestamp": 1784418392, + "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "contract_digest": "73c000607b3050c54981b4c29532280dd08bf00b7a15c8ec1801e045fa5496c9", + "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", + "acceptance_input_digest": "327e31058a0c1bc8562431b4c7eb22d876d9c233e0ec00d0050c2d4e0ced7894", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".github/workflows/ci.yml", + "kind": "file", + "mode": 33188, + "payload_digest": "a902f7c6785bb487278bfb39c95d593a45a8695f5245a9e5b9909d810410e6a8", + "entry_digest": "00a1986a1f0e06e1cbd4d3c3e933b240c5cb457a554e86515ba3db8241f7a263", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".github/workflows/linux-smoke.yml", + "kind": "file", + "mode": 33188, + "payload_digest": "7a7f76bbc068b14e9945a3add8c1f1d812362d810db6af6c4c9b60959d54f5c3", + "entry_digest": "db8fe6d1745786e008c9b0f6d2631cbf6a9e094763f305cfe07bfbc4444b0535", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".github/workflows/trust.yml", + "kind": "file", + "mode": 33188, + "payload_digest": "e165929994150d856d05ad048d8e1032e09df989c78ea3f1390d4e885b50af56", + "entry_digest": "e405b6225fdb502cfae9b22a9c14e21be8d1715bbaf8d56cdfd178bb8e173cb9", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".github/workflows/windows-smoke.yml", + "kind": "file", + "mode": 33188, + "payload_digest": "42c3f4aff3a36ed9e478aae454a3029198fa28a1abd671147f5e18e7bd69f9aa", + "entry_digest": "05e1c4951acb0c353f8b41e406511ede182d070133974e3a2789d5cd8f87908a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/.gitignore", + "kind": "file", + "mode": 33188, + "payload_digest": "a3129d6f93250ade8dbacfc73bc7eeae0cc47c2f7032142ca47cb4f1ffb2483e", + "entry_digest": "9badbf40b83d05f58bafda0fc2cafccfe726e4da7e6e67ef513e822989e13f04", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "3b200adf8860f60a6ebbb7bd22278d65d36c9fb8d9dd7529cf7eba7635f9bb59", + "entry_digest": "62a4ea5935aca0821d1aeeb2b5113dda9561feaf0385be503f4cef23bbf99c7b", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/config.toml", + "kind": "file", + "mode": 33188, + "payload_digest": "54a83f6a4a252649bac390d2e936aa0815711fba86b6bfc8ea8fff2fffdfd29b", + "entry_digest": "e60f979233a7db75ce63f4ef42d6f1f7676ad1655a438b9baf78558aba60ec3e", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/registry.toml", + "kind": "file", + "mode": 33188, + "payload_digest": "c423be1a5cf87318f85dc252fe0acd1c1486c5224ddc2d8e19bea1ac9c69c820", + "entry_digest": "7e1f068900ced849b8d1028ca40165fbdc5280ae7f53452f0e57e2710d895848", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/sdd.json", + "kind": "file", + "mode": 33188, + "payload_digest": "2d5fb3058b1ee4ce584c3cda9410c193c4893e272ed459205e58bfde06afc7b0", + "entry_digest": "8c6b11fc5787eb04e7ee651eb15fbf98fc3ea22db37e65423e3d75f99c09df19", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/version", + "kind": "file", + "mode": 33188, + "payload_digest": "f9893302cd3158f3b5aea394dcd2a91574869e9e6ff69e9235b10a3bf8c983fb", + "entry_digest": "f980ba79f6c953bed30303c6b87d8e868ad6a7f4114bf0e745c9099255e665b0", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Scripts/smoke.ps1", + "kind": "file", + "mode": 33188, + "payload_digest": "d476db9d571042578d8de33907014ecfa669f05054828886d0ceeb5f2e27c351", + "entry_digest": "164c2694507ba3d0e8133f86124b68ea64295cc1c41b5f6d11361333eb1c661b", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Scripts/smoke.sh", + "kind": "file", + "mode": 33261, + "payload_digest": "e56bf09bae732fa3557d50b6c9b811bae7d2010dc74a01cdccd32bcd793c7a85", + "entry_digest": "be5fbb70152c18606ae7f26546919ab5cd61aa0b79de1fecb72d2cab092c2688", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Sources/aps/Aps.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "ca57f3cfbdd458c348c5582b972eece251965bb848f4cafc1f2909979cb4d990", + "entry_digest": "387a0d56054075e69e2e53c4f3b80819749eca01028dcb4a47456fdb5a40c2cf", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/CLIOutput.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "bbeed534971827a489453afb1d455b9d6a77d2460802392f918d68fa2d9dc4c8", + "entry_digest": "315734a8274ef0b3bee07347aa0aaef11a2c43983adeee440251f315acbef46c", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoKey.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "e7c9c1b05bd151426b51e99443b6f63e94fc728ff79384169c3dd3508ba96e92", + "entry_digest": "66317da48cf650e872b3715a89e092f1ad939c7865c02f298b81ea9ed869de56", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoState.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "62cd24efb557b5cef77e7aae804f933f4b53caf47195968764f05cc5a0a0d9b8", + "entry_digest": "fb710f893d343d67c1fd7a5a5cc50c5c49caf0aa182e5af17ee7c97ff98f8122", + "owners": [ + "state-store" + ] + }, + { + "path": "Sources/aps/Dependencies.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "14fced21000b935ed106a6a039bf574ed6cb9d8ba1598dc82001fbcd418a57a4", + "entry_digest": "0218077403628c671d6e778f6465e46e958a2c8f589d707f42a775f7da5cc799", + "owners": [ + "state-store" + ] + }, + { + "path": "Sources/aps/StateStore.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "5abe29abecab6e6f5c110fe30391ee7c27dc119b727a40153b239270dfa32363", + "entry_digest": "5e7b6967feb8e7b23ab7a4025a44920cd49239567ee59acfb71af64fcb985eb3", + "owners": [ + "state-store" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", + "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "owners": [ + "@exact:test" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", + "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", + "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/state-store/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "12d848cab584c8a64f7da8bee796b581ec3b1b5efc72448299330dd493f39aa7", + "entry_digest": "76b734c278c05e3e74ff8f41dbb07aac3dcc7b1fbda64adcf32691e31365317c", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "6d94234b7a6b7d4dab2b432a46d1d59449941bd031b7e6e841a13d7830305ef1", + "entry_digest": "42a35cb8eed79a217a0016bc9ab3d9a5cc41b4c20f6f950e66edc40c21ac6d72", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/state-store.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "18ab2c5e1aaf9bf6c7e29195bcaaa987d5668aa79b0b17fd090fdfc3b51c4df8", + "entry_digest": "ff0141bc011bcf041f5ff3ecf0c40f910e73cab965c634708a2f21cbff5afce1", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "0f02b782887467b358568bf22c2d68f39c40a00d56143bd6c64abdf8198cf433", + "entry_digest": "8f828f3625d4f24c3c71852bd28f76aac97cd31ace2a18d1a901a3d34642de8d", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "63705355034895d0dfab654892140beecd317afb08530917c8cf4b308824ab63", + "entry_digest": "88818028e56f72fbfd2bdf24012faf448fc049911bf77a2ecb1f32ba1c3e6389", + "owners": [ + "state-store" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-001", + "REQ-aps-cli-010", + "REQ-aps-cli-011", + "REQ-aps-cli-012", + "REQ-aps-cli-013", + "REQ-state-store-001", + "REQ-state-store-010", + "REQ-state-store-011" + ] + }, + "stale_acceptance_input_digest": "327e31058a0c1bc8562431b4c7eb22d876d9c233e0ec00d0050c2d4e0ced7894", + "current_acceptance_input_digest": "d324404d04426ec1b4dd71ff943c413c8128300cda5a0b15951eab236b12f7df" } ] } diff --git a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/state.json b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/state.json index 0f57f08..1298d8e 100644 --- a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/state.json +++ b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "6f18ccb3015b4fc59021e690fefbf5947ade5c73", "created_at": 1784399179, - "updated_at": 1784418401, + "updated_at": 1784419787, "affected_specs": [ "aps-cli", "state-store" diff --git a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification-attempts.json b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification-attempts.json index 55b2d88..cf850dd 100644 --- a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification-attempts.json +++ b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification-attempts.json @@ -528,6 +528,30 @@ "REQ-state-store-010", "REQ-state-store-011" ] + }, + { + "timestamp": 1784419778, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "73c000607b3050c54981b4c29532280dd08bf00b7a15c8ec1801e045fa5496c9", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-001", + "REQ-aps-cli-010", + "REQ-aps-cli-011", + "REQ-aps-cli-012", + "REQ-aps-cli-013", + "REQ-state-store-001", + "REQ-state-store-010", + "REQ-state-store-011" + ] } ] } diff --git a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification.json b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification.json index 1757c1f..37d1c9d 100644 --- a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification.json +++ b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784418392, - "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "timestamp": 1784419778, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", "contract_digest": "73c000607b3050c54981b4c29532280dd08bf00b7a15c8ec1801e045fa5496c9", - "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", - "acceptance_input_digest": "327e31058a0c1bc8562431b4c7eb22d876d9c233e0ec00d0050c2d4e0ced7894", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "d324404d04426ec1b4dd71ff943c413c8128300cda5a0b15951eab236b12f7df", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -121,8 +121,8 @@ "path": "Scripts/smoke.sh", "kind": "file", "mode": 33261, - "payload_digest": "e56bf09bae732fa3557d50b6c9b811bae7d2010dc74a01cdccd32bcd793c7a85", - "entry_digest": "be5fbb70152c18606ae7f26546919ab5cd61aa0b79de1fecb72d2cab092c2688", + "payload_digest": "2edf3b5ea543dcc7d6c40b720313b4a5d5a3931a9bd22b3874cdd641ac1132a0", + "entry_digest": "d6ba00e8c657b061d382405e5eb3c6876fd12aa82538f2015143d07c81daba88", "owners": [ "@exact:delivery" ] @@ -131,8 +131,8 @@ "path": "Sources/aps/Aps.swift", "kind": "file", "mode": 33188, - "payload_digest": "ca57f3cfbdd458c348c5582b972eece251965bb848f4cafc1f2909979cb4d990", - "entry_digest": "387a0d56054075e69e2e53c4f3b80819749eca01028dcb4a47456fdb5a40c2cf", + "payload_digest": "c103edfab09948f06eb51023ba1f557de3be70cfc35a5c18e2f83feadde7f8f8", + "entry_digest": "b42ff2ad1138fbb261e2524a79aaec902d3c6be3e41a75a0b70d90340c83b1d0", "owners": [ "aps-cli" ] @@ -141,8 +141,8 @@ "path": "Sources/aps/CLIOutput.swift", "kind": "file", "mode": 33188, - "payload_digest": "bbeed534971827a489453afb1d455b9d6a77d2460802392f918d68fa2d9dc4c8", - "entry_digest": "315734a8274ef0b3bee07347aa0aaef11a2c43983adeee440251f315acbef46c", + "payload_digest": "18ccec04502ed6fcb8aec0e684e34f5889f7aa04241964f4816b046bd97b6dd2", + "entry_digest": "5b215aa458464414befc6c49713d4aebe6b5839cce22c0c5489fddd70ada2dd3", "owners": [ "aps-cli" ] @@ -151,8 +151,8 @@ "path": "Sources/aps/DemoKey.swift", "kind": "file", "mode": 33188, - "payload_digest": "e7c9c1b05bd151426b51e99443b6f63e94fc728ff79384169c3dd3508ba96e92", - "entry_digest": "66317da48cf650e872b3715a89e092f1ad939c7865c02f298b81ea9ed869de56", + "payload_digest": "c6ac05ed87e9fb6a4ba0f287d67dc18cfe27211f1e37628d1f7a02eec6e90065", + "entry_digest": "4a73f07438c6db33b397f2ddc808134bdc4b6cc34222edf152e121d2f42c3ab6", "owners": [ "aps-cli" ] @@ -191,8 +191,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", - "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", "owners": [ "@exact:test" ] @@ -201,8 +201,8 @@ "path": "specs/aps-cli/aps-cli.spec.md", "kind": "file", "mode": 33188, - "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", - "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", "owners": [ "aps-cli" ] @@ -221,8 +221,8 @@ "path": "specs/aps-cli/requirements.md", "kind": "file", "mode": 33188, - "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", - "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", "owners": [ "aps-cli" ] diff --git a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/approvals.json b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/approvals.json index aacf462..cfb8986 100644 --- a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/approvals.json +++ b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/approvals.json @@ -76,6 +76,13 @@ "timestamp": 1784418419, "digest": "16548bdcc912e537e20d900fff488a4b5ac2b070eb88316bbd480cf99fc0e067", "note": "Re-accept after issue 46 Windows swift test." + }, + { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419817, + "digest": "a7d0b2bedd0a5cc80d5c535ff1a7d2c1549dd9d6ca2b0d3d4c971569f6c6e282", + "note": null } ], "reopenings": [ @@ -609,6 +616,65 @@ }, "stale_acceptance_input_digest": "d6185a6b13d89319cb5a00f25abae38e8963aac782f81ce4693b2dd803291f30", "current_acceptance_input_digest": "942c27d374fcd61e124b5fca51eddd95165ddb2a195ea84a2f45d8e2ebfab28b" + }, + { + "schema_version": 1, + "change_id": "CHG-0007-hermetic-userdefaults-in-tests", + "actor": "0xLeif", + "reason": "Rebase of the error contract branch onto current main changed delivery inputs; rebinding evidence", + "timestamp": 1784419794, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784418419, + "digest": "16548bdcc912e537e20d900fff488a4b5ac2b070eb88316bbd480cf99fc0e067", + "note": "Re-accept after issue 46 Windows swift test." + }, + "prior_verification": { + "timestamp": 1784418412, + "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "contract_digest": "0c72a7f1bfaa780b21b7b2ac7904ab5352e8186a8293caf6f91354fddff40610", + "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", + "acceptance_input_digest": "942c27d374fcd61e124b5fca51eddd95165ddb2a195ea84a2f45d8e2ebfab28b", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "892737ad12d482e123f7e036d8af1cb0fd3aabb465f8c9ac561ed79af04a33bc", + "entry_digest": "c84485e5707378b3f73e17a2c56611d32c600a7ab1da4b428e69d3c0c5eea9a7", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", + "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "owners": [ + "@exact:test" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [] + }, + "stale_acceptance_input_digest": "942c27d374fcd61e124b5fca51eddd95165ddb2a195ea84a2f45d8e2ebfab28b", + "current_acceptance_input_digest": "2c4b73f9867fc043c1bb4d4f2b2c1f8c0fac44cc9199a5f0a5353f94864f8c50" } ] } diff --git a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/state.json b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/state.json index 3ef3811..2f13d65 100644 --- a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/state.json +++ b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "50eddbbb5c6bf829995523f0a9cd8f75f82f7cc6", "created_at": 1784403987, - "updated_at": 1784418419, + "updated_at": 1784419817, "affected_specs": [], "affected_paths": [ "Tests/apsTests/APSTests.swift", diff --git a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification-attempts.json b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification-attempts.json index 44b37c8..6b24be9 100644 --- a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification-attempts.json +++ b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification-attempts.json @@ -150,6 +150,21 @@ } ], "requirement_ids": [] + }, + { + "timestamp": 1784419804, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "0c72a7f1bfaa780b21b7b2ac7904ab5352e8186a8293caf6f91354fddff40610", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [] } ] } diff --git a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification.json b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification.json index b14ce51..f81c3ee 100644 --- a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification.json +++ b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784418412, - "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "timestamp": 1784419804, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", "contract_digest": "0c72a7f1bfaa780b21b7b2ac7904ab5352e8186a8293caf6f91354fddff40610", - "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", - "acceptance_input_digest": "942c27d374fcd61e124b5fca51eddd95165ddb2a195ea84a2f45d8e2ebfab28b", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "2c4b73f9867fc043c1bb4d4f2b2c1f8c0fac44cc9199a5f0a5353f94864f8c50", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -21,8 +21,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", - "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", "owners": [ "@exact:test" ] diff --git a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/approvals.json b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/approvals.json index bfd76f5..3a9e9f9 100644 --- a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/approvals.json +++ b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/approvals.json @@ -111,6 +111,13 @@ "timestamp": 1784418437, "digest": "b74ca2f488f3c57f09de851dc34d250254d289fd7c3f52b7df1cbc54d69cef6b", "note": "Re-accept after issue 46 Windows swift test." + }, + { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419846, + "digest": "1abc6ae0af8ee0a88c69ae5b625aecbcd74d3a0d9bea7b86cb6405b191c09712", + "note": null } ], "reopenings": [ @@ -3129,6 +3136,238 @@ }, "stale_acceptance_input_digest": "9025f956d7f19bbd8ee3d3cd96534bda418dd9e775f8fd246c49e3ea2446e2d2", "current_acceptance_input_digest": "566af40d47f4997a63a92b5d850405378971c835b789c31b3b46355d497b5544" + }, + { + "schema_version": 1, + "change_id": "CHG-0011-dogfood-observeddependency-demostats-for-issue-18", + "actor": "0xLeif", + "reason": "Rebase of the error contract branch onto current main changed delivery inputs; rebinding evidence", + "timestamp": 1784419826, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784418437, + "digest": "b74ca2f488f3c57f09de851dc34d250254d289fd7c3f52b7df1cbc54d69cef6b", + "note": "Re-accept after issue 46 Windows swift test." + }, + "prior_verification": { + "timestamp": 1784418429, + "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "contract_digest": "1defd9f7ba999c7d4156cd0b80b236b4a173d5ba0985832e9f89b8b2ed5155ca", + "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", + "acceptance_input_digest": "566af40d47f4997a63a92b5d850405378971c835b789c31b3b46355d497b5544", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "7379aee61297176f794273cd89e1456ff8cb7fa65acddd80bf6319aef651c0f5", + "entry_digest": "f10df0f2651b9a2bd8f53e246887e85705bf80dcd3879d88881867bff72e316a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", + "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Scripts/smoke.sh", + "kind": "file", + "mode": 33261, + "payload_digest": "e56bf09bae732fa3557d50b6c9b811bae7d2010dc74a01cdccd32bcd793c7a85", + "entry_digest": "be5fbb70152c18606ae7f26546919ab5cd61aa0b79de1fecb72d2cab092c2688", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Sources/aps/Aps.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "ca57f3cfbdd458c348c5582b972eece251965bb848f4cafc1f2909979cb4d990", + "entry_digest": "387a0d56054075e69e2e53c4f3b80819749eca01028dcb4a47456fdb5a40c2cf", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/CLIOutput.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "bbeed534971827a489453afb1d455b9d6a77d2460802392f918d68fa2d9dc4c8", + "entry_digest": "315734a8274ef0b3bee07347aa0aaef11a2c43983adeee440251f315acbef46c", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoState.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "62cd24efb557b5cef77e7aae804f933f4b53caf47195968764f05cc5a0a0d9b8", + "entry_digest": "fb710f893d343d67c1fd7a5a5cc50c5c49caf0aa182e5af17ee7c97ff98f8122", + "owners": [ + "state-store" + ] + }, + { + "path": "Sources/aps/Dependencies.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "14fced21000b935ed106a6a039bf574ed6cb9d8ba1598dc82001fbcd418a57a4", + "entry_digest": "0218077403628c671d6e778f6465e46e958a2c8f589d707f42a775f7da5cc799", + "owners": [ + "state-store" + ] + }, + { + "path": "Sources/aps/StateStore.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "5abe29abecab6e6f5c110fe30391ee7c27dc119b727a40153b239270dfa32363", + "entry_digest": "5e7b6967feb8e7b23ab7a4025a44920cd49239567ee59acfb71af64fcb985eb3", + "owners": [ + "state-store" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", + "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "owners": [ + "@exact:test" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", + "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", + "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/state-store/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "12d848cab584c8a64f7da8bee796b581ec3b1b5efc72448299330dd493f39aa7", + "entry_digest": "76b734c278c05e3e74ff8f41dbb07aac3dcc7b1fbda64adcf32691e31365317c", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "6d94234b7a6b7d4dab2b432a46d1d59449941bd031b7e6e841a13d7830305ef1", + "entry_digest": "42a35cb8eed79a217a0016bc9ab3d9a5cc41b4c20f6f950e66edc40c21ac6d72", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/state-store.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "18ab2c5e1aaf9bf6c7e29195bcaaa987d5668aa79b0b17fd090fdfc3b51c4df8", + "entry_digest": "ff0141bc011bcf041f5ff3ecf0c40f910e73cab965c634708a2f21cbff5afce1", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "0f02b782887467b358568bf22c2d68f39c40a00d56143bd6c64abdf8198cf433", + "entry_digest": "8f828f3625d4f24c3c71852bd28f76aac97cd31ace2a18d1a901a3d34642de8d", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "63705355034895d0dfab654892140beecd317afb08530917c8cf4b308824ab63", + "entry_digest": "88818028e56f72fbfd2bdf24012faf448fc049911bf77a2ecb1f32ba1c3e6389", + "owners": [ + "state-store" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-014", + "REQ-state-store-012" + ] + }, + "stale_acceptance_input_digest": "566af40d47f4997a63a92b5d850405378971c835b789c31b3b46355d497b5544", + "current_acceptance_input_digest": "082092c40929e1e206902b7668aef91ead9f4f64ff1e2c11f07459db5772f1d6" } ] } diff --git a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/state.json b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/state.json index f7afc2f..71e0eb7 100644 --- a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/state.json +++ b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "4daccc6061dafcbcb6a9639cf7f2087b7b1e783d", "created_at": 1784406105, - "updated_at": 1784418437, + "updated_at": 1784419846, "affected_specs": [ "aps-cli", "state-store" diff --git a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification-attempts.json b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification-attempts.json index f182611..6ed87b8 100644 --- a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification-attempts.json +++ b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification-attempts.json @@ -288,6 +288,24 @@ "REQ-aps-cli-014", "REQ-state-store-012" ] + }, + { + "timestamp": 1784419836, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "1defd9f7ba999c7d4156cd0b80b236b4a173d5ba0985832e9f89b8b2ed5155ca", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-014", + "REQ-state-store-012" + ] } ] } diff --git a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification.json b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification.json index aa3a36b..4bfa4d6 100644 --- a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification.json +++ b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784418429, - "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "timestamp": 1784419836, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", "contract_digest": "1defd9f7ba999c7d4156cd0b80b236b4a173d5ba0985832e9f89b8b2ed5155ca", - "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", - "acceptance_input_digest": "566af40d47f4997a63a92b5d850405378971c835b789c31b3b46355d497b5544", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "082092c40929e1e206902b7668aef91ead9f4f64ff1e2c11f07459db5772f1d6", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -21,8 +21,8 @@ "path": "README.md", "kind": "file", "mode": 33188, - "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", - "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", "owners": [ "@exact:delivery" ] @@ -31,8 +31,8 @@ "path": "Scripts/smoke.sh", "kind": "file", "mode": 33261, - "payload_digest": "e56bf09bae732fa3557d50b6c9b811bae7d2010dc74a01cdccd32bcd793c7a85", - "entry_digest": "be5fbb70152c18606ae7f26546919ab5cd61aa0b79de1fecb72d2cab092c2688", + "payload_digest": "2edf3b5ea543dcc7d6c40b720313b4a5d5a3931a9bd22b3874cdd641ac1132a0", + "entry_digest": "d6ba00e8c657b061d382405e5eb3c6876fd12aa82538f2015143d07c81daba88", "owners": [ "@exact:delivery" ] @@ -41,8 +41,8 @@ "path": "Sources/aps/Aps.swift", "kind": "file", "mode": 33188, - "payload_digest": "ca57f3cfbdd458c348c5582b972eece251965bb848f4cafc1f2909979cb4d990", - "entry_digest": "387a0d56054075e69e2e53c4f3b80819749eca01028dcb4a47456fdb5a40c2cf", + "payload_digest": "c103edfab09948f06eb51023ba1f557de3be70cfc35a5c18e2f83feadde7f8f8", + "entry_digest": "b42ff2ad1138fbb261e2524a79aaec902d3c6be3e41a75a0b70d90340c83b1d0", "owners": [ "aps-cli" ] @@ -51,8 +51,8 @@ "path": "Sources/aps/CLIOutput.swift", "kind": "file", "mode": 33188, - "payload_digest": "bbeed534971827a489453afb1d455b9d6a77d2460802392f918d68fa2d9dc4c8", - "entry_digest": "315734a8274ef0b3bee07347aa0aaef11a2c43983adeee440251f315acbef46c", + "payload_digest": "18ccec04502ed6fcb8aec0e684e34f5889f7aa04241964f4816b046bd97b6dd2", + "entry_digest": "5b215aa458464414befc6c49713d4aebe6b5839cce22c0c5489fddd70ada2dd3", "owners": [ "aps-cli" ] @@ -91,8 +91,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", - "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", "owners": [ "@exact:test" ] @@ -101,8 +101,8 @@ "path": "specs/aps-cli/aps-cli.spec.md", "kind": "file", "mode": 33188, - "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", - "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", "owners": [ "aps-cli" ] @@ -121,8 +121,8 @@ "path": "specs/aps-cli/requirements.md", "kind": "file", "mode": 33188, - "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", - "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", "owners": [ "aps-cli" ] diff --git a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/approvals.json b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/approvals.json index de8d5e7..155751b 100644 --- a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/approvals.json +++ b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/approvals.json @@ -111,6 +111,13 @@ "timestamp": 1784418455, "digest": "32d70ef936ae3e033ca884eacf994676d334873fb990225c2d4734ff049be986", "note": "Re-accept after issue 46 Windows swift test." + }, + { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419871, + "digest": "48e736ceaf21618f62a07914dc8c6d1d599204639ce6fd22767e0b9eb045a43b", + "note": null } ], "reopenings": [ @@ -2786,6 +2793,249 @@ }, "stale_acceptance_input_digest": "ed627292d422b8b7b95bcbca7157249a27b60d79c556c58fd0fe6de87f82df73", "current_acceptance_input_digest": "b9946670353d183d24c7bbde1b10e0fa205b4ab2698378f0f0da54196ffc9e99" + }, + { + "schema_version": 1, + "change_id": "CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16", + "actor": "0xLeif", + "reason": "Rebase of the error contract branch onto current main changed delivery inputs; rebinding evidence", + "timestamp": 1784419853, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784418455, + "digest": "32d70ef936ae3e033ca884eacf994676d334873fb990225c2d4734ff049be986", + "note": "Re-accept after issue 46 Windows swift test." + }, + "prior_verification": { + "timestamp": 1784418448, + "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "contract_digest": "914c204b1d836d6b3de14e4908e2813862014a023e5d4244f1758d9486b3cd80", + "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", + "acceptance_input_digest": "b9946670353d183d24c7bbde1b10e0fa205b4ab2698378f0f0da54196ffc9e99", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "634090de65a9412ba78ab19c40159c18c5de80df8165f8aef4bc259cf12e0402", + "entry_digest": "a29e2c49a47fbea8f3b4609e37567ba815bd772b5f718565894f9e3d585a547c", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "GOAL.md", + "kind": "file", + "mode": 33188, + "payload_digest": "20146bfa50165791ec6059f6245716170c43b23106e5123ec590a306a590a966", + "entry_digest": "68fbffe2a6cce1f402c5dcebbd733d2b1f3d5e3d259a0ee91dfc23bbc034fc56", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", + "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Scripts/smoke.sh", + "kind": "file", + "mode": 33261, + "payload_digest": "e56bf09bae732fa3557d50b6c9b811bae7d2010dc74a01cdccd32bcd793c7a85", + "entry_digest": "be5fbb70152c18606ae7f26546919ab5cd61aa0b79de1fecb72d2cab092c2688", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Sources/aps/Aps.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "ca57f3cfbdd458c348c5582b972eece251965bb848f4cafc1f2909979cb4d990", + "entry_digest": "387a0d56054075e69e2e53c4f3b80819749eca01028dcb4a47456fdb5a40c2cf", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/CLIOutput.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "bbeed534971827a489453afb1d455b9d6a77d2460802392f918d68fa2d9dc4c8", + "entry_digest": "315734a8274ef0b3bee07347aa0aaef11a2c43983adeee440251f315acbef46c", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoKey.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "e7c9c1b05bd151426b51e99443b6f63e94fc728ff79384169c3dd3508ba96e92", + "entry_digest": "66317da48cf650e872b3715a89e092f1ad939c7865c02f298b81ea9ed869de56", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoState.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "62cd24efb557b5cef77e7aae804f933f4b53caf47195968764f05cc5a0a0d9b8", + "entry_digest": "fb710f893d343d67c1fd7a5a5cc50c5c49caf0aa182e5af17ee7c97ff98f8122", + "owners": [ + "state-store" + ] + }, + { + "path": "Sources/aps/StateStore.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "5abe29abecab6e6f5c110fe30391ee7c27dc119b727a40153b239270dfa32363", + "entry_digest": "5e7b6967feb8e7b23ab7a4025a44920cd49239567ee59acfb71af64fcb985eb3", + "owners": [ + "state-store" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", + "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "owners": [ + "@exact:test" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", + "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", + "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/state-store/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "12d848cab584c8a64f7da8bee796b581ec3b1b5efc72448299330dd493f39aa7", + "entry_digest": "76b734c278c05e3e74ff8f41dbb07aac3dcc7b1fbda64adcf32691e31365317c", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "6d94234b7a6b7d4dab2b432a46d1d59449941bd031b7e6e841a13d7830305ef1", + "entry_digest": "42a35cb8eed79a217a0016bc9ab3d9a5cc41b4c20f6f950e66edc40c21ac6d72", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/state-store.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "18ab2c5e1aaf9bf6c7e29195bcaaa987d5668aa79b0b17fd090fdfc3b51c4df8", + "entry_digest": "ff0141bc011bcf041f5ff3ecf0c40f910e73cab965c634708a2f21cbff5afce1", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "0f02b782887467b358568bf22c2d68f39c40a00d56143bd6c64abdf8198cf433", + "entry_digest": "8f828f3625d4f24c3c71852bd28f76aac97cd31ace2a18d1a901a3d34642de8d", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "63705355034895d0dfab654892140beecd317afb08530917c8cf4b308824ab63", + "entry_digest": "88818028e56f72fbfd2bdf24012faf448fc049911bf77a2ecb1f32ba1c3e6389", + "owners": [ + "state-store" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-001", + "REQ-aps-cli-015", + "REQ-state-store-013" + ] + }, + "stale_acceptance_input_digest": "b9946670353d183d24c7bbde1b10e0fa205b4ab2698378f0f0da54196ffc9e99", + "current_acceptance_input_digest": "9f35fe5231a0a0746c534b0b41a5c738a60f38004117e65c59d4ed6536fa99ad" } ] } diff --git a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/state.json b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/state.json index 5c69bb7..23ac110 100644 --- a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/state.json +++ b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "6312f8d8379c3b87b05c3eb4436c0b503f161d1a", "created_at": 1784406691, - "updated_at": 1784418455, + "updated_at": 1784419871, "affected_specs": [ "aps-cli", "state-store" diff --git a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification-attempts.json b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification-attempts.json index ba98e72..846f682 100644 --- a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification-attempts.json +++ b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification-attempts.json @@ -285,6 +285,25 @@ "REQ-aps-cli-015", "REQ-state-store-013" ] + }, + { + "timestamp": 1784419863, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "914c204b1d836d6b3de14e4908e2813862014a023e5d4244f1758d9486b3cd80", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-001", + "REQ-aps-cli-015", + "REQ-state-store-013" + ] } ] } diff --git a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification.json b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification.json index 2fd6369..d38045b 100644 --- a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification.json +++ b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784418448, - "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "timestamp": 1784419863, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", "contract_digest": "914c204b1d836d6b3de14e4908e2813862014a023e5d4244f1758d9486b3cd80", - "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", - "acceptance_input_digest": "b9946670353d183d24c7bbde1b10e0fa205b4ab2698378f0f0da54196ffc9e99", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "9f35fe5231a0a0746c534b0b41a5c738a60f38004117e65c59d4ed6536fa99ad", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -31,8 +31,8 @@ "path": "README.md", "kind": "file", "mode": 33188, - "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", - "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", "owners": [ "@exact:delivery" ] @@ -41,8 +41,8 @@ "path": "Scripts/smoke.sh", "kind": "file", "mode": 33261, - "payload_digest": "e56bf09bae732fa3557d50b6c9b811bae7d2010dc74a01cdccd32bcd793c7a85", - "entry_digest": "be5fbb70152c18606ae7f26546919ab5cd61aa0b79de1fecb72d2cab092c2688", + "payload_digest": "2edf3b5ea543dcc7d6c40b720313b4a5d5a3931a9bd22b3874cdd641ac1132a0", + "entry_digest": "d6ba00e8c657b061d382405e5eb3c6876fd12aa82538f2015143d07c81daba88", "owners": [ "@exact:delivery" ] @@ -51,8 +51,8 @@ "path": "Sources/aps/Aps.swift", "kind": "file", "mode": 33188, - "payload_digest": "ca57f3cfbdd458c348c5582b972eece251965bb848f4cafc1f2909979cb4d990", - "entry_digest": "387a0d56054075e69e2e53c4f3b80819749eca01028dcb4a47456fdb5a40c2cf", + "payload_digest": "c103edfab09948f06eb51023ba1f557de3be70cfc35a5c18e2f83feadde7f8f8", + "entry_digest": "b42ff2ad1138fbb261e2524a79aaec902d3c6be3e41a75a0b70d90340c83b1d0", "owners": [ "aps-cli" ] @@ -61,8 +61,8 @@ "path": "Sources/aps/CLIOutput.swift", "kind": "file", "mode": 33188, - "payload_digest": "bbeed534971827a489453afb1d455b9d6a77d2460802392f918d68fa2d9dc4c8", - "entry_digest": "315734a8274ef0b3bee07347aa0aaef11a2c43983adeee440251f315acbef46c", + "payload_digest": "18ccec04502ed6fcb8aec0e684e34f5889f7aa04241964f4816b046bd97b6dd2", + "entry_digest": "5b215aa458464414befc6c49713d4aebe6b5839cce22c0c5489fddd70ada2dd3", "owners": [ "aps-cli" ] @@ -71,8 +71,8 @@ "path": "Sources/aps/DemoKey.swift", "kind": "file", "mode": 33188, - "payload_digest": "e7c9c1b05bd151426b51e99443b6f63e94fc728ff79384169c3dd3508ba96e92", - "entry_digest": "66317da48cf650e872b3715a89e092f1ad939c7865c02f298b81ea9ed869de56", + "payload_digest": "c6ac05ed87e9fb6a4ba0f287d67dc18cfe27211f1e37628d1f7a02eec6e90065", + "entry_digest": "4a73f07438c6db33b397f2ddc808134bdc4b6cc34222edf152e121d2f42c3ab6", "owners": [ "aps-cli" ] @@ -101,8 +101,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", - "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", "owners": [ "@exact:test" ] @@ -111,8 +111,8 @@ "path": "specs/aps-cli/aps-cli.spec.md", "kind": "file", "mode": 33188, - "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", - "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", "owners": [ "aps-cli" ] @@ -131,8 +131,8 @@ "path": "specs/aps-cli/requirements.md", "kind": "file", "mode": 33188, - "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", - "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", "owners": [ "aps-cli" ] diff --git a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/approvals.json b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/approvals.json index e98e699..1ed5d61 100644 --- a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/approvals.json +++ b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/approvals.json @@ -97,6 +97,13 @@ "timestamp": 1784418475, "digest": "1aa0596bac45e27ad4e285178342f8af0bb8f7c3420c6e955e1850a6e8bfdc0f", "note": "Re-accept after issue 46 Windows swift test." + }, + { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419900, + "digest": "f9a003e2d733fa7184dd1e106acf686a2b3deacd158709d87ab46cdd0aed2074", + "note": null } ], "reopenings": [ @@ -2219,6 +2226,218 @@ }, "stale_acceptance_input_digest": "687a86ac94c7315dbf0685c11b6469081ae26deeb34cdce22c7cbaaf10d367e4", "current_acceptance_input_digest": "a5e53b8f819cb08853a1a7d40dc25bb344a4e892493cac20363ab10742d1ded5" + }, + { + "schema_version": 1, + "change_id": "CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17", + "actor": "0xLeif", + "reason": "Rebase of the error contract branch onto current main changed delivery inputs; rebinding evidence", + "timestamp": 1784419878, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784418475, + "digest": "1aa0596bac45e27ad4e285178342f8af0bb8f7c3420c6e955e1850a6e8bfdc0f", + "note": "Re-accept after issue 46 Windows swift test." + }, + "prior_verification": { + "timestamp": 1784418466, + "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "contract_digest": "55d93919744f623103fb1d77e2cdb833a2d95075e3fc62ac31c6d09d506223b6", + "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", + "acceptance_input_digest": "a5e53b8f819cb08853a1a7d40dc25bb344a4e892493cac20363ab10742d1ded5", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "48d156cde46751f23dfe9c134d35c95faf3b8f173783dfb0b60872b118ab5cfb", + "entry_digest": "36a1e742298c093ae2ba5dd696140c37e443aacf8c11fc98903d3f57cab409ad", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", + "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Sources/aps/Aps.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "ca57f3cfbdd458c348c5582b972eece251965bb848f4cafc1f2909979cb4d990", + "entry_digest": "387a0d56054075e69e2e53c4f3b80819749eca01028dcb4a47456fdb5a40c2cf", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/CLIOutput.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "bbeed534971827a489453afb1d455b9d6a77d2460802392f918d68fa2d9dc4c8", + "entry_digest": "315734a8274ef0b3bee07347aa0aaef11a2c43983adeee440251f315acbef46c", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoKey.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "e7c9c1b05bd151426b51e99443b6f63e94fc728ff79384169c3dd3508ba96e92", + "entry_digest": "66317da48cf650e872b3715a89e092f1ad939c7865c02f298b81ea9ed869de56", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/StateStore.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "5abe29abecab6e6f5c110fe30391ee7c27dc119b727a40153b239270dfa32363", + "entry_digest": "5e7b6967feb8e7b23ab7a4025a44920cd49239567ee59acfb71af64fcb985eb3", + "owners": [ + "state-store" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", + "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "owners": [ + "@exact:test" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", + "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", + "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/state-store/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "12d848cab584c8a64f7da8bee796b581ec3b1b5efc72448299330dd493f39aa7", + "entry_digest": "76b734c278c05e3e74ff8f41dbb07aac3dcc7b1fbda64adcf32691e31365317c", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "6d94234b7a6b7d4dab2b432a46d1d59449941bd031b7e6e841a13d7830305ef1", + "entry_digest": "42a35cb8eed79a217a0016bc9ab3d9a5cc41b4c20f6f950e66edc40c21ac6d72", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/state-store.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "18ab2c5e1aaf9bf6c7e29195bcaaa987d5668aa79b0b17fd090fdfc3b51c4df8", + "entry_digest": "ff0141bc011bcf041f5ff3ecf0c40f910e73cab965c634708a2f21cbff5afce1", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "0f02b782887467b358568bf22c2d68f39c40a00d56143bd6c64abdf8198cf433", + "entry_digest": "8f828f3625d4f24c3c71852bd28f76aac97cd31ace2a18d1a901a3d34642de8d", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "63705355034895d0dfab654892140beecd317afb08530917c8cf4b308824ab63", + "entry_digest": "88818028e56f72fbfd2bdf24012faf448fc049911bf77a2ecb1f32ba1c3e6389", + "owners": [ + "state-store" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-016", + "REQ-state-store-014" + ] + }, + "stale_acceptance_input_digest": "a5e53b8f819cb08853a1a7d40dc25bb344a4e892493cac20363ab10742d1ded5", + "current_acceptance_input_digest": "c5a828759dcfb8c0139d3276e918b32c538b1f6811716853f8f0ce43b97b63d7" } ] } diff --git a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/state.json b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/state.json index 940d3d6..4728435 100644 --- a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/state.json +++ b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "d9500d41e7cfee56b7c40fc25886265c39f97e28", "created_at": 1784407712, - "updated_at": 1784418475, + "updated_at": 1784419900, "affected_specs": [ "aps-cli", "state-store" diff --git a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification-attempts.json b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification-attempts.json index e55ce78..54841a8 100644 --- a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification-attempts.json +++ b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification-attempts.json @@ -234,6 +234,24 @@ "REQ-aps-cli-016", "REQ-state-store-014" ] + }, + { + "timestamp": 1784419888, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "55d93919744f623103fb1d77e2cdb833a2d95075e3fc62ac31c6d09d506223b6", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-016", + "REQ-state-store-014" + ] } ] } diff --git a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification.json b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification.json index a9fccbe..5db443d 100644 --- a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification.json +++ b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784418466, - "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "timestamp": 1784419888, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", "contract_digest": "55d93919744f623103fb1d77e2cdb833a2d95075e3fc62ac31c6d09d506223b6", - "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", - "acceptance_input_digest": "a5e53b8f819cb08853a1a7d40dc25bb344a4e892493cac20363ab10742d1ded5", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "c5a828759dcfb8c0139d3276e918b32c538b1f6811716853f8f0ce43b97b63d7", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -21,8 +21,8 @@ "path": "README.md", "kind": "file", "mode": 33188, - "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", - "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", "owners": [ "@exact:delivery" ] @@ -31,8 +31,8 @@ "path": "Sources/aps/Aps.swift", "kind": "file", "mode": 33188, - "payload_digest": "ca57f3cfbdd458c348c5582b972eece251965bb848f4cafc1f2909979cb4d990", - "entry_digest": "387a0d56054075e69e2e53c4f3b80819749eca01028dcb4a47456fdb5a40c2cf", + "payload_digest": "c103edfab09948f06eb51023ba1f557de3be70cfc35a5c18e2f83feadde7f8f8", + "entry_digest": "b42ff2ad1138fbb261e2524a79aaec902d3c6be3e41a75a0b70d90340c83b1d0", "owners": [ "aps-cli" ] @@ -41,8 +41,8 @@ "path": "Sources/aps/CLIOutput.swift", "kind": "file", "mode": 33188, - "payload_digest": "bbeed534971827a489453afb1d455b9d6a77d2460802392f918d68fa2d9dc4c8", - "entry_digest": "315734a8274ef0b3bee07347aa0aaef11a2c43983adeee440251f315acbef46c", + "payload_digest": "18ccec04502ed6fcb8aec0e684e34f5889f7aa04241964f4816b046bd97b6dd2", + "entry_digest": "5b215aa458464414befc6c49713d4aebe6b5839cce22c0c5489fddd70ada2dd3", "owners": [ "aps-cli" ] @@ -51,8 +51,8 @@ "path": "Sources/aps/DemoKey.swift", "kind": "file", "mode": 33188, - "payload_digest": "e7c9c1b05bd151426b51e99443b6f63e94fc728ff79384169c3dd3508ba96e92", - "entry_digest": "66317da48cf650e872b3715a89e092f1ad939c7865c02f298b81ea9ed869de56", + "payload_digest": "c6ac05ed87e9fb6a4ba0f287d67dc18cfe27211f1e37628d1f7a02eec6e90065", + "entry_digest": "4a73f07438c6db33b397f2ddc808134bdc4b6cc34222edf152e121d2f42c3ab6", "owners": [ "aps-cli" ] @@ -71,8 +71,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", - "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", "owners": [ "@exact:test" ] @@ -81,8 +81,8 @@ "path": "specs/aps-cli/aps-cli.spec.md", "kind": "file", "mode": 33188, - "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", - "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", "owners": [ "aps-cli" ] @@ -101,8 +101,8 @@ "path": "specs/aps-cli/requirements.md", "kind": "file", "mode": 33188, - "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", - "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", "owners": [ "aps-cli" ] diff --git a/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/approvals.json b/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/approvals.json index 2a71c4a..a3c77ec 100644 --- a/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/approvals.json +++ b/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/approvals.json @@ -62,6 +62,13 @@ "timestamp": 1784418493, "digest": "354674347ea913aa2d53069218412a9689567048bbd6ea673b724a3ca79981be", "note": "Re-accept after issue 46 Windows swift test." + }, + { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419925, + "digest": "fbc7cdc87285de62c13f773fdce994b313768ad170e29e8b0ca8b04c59c6d657", + "note": null } ], "reopenings": [ @@ -478,6 +485,75 @@ }, "stale_acceptance_input_digest": "0972f11adbf3a3d0fd94e83c236cbd2ac1b1791c233a8e9bfdb614a8161adf93", "current_acceptance_input_digest": "513c452c001e69d8eb4a785173aa751660d6de9676104f2e657304aa240ca2aa" + }, + { + "schema_version": 1, + "change_id": "CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces", + "actor": "0xLeif", + "reason": "Rebase of the error contract branch onto current main changed delivery inputs; rebinding evidence", + "timestamp": 1784419907, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784418493, + "digest": "354674347ea913aa2d53069218412a9689567048bbd6ea673b724a3ca79981be", + "note": "Re-accept after issue 46 Windows swift test." + }, + "prior_verification": { + "timestamp": 1784418486, + "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "contract_digest": "a0e81300735aa82f646433bad125e6ac0043d3680d608e1ce6dbf42c7c730e6a", + "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", + "acceptance_input_digest": "513c452c001e69d8eb4a785173aa751660d6de9676104f2e657304aa240ca2aa", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "af3c8353cd24a8a6592088883407b482cd73ea4324ccda5b230ccefcadb448f3", + "entry_digest": "cd3321bf077cb79382d5efc61d3bc66c5ab10ed2f5c3f236b3dcc1296c6ebc04", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "GOAL.md", + "kind": "file", + "mode": 33188, + "payload_digest": "20146bfa50165791ec6059f6245716170c43b23106e5123ec590a306a590a966", + "entry_digest": "68fbffe2a6cce1f402c5dcebbd733d2b1f3d5e3d259a0ee91dfc23bbc034fc56", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", + "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "owners": [ + "@exact:delivery" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [] + }, + "stale_acceptance_input_digest": "513c452c001e69d8eb4a785173aa751660d6de9676104f2e657304aa240ca2aa", + "current_acceptance_input_digest": "76f494cf99a05330acc718c14b9467fb5c8015b90cd360b25353fcbb95f59879" } ] } diff --git a/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/state.json b/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/state.json index bdcf159..40f2f71 100644 --- a/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/state.json +++ b/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "20b6f8b24442e18257379fd238018b67615f536b", "created_at": 1784409533, - "updated_at": 1784418493, + "updated_at": 1784419925, "affected_specs": [], "affected_paths": [ "README.md", diff --git a/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/verification-attempts.json b/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/verification-attempts.json index 5a7b702..1f7760b 100644 --- a/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/verification-attempts.json +++ b/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/verification-attempts.json @@ -105,6 +105,21 @@ } ], "requirement_ids": [] + }, + { + "timestamp": 1784419916, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "a0e81300735aa82f646433bad125e6ac0043d3680d608e1ce6dbf42c7c730e6a", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [] } ] } diff --git a/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/verification.json b/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/verification.json index df3a624..dde96d6 100644 --- a/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/verification.json +++ b/.specsync/changes/CHG-0014-document-appstate-coverage-matrix-and-refresh-goal-for-0-2-dogfood-surfaces/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784418486, - "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "timestamp": 1784419916, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", "contract_digest": "a0e81300735aa82f646433bad125e6ac0043d3680d608e1ce6dbf42c7c730e6a", - "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", - "acceptance_input_digest": "513c452c001e69d8eb4a785173aa751660d6de9676104f2e657304aa240ca2aa", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "76f494cf99a05330acc718c14b9467fb5c8015b90cd360b25353fcbb95f59879", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -31,8 +31,8 @@ "path": "README.md", "kind": "file", "mode": 33188, - "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", - "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", "owners": [ "@exact:delivery" ] diff --git a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/approvals.json b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/approvals.json index 872630b..88c612e 100644 --- a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/approvals.json +++ b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/approvals.json @@ -48,6 +48,13 @@ "timestamp": 1784418517, "digest": "dbfda439eef8cf528f50aef304328943b49adda0cafc9541ed70c52e97afd615", "note": "Re-accept after issue 46 Windows swift test." + }, + { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419953, + "digest": "265c48fa0a8ea4516f5d6a463fc38a22219dd9c29bc3d391fd27ed5e9d4fc2e3", + "note": null } ], "reopenings": [ @@ -818,6 +825,198 @@ }, "stale_acceptance_input_digest": "48e0e3722dc1a71411ced6937a3e1a6d727dd7e6d0bbd0ffd2cd31e9a9f5b2d2", "current_acceptance_input_digest": "e97aa59bef307095c0459c1d9218c2cfa91d4eabde13d3f3440ce0828e086e6d" + }, + { + "schema_version": 1, + "change_id": "CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15", + "actor": "0xLeif", + "reason": "Rebase of the error contract branch onto current main changed delivery inputs; rebinding evidence", + "timestamp": 1784419938, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784418517, + "digest": "dbfda439eef8cf528f50aef304328943b49adda0cafc9541ed70c52e97afd615", + "note": "Re-accept after issue 46 Windows swift test." + }, + "prior_verification": { + "timestamp": 1784418505, + "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "contract_digest": "30740768dcecceea1a7c3b740c383f846f150c509523673ef373157ac3e4aae5", + "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", + "acceptance_input_digest": "e97aa59bef307095c0459c1d9218c2cfa91d4eabde13d3f3440ce0828e086e6d", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "84d780b51267d44f88acaf91878c56e8c4b0694608d1a9c53018ce5ea7b1de47", + "entry_digest": "25c7131b7c1001ce1ff855b28384ce161faf4270fa2111e7abdac2450b244f79", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Sources/aps/DemoKey.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "e7c9c1b05bd151426b51e99443b6f63e94fc728ff79384169c3dd3508ba96e92", + "entry_digest": "66317da48cf650e872b3715a89e092f1ad939c7865c02f298b81ea9ed869de56", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/Dependencies.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "14fced21000b935ed106a6a039bf574ed6cb9d8ba1598dc82001fbcd418a57a4", + "entry_digest": "0218077403628c671d6e778f6465e46e958a2c8f589d707f42a775f7da5cc799", + "owners": [ + "state-store" + ] + }, + { + "path": "Sources/aps/StateStore.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "5abe29abecab6e6f5c110fe30391ee7c27dc119b727a40153b239270dfa32363", + "entry_digest": "5e7b6967feb8e7b23ab7a4025a44920cd49239567ee59acfb71af64fcb985eb3", + "owners": [ + "state-store" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", + "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "owners": [ + "@exact:test" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", + "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", + "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/state-store/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "12d848cab584c8a64f7da8bee796b581ec3b1b5efc72448299330dd493f39aa7", + "entry_digest": "76b734c278c05e3e74ff8f41dbb07aac3dcc7b1fbda64adcf32691e31365317c", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "6d94234b7a6b7d4dab2b432a46d1d59449941bd031b7e6e841a13d7830305ef1", + "entry_digest": "42a35cb8eed79a217a0016bc9ab3d9a5cc41b4c20f6f950e66edc40c21ac6d72", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/state-store.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "18ab2c5e1aaf9bf6c7e29195bcaaa987d5668aa79b0b17fd090fdfc3b51c4df8", + "entry_digest": "ff0141bc011bcf041f5ff3ecf0c40f910e73cab965c634708a2f21cbff5afce1", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "0f02b782887467b358568bf22c2d68f39c40a00d56143bd6c64abdf8198cf433", + "entry_digest": "8f828f3625d4f24c3c71852bd28f76aac97cd31ace2a18d1a901a3d34642de8d", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "63705355034895d0dfab654892140beecd317afb08530917c8cf4b308824ab63", + "entry_digest": "88818028e56f72fbfd2bdf24012faf448fc049911bf77a2ecb1f32ba1c3e6389", + "owners": [ + "state-store" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-005", + "REQ-state-store-002" + ] + }, + "stale_acceptance_input_digest": "e97aa59bef307095c0459c1d9218c2cfa91d4eabde13d3f3440ce0828e086e6d", + "current_acceptance_input_digest": "ab6f67e8d4afcac0384dbffb1550c3c069c9d35869377f46f00dee87f1e1c809" } ] } diff --git a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/state.json b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/state.json index 859570c..2b7ed8b 100644 --- a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/state.json +++ b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "cb05f64c650260c5f3960b192d3be70c0e450627", "created_at": 1784410136, - "updated_at": 1784418517, + "updated_at": 1784419953, "affected_specs": [ "aps-cli", "state-store" diff --git a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification-attempts.json b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification-attempts.json index 494ce08..7d4b899 100644 --- a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification-attempts.json +++ b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification-attempts.json @@ -90,6 +90,24 @@ "REQ-aps-cli-005", "REQ-state-store-002" ] + }, + { + "timestamp": 1784419946, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "30740768dcecceea1a7c3b740c383f846f150c509523673ef373157ac3e4aae5", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-005", + "REQ-state-store-002" + ] } ] } diff --git a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification.json b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification.json index 1b72b22..efd53e8 100644 --- a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification.json +++ b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784418505, - "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "timestamp": 1784419946, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", "contract_digest": "30740768dcecceea1a7c3b740c383f846f150c509523673ef373157ac3e4aae5", - "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", - "acceptance_input_digest": "e97aa59bef307095c0459c1d9218c2cfa91d4eabde13d3f3440ce0828e086e6d", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "ab6f67e8d4afcac0384dbffb1550c3c069c9d35869377f46f00dee87f1e1c809", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -21,8 +21,8 @@ "path": "Sources/aps/DemoKey.swift", "kind": "file", "mode": 33188, - "payload_digest": "e7c9c1b05bd151426b51e99443b6f63e94fc728ff79384169c3dd3508ba96e92", - "entry_digest": "66317da48cf650e872b3715a89e092f1ad939c7865c02f298b81ea9ed869de56", + "payload_digest": "c6ac05ed87e9fb6a4ba0f287d67dc18cfe27211f1e37628d1f7a02eec6e90065", + "entry_digest": "4a73f07438c6db33b397f2ddc808134bdc4b6cc34222edf152e121d2f42c3ab6", "owners": [ "aps-cli" ] @@ -51,8 +51,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", - "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", "owners": [ "@exact:test" ] @@ -61,8 +61,8 @@ "path": "specs/aps-cli/aps-cli.spec.md", "kind": "file", "mode": 33188, - "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", - "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", "owners": [ "aps-cli" ] @@ -81,8 +81,8 @@ "path": "specs/aps-cli/requirements.md", "kind": "file", "mode": 33188, - "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", - "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", "owners": [ "aps-cli" ] diff --git a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/approvals.json b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/approvals.json index d7da2e3..322a391 100644 --- a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/approvals.json +++ b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/approvals.json @@ -55,6 +55,13 @@ "timestamp": 1784418537, "digest": "80aaabaffd7b70deee446cedeb5266be21e552fc4a5731c7d5b2fef9250cbfb1", "note": "Re-accept after issue 46 Windows swift test." + }, + { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419975, + "digest": "7fbc1c709aea22c5e79d9baac0fb68586d6a9fe78d782de49aecfdef8fafd2ac", + "note": null } ], "reopenings": [ @@ -1127,6 +1134,220 @@ }, "stale_acceptance_input_digest": "e19dc7f0f54671c14b7cdab077cf319caa57341e5874016d55cbbc1ac9d27fce", "current_acceptance_input_digest": "741005d009844db59131510681a95fabef2d96b50169f7785260555f64f95726" + }, + { + "schema_version": 1, + "change_id": "CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38", + "actor": "0xLeif", + "reason": "Rebase of the error contract branch onto current main changed delivery inputs; rebinding evidence", + "timestamp": 1784419959, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784418537, + "digest": "80aaabaffd7b70deee446cedeb5266be21e552fc4a5731c7d5b2fef9250cbfb1", + "note": "Re-accept after issue 46 Windows swift test." + }, + "prior_verification": { + "timestamp": 1784418529, + "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "contract_digest": "2ce0d16b39555da39844a51a6ba4f24ee62c65751cf41af3d664905ba89b4158", + "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", + "acceptance_input_digest": "741005d009844db59131510681a95fabef2d96b50169f7785260555f64f95726", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "01a2570bb01e7e02aaed90e013bff057b79c0e69b6cd41588f73d929bb0832d0", + "entry_digest": "c1b975fb057e851d0eddd07a206545855bc4a0b74a509145e784874f8c00c682", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", + "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Sources/aps/Aps.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "ca57f3cfbdd458c348c5582b972eece251965bb848f4cafc1f2909979cb4d990", + "entry_digest": "387a0d56054075e69e2e53c4f3b80819749eca01028dcb4a47456fdb5a40c2cf", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/CLIOutput.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "bbeed534971827a489453afb1d455b9d6a77d2460802392f918d68fa2d9dc4c8", + "entry_digest": "315734a8274ef0b3bee07347aa0aaef11a2c43983adeee440251f315acbef46c", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoKey.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "e7c9c1b05bd151426b51e99443b6f63e94fc728ff79384169c3dd3508ba96e92", + "entry_digest": "66317da48cf650e872b3715a89e092f1ad939c7865c02f298b81ea9ed869de56", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/StateStore.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "5abe29abecab6e6f5c110fe30391ee7c27dc119b727a40153b239270dfa32363", + "entry_digest": "5e7b6967feb8e7b23ab7a4025a44920cd49239567ee59acfb71af64fcb985eb3", + "owners": [ + "state-store" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", + "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "owners": [ + "@exact:test" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", + "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", + "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/state-store/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "12d848cab584c8a64f7da8bee796b581ec3b1b5efc72448299330dd493f39aa7", + "entry_digest": "76b734c278c05e3e74ff8f41dbb07aac3dcc7b1fbda64adcf32691e31365317c", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "6d94234b7a6b7d4dab2b432a46d1d59449941bd031b7e6e841a13d7830305ef1", + "entry_digest": "42a35cb8eed79a217a0016bc9ab3d9a5cc41b4c20f6f950e66edc40c21ac6d72", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/state-store.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "18ab2c5e1aaf9bf6c7e29195bcaaa987d5668aa79b0b17fd090fdfc3b51c4df8", + "entry_digest": "ff0141bc011bcf041f5ff3ecf0c40f910e73cab965c634708a2f21cbff5afce1", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "0f02b782887467b358568bf22c2d68f39c40a00d56143bd6c64abdf8198cf433", + "entry_digest": "8f828f3625d4f24c3c71852bd28f76aac97cd31ace2a18d1a901a3d34642de8d", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "63705355034895d0dfab654892140beecd317afb08530917c8cf4b308824ab63", + "entry_digest": "88818028e56f72fbfd2bdf24012faf448fc049911bf77a2ecb1f32ba1c3e6389", + "owners": [ + "state-store" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-005", + "REQ-aps-cli-017", + "REQ-state-store-004", + "REQ-state-store-015" + ] + }, + "stale_acceptance_input_digest": "741005d009844db59131510681a95fabef2d96b50169f7785260555f64f95726", + "current_acceptance_input_digest": "4300f6de6be8880db0d5e7db904fe01f67a6b07b23288efbeee9711a9c41135c" } ] } diff --git a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/state.json b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/state.json index 2286752..000e1fe 100644 --- a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/state.json +++ b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "c0c5b4bfb7c712506f9795c80889f03094596629", "created_at": 1784411475, - "updated_at": 1784418537, + "updated_at": 1784419975, "affected_specs": [ "aps-cli", "state-store" diff --git a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification-attempts.json b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification-attempts.json index 2ee602b..18d6c8a 100644 --- a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification-attempts.json +++ b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification-attempts.json @@ -140,6 +140,26 @@ "REQ-state-store-004", "REQ-state-store-015" ] + }, + { + "timestamp": 1784419968, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "2ce0d16b39555da39844a51a6ba4f24ee62c65751cf41af3d664905ba89b4158", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-005", + "REQ-aps-cli-017", + "REQ-state-store-004", + "REQ-state-store-015" + ] } ] } diff --git a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification.json b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification.json index d591f7e..090d75f 100644 --- a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification.json +++ b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784418529, - "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "timestamp": 1784419968, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", "contract_digest": "2ce0d16b39555da39844a51a6ba4f24ee62c65751cf41af3d664905ba89b4158", - "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", - "acceptance_input_digest": "741005d009844db59131510681a95fabef2d96b50169f7785260555f64f95726", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "4300f6de6be8880db0d5e7db904fe01f67a6b07b23288efbeee9711a9c41135c", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -21,8 +21,8 @@ "path": "README.md", "kind": "file", "mode": 33188, - "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", - "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", "owners": [ "@exact:delivery" ] @@ -31,8 +31,8 @@ "path": "Sources/aps/Aps.swift", "kind": "file", "mode": 33188, - "payload_digest": "ca57f3cfbdd458c348c5582b972eece251965bb848f4cafc1f2909979cb4d990", - "entry_digest": "387a0d56054075e69e2e53c4f3b80819749eca01028dcb4a47456fdb5a40c2cf", + "payload_digest": "c103edfab09948f06eb51023ba1f557de3be70cfc35a5c18e2f83feadde7f8f8", + "entry_digest": "b42ff2ad1138fbb261e2524a79aaec902d3c6be3e41a75a0b70d90340c83b1d0", "owners": [ "aps-cli" ] @@ -41,8 +41,8 @@ "path": "Sources/aps/CLIOutput.swift", "kind": "file", "mode": 33188, - "payload_digest": "bbeed534971827a489453afb1d455b9d6a77d2460802392f918d68fa2d9dc4c8", - "entry_digest": "315734a8274ef0b3bee07347aa0aaef11a2c43983adeee440251f315acbef46c", + "payload_digest": "18ccec04502ed6fcb8aec0e684e34f5889f7aa04241964f4816b046bd97b6dd2", + "entry_digest": "5b215aa458464414befc6c49713d4aebe6b5839cce22c0c5489fddd70ada2dd3", "owners": [ "aps-cli" ] @@ -51,8 +51,8 @@ "path": "Sources/aps/DemoKey.swift", "kind": "file", "mode": 33188, - "payload_digest": "e7c9c1b05bd151426b51e99443b6f63e94fc728ff79384169c3dd3508ba96e92", - "entry_digest": "66317da48cf650e872b3715a89e092f1ad939c7865c02f298b81ea9ed869de56", + "payload_digest": "c6ac05ed87e9fb6a4ba0f287d67dc18cfe27211f1e37628d1f7a02eec6e90065", + "entry_digest": "4a73f07438c6db33b397f2ddc808134bdc4b6cc34222edf152e121d2f42c3ab6", "owners": [ "aps-cli" ] @@ -71,8 +71,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", - "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", "owners": [ "@exact:test" ] @@ -81,8 +81,8 @@ "path": "specs/aps-cli/aps-cli.spec.md", "kind": "file", "mode": 33188, - "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", - "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", "owners": [ "aps-cli" ] @@ -101,8 +101,8 @@ "path": "specs/aps-cli/requirements.md", "kind": "file", "mode": 33188, - "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", - "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", "owners": [ "aps-cli" ] diff --git a/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/approvals.json b/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/approvals.json index 8102691..8a7bbb9 100644 --- a/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/approvals.json +++ b/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/approvals.json @@ -41,6 +41,13 @@ "timestamp": 1784418556, "digest": "7072b1389ab59e3a184076d84cca8482d81ca342f7fa87181e1cba5d20cd5d54", "note": "Re-accept after issue 46 Windows swift test." + }, + { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419996, + "digest": "d8c560452c014357823260d382cf157f9ec8b9ef7d508fa23d141b9a9bd40368", + "note": null } ], "reopenings": [ @@ -359,6 +366,85 @@ }, "stale_acceptance_input_digest": "b517859af017d5aaf427829cc0f21b707aadc17dcc1bf91ab10d2520d6053ab5", "current_acceptance_input_digest": "cec6a44e22e0a922755000847d06bb192681f53024796c4f7bb845b10f6dd643" + }, + { + "schema_version": 1, + "change_id": "CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37", + "actor": "0xLeif", + "reason": "Rebase of the error contract branch onto current main changed delivery inputs; rebinding evidence", + "timestamp": 1784419981, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784418556, + "digest": "7072b1389ab59e3a184076d84cca8482d81ca342f7fa87181e1cba5d20cd5d54", + "note": "Re-accept after issue 46 Windows swift test." + }, + "prior_verification": { + "timestamp": 1784418548, + "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "contract_digest": "e0780c4cee616dc7dec7b0f63be84c43a6d0d997bce778d0d3306cd40df00291", + "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", + "acceptance_input_digest": "cec6a44e22e0a922755000847d06bb192681f53024796c4f7bb845b10f6dd643", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "d983ebbc9e685c5df057ac076d6e018e6a0a1ed357ebb8e87f346a867df21032", + "entry_digest": "a4ed2749015f1495334c0c1fe23e42da5b00897ce9f3eac75163dc0acc403973", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", + "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "fledge.toml", + "kind": "file", + "mode": 33188, + "payload_digest": "9725ff60ff21c473dfdbc0e2ff37c57b111dd5c73e516392c0620a6c4ed8ce08", + "entry_digest": "be2dd708aad79baa292992dcf01d539c05bd0250ddda3df2741a969a6689b174", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "plugin.toml", + "kind": "file", + "mode": 33188, + "payload_digest": "68b9f2ea7911e91a5c9eeb00e22a905ffa587fb11cd82519da32e087518100db", + "entry_digest": "eb19ef93d20438eaa1f2b86d1879921dc2d1082fcdf1d4531bab1f9a3944ca35", + "owners": [ + "@exact:delivery" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [] + }, + "stale_acceptance_input_digest": "cec6a44e22e0a922755000847d06bb192681f53024796c4f7bb845b10f6dd643", + "current_acceptance_input_digest": "ef2c08548ecca238f57640caf3ccb8b9e50ad8706ad1b333189ab2416b7ed77a" } ] } diff --git a/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/state.json b/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/state.json index e4ed38e..8a09c09 100644 --- a/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/state.json +++ b/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "d0e158325efb5006efcb4a2ed7ae1e9f4b43ef39", "created_at": 1784412805, - "updated_at": 1784418556, + "updated_at": 1784419996, "affected_specs": [], "affected_paths": [ "plugin.toml", diff --git a/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/verification-attempts.json b/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/verification-attempts.json index 9454639..7da5bd0 100644 --- a/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/verification-attempts.json +++ b/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/verification-attempts.json @@ -75,6 +75,21 @@ } ], "requirement_ids": [] + }, + { + "timestamp": 1784419989, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "e0780c4cee616dc7dec7b0f63be84c43a6d0d997bce778d0d3306cd40df00291", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [] } ] } diff --git a/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/verification.json b/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/verification.json index b16ef12..ae5e5cd 100644 --- a/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/verification.json +++ b/.specsync/changes/CHG-0017-add-fledge-plugin-toml-shim-and-validate-in-verify-lane-for-issue-37/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784418548, - "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "timestamp": 1784419989, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", "contract_digest": "e0780c4cee616dc7dec7b0f63be84c43a6d0d997bce778d0d3306cd40df00291", - "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", - "acceptance_input_digest": "cec6a44e22e0a922755000847d06bb192681f53024796c4f7bb845b10f6dd643", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "ef2c08548ecca238f57640caf3ccb8b9e50ad8706ad1b333189ab2416b7ed77a", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -21,8 +21,8 @@ "path": "README.md", "kind": "file", "mode": 33188, - "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", - "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", "owners": [ "@exact:delivery" ] diff --git a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/approvals.json b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/approvals.json index 97534fd..ec2c199 100644 --- a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/approvals.json +++ b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/approvals.json @@ -48,6 +48,13 @@ "timestamp": 1784418577, "digest": "30c11d4811158b85496833a189c1d95aacd66bfa0c76162dbf184dc2347fb9e3", "note": "Re-accept after issue 46 Windows swift test." + }, + { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784420055, + "digest": "7f57ad56e71f129716ab218f92d82f5a53475634a09a2e412184fe1e64be9592", + "note": null } ], "reopenings": [ @@ -366,6 +373,85 @@ }, "stale_acceptance_input_digest": "5b1e9de4e70de9255093b0b6fddf31b58ab0f19f875fef76e994375a71679974", "current_acceptance_input_digest": "8b68fe57d89b59e415fc368f6883c99f43dfc5c6349d2d65d42bde629b5bec48" + }, + { + "schema_version": 1, + "change_id": "CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue", + "actor": "0xLeif", + "reason": "Rebase of the error contract branch onto current main changed delivery inputs; rebinding evidence", + "timestamp": 1784420014, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784418577, + "digest": "30c11d4811158b85496833a189c1d95aacd66bfa0c76162dbf184dc2347fb9e3", + "note": "Re-accept after issue 46 Windows swift test." + }, + "prior_verification": { + "timestamp": 1784418568, + "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "contract_digest": "cc901bc4d6dd8c9a29b4bab3040676345cb2b0d7ba85c859fb5b7dda6becfc94", + "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", + "acceptance_input_digest": "8b68fe57d89b59e415fc368f6883c99f43dfc5c6349d2d65d42bde629b5bec48", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "11399161f4280ad397292c3b65f562f8a9af0c75b95b4ce9880fd1a334bcad4e", + "entry_digest": "ef782e68ea14113009c52f9236a1d72ae6c5b5fa9c8525c54d0939d152a9f901", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", + "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", + "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "owners": [ + "@exact:test" + ] + }, + { + "path": "docs/windows-readiness.md", + "kind": "file", + "mode": 33188, + "payload_digest": "1a7cc90974a6850fb64e14e72ef257600725d9e8a08eccd0778dd846a84d1d2c", + "entry_digest": "93803319a54163553d0d2945ec07d94b6a62cfe97cd2cf60b4f1e8a0f1f6a78f", + "owners": [ + "@exact:delivery" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [] + }, + "stale_acceptance_input_digest": "8b68fe57d89b59e415fc368f6883c99f43dfc5c6349d2d65d42bde629b5bec48", + "current_acceptance_input_digest": "214733c68239e2ef685a0f629aeb5b594882221dfe413c5be0da3dafd3805ae3" } ] } diff --git a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/state.json b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/state.json index 339149c..1bef3bb 100644 --- a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/state.json +++ b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "8cf886df7ac87eac4234fc3fb8c13f46362e08d6", "created_at": 1784413967, - "updated_at": 1784418577, + "updated_at": 1784420055, "affected_specs": [], "affected_paths": [ "docs/windows-readiness.md", diff --git a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification-attempts.json b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification-attempts.json index 06a9ee7..e4857b1 100644 --- a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification-attempts.json +++ b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification-attempts.json @@ -75,6 +75,21 @@ } ], "requirement_ids": [] + }, + { + "timestamp": 1784420030, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "cc901bc4d6dd8c9a29b4bab3040676345cb2b0d7ba85c859fb5b7dda6becfc94", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [] } ] } diff --git a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification.json b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification.json index 3a021d5..779ebbf 100644 --- a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification.json +++ b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784418568, - "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "timestamp": 1784420030, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", "contract_digest": "cc901bc4d6dd8c9a29b4bab3040676345cb2b0d7ba85c859fb5b7dda6becfc94", - "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", - "acceptance_input_digest": "8b68fe57d89b59e415fc368f6883c99f43dfc5c6349d2d65d42bde629b5bec48", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "214733c68239e2ef685a0f629aeb5b594882221dfe413c5be0da3dafd3805ae3", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -21,8 +21,8 @@ "path": "README.md", "kind": "file", "mode": 33188, - "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", - "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", "owners": [ "@exact:delivery" ] @@ -31,8 +31,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", - "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", "owners": [ "@exact:test" ] diff --git a/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/approvals.json b/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/approvals.json index c5d4b23..b682ac9 100644 --- a/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/approvals.json +++ b/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/approvals.json @@ -48,6 +48,13 @@ "timestamp": 1784418597, "digest": "0a5191f175dbd8ac7fea2bd9cfa822487e4ffaafb51ba15a8bc6e66b83053cd7", "note": "Re-accept after issue 46 Windows swift test." + }, + { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784420123, + "digest": "7f3e6510211e0c0c3def876e4f70ad17c4e8243f505ffdf2bda9cfe180b486e8", + "note": null } ], "reopenings": [ @@ -614,6 +621,147 @@ }, "stale_acceptance_input_digest": "537fd12050e89f76d0dedb72a67e64e2cd1cc49a4f93fa6a7c0961926b876ece", "current_acceptance_input_digest": "20a4ab886811165cc9b4bacf23bf1fb6b724a4da07e8356f57875cf549c7b15d" + }, + { + "schema_version": 1, + "change_id": "CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45", + "actor": "0xLeif", + "reason": "Rebase of the error contract branch onto current main changed delivery inputs; rebinding evidence", + "timestamp": 1784420076, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784418597, + "digest": "0a5191f175dbd8ac7fea2bd9cfa822487e4ffaafb51ba15a8bc6e66b83053cd7", + "note": "Re-accept after issue 46 Windows swift test." + }, + "prior_verification": { + "timestamp": 1784418589, + "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "contract_digest": "bbe132cc0578bf3b207567f6f95971c09abbaa9370e1f2de062c2e1aa399b968", + "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", + "acceptance_input_digest": "20a4ab886811165cc9b4bacf23bf1fb6b724a4da07e8356f57875cf549c7b15d", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".github/workflows/windows-smoke.yml", + "kind": "file", + "mode": 33188, + "payload_digest": "42c3f4aff3a36ed9e478aae454a3029198fa28a1abd671147f5e18e7bd69f9aa", + "entry_digest": "05e1c4951acb0c353f8b41e406511ede182d070133974e3a2789d5cd8f87908a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "a230a7c919631ba55ed79156ba3f9128c807542175bfac8e90bd45f2377882fd", + "entry_digest": "8aeb0363bb12523c848b8766abcab9347cc847399c08465165bc89e7350dee46", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", + "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Scripts/smoke.ps1", + "kind": "file", + "mode": 33188, + "payload_digest": "d476db9d571042578d8de33907014ecfa669f05054828886d0ceeb5f2e27c351", + "entry_digest": "164c2694507ba3d0e8133f86124b68ea64295cc1c41b5f6d11361333eb1c661b", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "docs/windows-readiness.md", + "kind": "file", + "mode": 33188, + "payload_digest": "1a7cc90974a6850fb64e14e72ef257600725d9e8a08eccd0778dd846a84d1d2c", + "entry_digest": "93803319a54163553d0d2945ec07d94b6a62cfe97cd2cf60b4f1e8a0f1f6a78f", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", + "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", + "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-018" + ] + }, + "stale_acceptance_input_digest": "20a4ab886811165cc9b4bacf23bf1fb6b724a4da07e8356f57875cf549c7b15d", + "current_acceptance_input_digest": "f94053c6491f646b68da2741e8e913b179ab16793ae27e70ff20322ee1c1c78a" } ] } diff --git a/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/state.json b/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/state.json index 90e28f1..079c6d5 100644 --- a/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/state.json +++ b/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "b5f1950bf4d99a22ead7f6f1ce24089710ed4701", "created_at": 1784415211, - "updated_at": 1784418597, + "updated_at": 1784420123, "affected_specs": [ "aps-cli" ], diff --git a/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/verification-attempts.json b/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/verification-attempts.json index 483d70a..e3a2364 100644 --- a/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/verification-attempts.json +++ b/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/verification-attempts.json @@ -102,6 +102,23 @@ "requirement_ids": [ "REQ-aps-cli-018" ] + }, + { + "timestamp": 1784420095, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "bbe132cc0578bf3b207567f6f95971c09abbaa9370e1f2de062c2e1aa399b968", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-018" + ] } ] } diff --git a/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/verification.json b/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/verification.json index f620066..d51e1e3 100644 --- a/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/verification.json +++ b/.specsync/changes/CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784418589, - "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "timestamp": 1784420095, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", "contract_digest": "bbe132cc0578bf3b207567f6f95971c09abbaa9370e1f2de062c2e1aa399b968", - "workspace_digest": "a92ec35a90d555fc8482bc53bbcb218fcf9ac90b625feedc2b957a9e306986d8", - "acceptance_input_digest": "20a4ab886811165cc9b4bacf23bf1fb6b724a4da07e8356f57875cf549c7b15d", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "f94053c6491f646b68da2741e8e913b179ab16793ae27e70ff20322ee1c1c78a", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -31,8 +31,8 @@ "path": "README.md", "kind": "file", "mode": 33188, - "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", - "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", "owners": [ "@exact:delivery" ] @@ -61,8 +61,8 @@ "path": "specs/aps-cli/aps-cli.spec.md", "kind": "file", "mode": 33188, - "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", - "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", "owners": [ "aps-cli" ] @@ -81,8 +81,8 @@ "path": "specs/aps-cli/requirements.md", "kind": "file", "mode": 33188, - "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", - "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", "owners": [ "aps-cli" ] diff --git a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/approvals.json b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/approvals.json index ca053a0..7ad17fb 100644 --- a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/approvals.json +++ b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/approvals.json @@ -20,7 +20,156 @@ "timestamp": 1784418294, "digest": "4030ad96b393a9ec85dada8d64ed47c2e2e3368dcef1cb3338316198dca3242e", "note": "Accept Windows swift test proof for issue 46." + }, + { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784420168, + "digest": "6415bb6107039e868d309d79dec71f2db694cc555474019808ceb1f9162ae932", + "note": null } ], - "reopenings": [] + "reopenings": [ + { + "schema_version": 1, + "change_id": "CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46", + "actor": "0xLeif", + "reason": "Rebase of the error contract branch onto current main changed delivery inputs; rebinding evidence", + "timestamp": 1784420143, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784418294, + "digest": "4030ad96b393a9ec85dada8d64ed47c2e2e3368dcef1cb3338316198dca3242e", + "note": "Accept Windows swift test proof for issue 46." + }, + "prior_verification": { + "timestamp": 1784418284, + "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "contract_digest": "a9d3e3412c9b69e2bd160147953180c7dc3adf5d3994f6b202f90db4c35a0e16", + "workspace_digest": "0d3f4d68a068bb8e6c2f2690dcccf378ce3ec32cf3b794263e52741c0b67b843", + "acceptance_input_digest": "3a962e15943ed1b83378ebec845c648150273065c8ed90b75e86d7b62661bd0e", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".github/workflows/windows-smoke.yml", + "kind": "file", + "mode": 33188, + "payload_digest": "42c3f4aff3a36ed9e478aae454a3029198fa28a1abd671147f5e18e7bd69f9aa", + "entry_digest": "05e1c4951acb0c353f8b41e406511ede182d070133974e3a2789d5cd8f87908a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "2dc0bbb2670decce2c56be944b4ea01f821d6bc02ed052747e7c0cb7fa9a13ad", + "entry_digest": "e43b3c9e05838ec174a3da92c18dc92d9b20f9efeea29c066a809d1ffba31bd2", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", + "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", + "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "owners": [ + "@exact:test" + ] + }, + { + "path": "docs/windows-readiness.md", + "kind": "file", + "mode": 33188, + "payload_digest": "1a7cc90974a6850fb64e14e72ef257600725d9e8a08eccd0778dd846a84d1d2c", + "entry_digest": "93803319a54163553d0d2945ec07d94b6a62cfe97cd2cf60b4f1e8a0f1f6a78f", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", + "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", + "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-018" + ] + }, + "stale_acceptance_input_digest": "3a962e15943ed1b83378ebec845c648150273065c8ed90b75e86d7b62661bd0e", + "current_acceptance_input_digest": "9fa1397f4e3ac0a24e661392779df995bb4392cee73f88e2cb52e2f176e9d795" + } + ] } diff --git a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/state.json b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/state.json index 5dcd1e1..9015f37 100644 --- a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/state.json +++ b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "7571e11d1f4da488f9540b0175420f69501814e1", "created_at": 1784418239, - "updated_at": 1784418294, + "updated_at": 1784420168, "affected_specs": [ "aps-cli" ], diff --git a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification-attempts.json b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification-attempts.json index 7700ac1..56c1b43 100644 --- a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification-attempts.json +++ b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification-attempts.json @@ -17,6 +17,23 @@ "requirement_ids": [ "REQ-aps-cli-018" ] + }, + { + "timestamp": 1784420156, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "a9d3e3412c9b69e2bd160147953180c7dc3adf5d3994f6b202f90db4c35a0e16", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-018" + ] } ] } diff --git a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification.json b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification.json index 3bd1989..b11a28e 100644 --- a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification.json +++ b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784418284, - "commit": "7571e11d1f4da488f9540b0175420f69501814e1", + "timestamp": 1784420156, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", "contract_digest": "a9d3e3412c9b69e2bd160147953180c7dc3adf5d3994f6b202f90db4c35a0e16", - "workspace_digest": "0d3f4d68a068bb8e6c2f2690dcccf378ce3ec32cf3b794263e52741c0b67b843", - "acceptance_input_digest": "3a962e15943ed1b83378ebec845c648150273065c8ed90b75e86d7b62661bd0e", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "9fa1397f4e3ac0a24e661392779df995bb4392cee73f88e2cb52e2f176e9d795", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -31,8 +31,8 @@ "path": "README.md", "kind": "file", "mode": 33188, - "payload_digest": "4d181cad23f1118a6394e333df9df9fe6b6f7fa73136910b712079dff0fb3dc3", - "entry_digest": "0fbe022d3283a8e94d81b10a3c4d2111a9c3307ccc4cef2e5ab765010708f08a", + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", "owners": [ "@exact:delivery" ] @@ -41,8 +41,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "151a969af135fa44ea6d1dd67e300eefebafbd310c8ea77b941654a1f9e34775", - "entry_digest": "5a727932ebad79083897dc0e9b8fb8500901ee0b9a73cea2fe0fe5c930351f11", + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", "owners": [ "@exact:test" ] @@ -61,8 +61,8 @@ "path": "specs/aps-cli/aps-cli.spec.md", "kind": "file", "mode": 33188, - "payload_digest": "1978534bbc7609b9d87098abb1ef6b8846073031920e690228c0ea412695d34c", - "entry_digest": "0f0d02b9a5c56fc23cb7b0ad3ff1ef438c1f134b611df875bb718e46b6be8223", + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", "owners": [ "aps-cli" ] @@ -81,8 +81,8 @@ "path": "specs/aps-cli/requirements.md", "kind": "file", "mode": 33188, - "payload_digest": "d99e9af46aeb38d2369c5e0bead17661e943b003df2a97f81ecedb1076b30fa9", - "entry_digest": "226552ec09ea4576370c00e89ec759c8f442d8be516adda6a1e1b935ef5a0d35", + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", "owners": [ "aps-cli" ] diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/approvals.json b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/approvals.json index 6fcb6bb..831839f 100644 --- a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/approvals.json +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/approvals.json @@ -3,15 +3,15 @@ { "gate": "definition", "actor": "0xLeif", - "timestamp": 1784415716, - "digest": "ecbe6220e5438a506b18a610387c0e828176ef9c8716d97b792f5cc9ad891434", + "timestamp": 1784419646, + "digest": "1fc8345bf39a1fdf79af2d12ed2ee6dde3cf4409a70b8702fb7a2c8c5bf3eeac", "note": null }, { "gate": "acceptance", "actor": "0xLeif", - "timestamp": 1784415731, - "digest": "cc2c7fc9932eeb89363ac40d0433c6d5a1051f3d48fab933f4951efcd25e5be4", + "timestamp": 1784419665, + "digest": "ed8df35f783c4bde0a61bd70587de49c912ade63c8765b7d79df619c6b6d7145", "note": null } ], diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/change.md b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/change.md index c90785e..40b3d90 100644 --- a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/change.md +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/change.md @@ -2,7 +2,7 @@ id: CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on state: accepted type: feature -base_commit: 8cf886df7ac87eac4234fc3fb8c13f46362e08d6 +base_commit: be4abfb477552bc0a07f10d51d33308608587b3d --- # Error contract: exit-code taxonomy and JSON error envelope (issue 31, rebuilt on corruptState main) diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/state.json b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/state.json index 8765ae4..04764de 100644 --- a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/state.json +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/state.json @@ -7,9 +7,9 @@ "kind": "feature", "state": "accepted", "canonical_applied": true, - "base_commit": "8cf886df7ac87eac4234fc3fb8c13f46362e08d6", - "created_at": 1784415698, - "updated_at": 1784415731, + "base_commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "created_at": 1784419626, + "updated_at": 1784419665, "affected_specs": [ "aps-cli" ], diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification-attempts.json b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification-attempts.json index da34a08..77d63d6 100644 --- a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification-attempts.json +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification-attempts.json @@ -2,10 +2,10 @@ "schema_version": 1, "attempts": [ { - "timestamp": 1784415725, - "commit": "8cf886df7ac87eac4234fc3fb8c13f46362e08d6", - "contract_digest": "ecbe6220e5438a506b18a610387c0e828176ef9c8716d97b792f5cc9ad891434", - "workspace_digest": "a6f1e1398ee1ed71507e9a499bddf864b32aab24adf12b8605e2fb621dbd882b", + "timestamp": 1784419659, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "1fc8345bf39a1fdf79af2d12ed2ee6dde3cf4409a70b8702fb7a2c8c5bf3eeac", + "workspace_digest": "4c531700435c5aec3f90f67f0973cb1a3db03b87cbf1359c20f8dc3aa55b5f5e", "passed": true, "commands": [ { diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification.json b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification.json index 3db6186..593a2e2 100644 --- a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification.json +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784415725, - "commit": "8cf886df7ac87eac4234fc3fb8c13f46362e08d6", - "contract_digest": "ecbe6220e5438a506b18a610387c0e828176ef9c8716d97b792f5cc9ad891434", - "workspace_digest": "a6f1e1398ee1ed71507e9a499bddf864b32aab24adf12b8605e2fb621dbd882b", - "acceptance_input_digest": "663ef99a96a2c945fb7c695e67262ba1789470fc2129d63e5317b641bd035b3c", + "timestamp": 1784419659, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "1fc8345bf39a1fdf79af2d12ed2ee6dde3cf4409a70b8702fb7a2c8c5bf3eeac", + "workspace_digest": "4c531700435c5aec3f90f67f0973cb1a3db03b87cbf1359c20f8dc3aa55b5f5e", + "acceptance_input_digest": "f864dbd1fc160f0bf5e5fee04740bd815db00d293fe75ce755032b5d9294cec0", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -11,8 +11,8 @@ "path": ".specsync/change-sequence.json", "kind": "file", "mode": 33188, - "payload_digest": "681173662e60625fbe69ef01b5a01eb8aad8242c07d001242525b198ae92e9d4", - "entry_digest": "bea1cade7667b76a3d2f0a57b510bdc10fcb79ddafd2495ced2f23e89cdf360d", + "payload_digest": "9f045debdb74e75947f2c5490397db24dde9f5f479eb8701749d9d74095b19c4", + "entry_digest": "14fa51360be78c249dcb404f4eac02e35126ec65b01b76b62a8580e9bf206dfd", "owners": [ "@exact:delivery" ] @@ -21,8 +21,8 @@ "path": "README.md", "kind": "file", "mode": 33188, - "payload_digest": "5d56ca0c651c7e1f749defd56a1ea7ac2b9090c83f4095fb446179b30ecd0550", - "entry_digest": "cf8e7d8a87ef598b4463103d1fa66ce1b562fe3c1bf0e93aff56ccfdccb7a49c", + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", "owners": [ "@exact:delivery" ] @@ -71,8 +71,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "b8a0472f7ce1d9e6b874a91139e4a492709a4ebdd7a86369a7ca3f17dbe475b2", - "entry_digest": "b389a1059cabd6d309dc8d44e56d9f880765955b5b58b1dd8386a7288cfc3670", + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", "owners": [ "@exact:test" ] @@ -91,8 +91,8 @@ "path": "specs/aps-cli/aps-cli.spec.md", "kind": "file", "mode": 33188, - "payload_digest": "7da38113e9e1cb54d0fd6943a4a7df9b02d6e2c2c0d50948b1a8d63ac755229e", - "entry_digest": "f637fac124c81bb1dff79c11619c192d1c8df231277aa1a54514cdc766dc262a", + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", "owners": [ "aps-cli" ] @@ -111,8 +111,8 @@ "path": "specs/aps-cli/requirements.md", "kind": "file", "mode": 33188, - "payload_digest": "f5234d71a70bb5e836a8b83909ad8146757d4dd474e5e99c4430444604e572b8", - "entry_digest": "deb3ed737b4e929d21b6633ec912ff587273d37a3dff57fae51953f98bf2b2a7", + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", "owners": [ "aps-cli" ] @@ -131,8 +131,8 @@ "path": "specs/aps-cli/testing.md", "kind": "file", "mode": 33188, - "payload_digest": "f299b5b0fe35a9e1c65fc5d13b05e2cac7ac130dc86e94ab436b6818db9cb30a", - "entry_digest": "b23e62877a76ebeb4476e82c42cdde4a5e423eb62dadc9d13760104ac4e4903e", + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", "owners": [ "aps-cli" ] diff --git a/specs/aps-cli/aps-cli.spec.md b/specs/aps-cli/aps-cli.spec.md index 0323b11..256912e 100644 --- a/specs/aps-cli/aps-cli.spec.md +++ b/specs/aps-cli/aps-cli.spec.md @@ -1,6 +1,6 @@ --- module: aps-cli -version: 19 +version: 20 status: active files: - Sources/aps/Aps.swift @@ -150,3 +150,4 @@ Exit codes (sysexits-aligned): | 2026-07-18 | CHG-0019-add-powershell-smoke-script-and-windows-latest-smoke-ci-for-issue-45: Add PowerShell smoke script and windows-latest smoke CI for issue 45 | | 2026-07-18 | CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46: Prove swift test on windows-latest and portable APS_HOME env tests for issue 46 | | 2026-07-18 | CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on: Error contract: exit-code taxonomy and JSON error envelope (issue 31, rebuilt on corruptState main) | +| 2026-07-19 | CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on: Error contract: exit-code taxonomy and JSON error envelope (issue 31, rebuilt on corruptState main) | From 82b9161a6dc2655a1c4d07ed140c1118de111705 Mon Sep 17 00:00:00 2001 From: 0xLeif Date: Sat, 18 Jul 2026 18:43:22 -0600 Subject: [PATCH 3/3] Fix: make corruptState MainActor test async for Linux Sync @MainActor XCTest methods break Linux package test discovery; async throws matches the rest of APSTests and unblocks linux-smoke. Co-authored-by: Cursor --- .../approvals.json | 345 ++++++++++++++++++ .../state.json | 2 +- .../verification-attempts.json | 24 ++ .../verification.json | 12 +- .../approvals.json | 66 ++++ .../state.json | 2 +- .../verification-attempts.json | 15 + .../verification.json | 12 +- .../approvals.json | 239 ++++++++++++ .../state.json | 2 +- .../verification-attempts.json | 18 + .../verification.json | 12 +- .../approvals.json | 250 +++++++++++++ .../state.json | 2 +- .../verification-attempts.json | 19 + .../verification.json | 12 +- .../approvals.json | 219 +++++++++++ .../state.json | 2 +- .../verification-attempts.json | 18 + .../verification.json | 12 +- .../approvals.json | 199 ++++++++++ .../state.json | 2 +- .../verification-attempts.json | 18 + .../verification.json | 12 +- .../approvals.json | 221 +++++++++++ .../state.json | 2 +- .../verification-attempts.json | 20 + .../verification.json | 12 +- .../approvals.json | 86 +++++ .../state.json | 2 +- .../verification-attempts.json | 15 + .../verification.json | 12 +- .../approvals.json | 148 ++++++++ .../state.json | 2 +- .../verification-attempts.json | 17 + .../verification.json | 12 +- .../approvals.json | 181 ++++++++- .../state.json | 2 +- .../verification-attempts.json | 17 + .../verification.json | 12 +- Tests/apsTests/APSTests.swift | 2 +- 41 files changed, 2205 insertions(+), 72 deletions(-) diff --git a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/approvals.json b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/approvals.json index 408e657..386cc16 100644 --- a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/approvals.json +++ b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/approvals.json @@ -174,6 +174,13 @@ "timestamp": 1784419787, "digest": "05505e1602efcfb625965b2f738e95890148ccdffdf9fcb0d357241e70b56c45", "note": null + }, + { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784421585, + "digest": "044e678fb707220efe68e6b4dcbe97af67b88d6a62a0b33c5d7eff759150f968", + "note": "Re-accept after #50 Linux test fix." } ], "reopenings": [ @@ -6298,6 +6305,344 @@ }, "stale_acceptance_input_digest": "327e31058a0c1bc8562431b4c7eb22d876d9c233e0ec00d0050c2d4e0ced7894", "current_acceptance_input_digest": "d324404d04426ec1b4dd71ff943c413c8128300cda5a0b15951eab236b12f7df" + }, + { + "schema_version": 1, + "change_id": "CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate", + "actor": "agent:cursor", + "reason": "Stale after Linux MainActor async test fix on #50.", + "timestamp": 1784421572, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419787, + "digest": "05505e1602efcfb625965b2f738e95890148ccdffdf9fcb0d357241e70b56c45", + "note": null + }, + "prior_verification": { + "timestamp": 1784419778, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "73c000607b3050c54981b4c29532280dd08bf00b7a15c8ec1801e045fa5496c9", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "d324404d04426ec1b4dd71ff943c413c8128300cda5a0b15951eab236b12f7df", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".github/workflows/ci.yml", + "kind": "file", + "mode": 33188, + "payload_digest": "a902f7c6785bb487278bfb39c95d593a45a8695f5245a9e5b9909d810410e6a8", + "entry_digest": "00a1986a1f0e06e1cbd4d3c3e933b240c5cb457a554e86515ba3db8241f7a263", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".github/workflows/linux-smoke.yml", + "kind": "file", + "mode": 33188, + "payload_digest": "7a7f76bbc068b14e9945a3add8c1f1d812362d810db6af6c4c9b60959d54f5c3", + "entry_digest": "db8fe6d1745786e008c9b0f6d2631cbf6a9e094763f305cfe07bfbc4444b0535", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".github/workflows/trust.yml", + "kind": "file", + "mode": 33188, + "payload_digest": "e165929994150d856d05ad048d8e1032e09df989c78ea3f1390d4e885b50af56", + "entry_digest": "e405b6225fdb502cfae9b22a9c14e21be8d1715bbaf8d56cdfd178bb8e173cb9", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".github/workflows/windows-smoke.yml", + "kind": "file", + "mode": 33188, + "payload_digest": "42c3f4aff3a36ed9e478aae454a3029198fa28a1abd671147f5e18e7bd69f9aa", + "entry_digest": "05e1c4951acb0c353f8b41e406511ede182d070133974e3a2789d5cd8f87908a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/.gitignore", + "kind": "file", + "mode": 33188, + "payload_digest": "a3129d6f93250ade8dbacfc73bc7eeae0cc47c2f7032142ca47cb4f1ffb2483e", + "entry_digest": "9badbf40b83d05f58bafda0fc2cafccfe726e4da7e6e67ef513e822989e13f04", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "3b200adf8860f60a6ebbb7bd22278d65d36c9fb8d9dd7529cf7eba7635f9bb59", + "entry_digest": "62a4ea5935aca0821d1aeeb2b5113dda9561feaf0385be503f4cef23bbf99c7b", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/config.toml", + "kind": "file", + "mode": 33188, + "payload_digest": "54a83f6a4a252649bac390d2e936aa0815711fba86b6bfc8ea8fff2fffdfd29b", + "entry_digest": "e60f979233a7db75ce63f4ef42d6f1f7676ad1655a438b9baf78558aba60ec3e", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/registry.toml", + "kind": "file", + "mode": 33188, + "payload_digest": "c423be1a5cf87318f85dc252fe0acd1c1486c5224ddc2d8e19bea1ac9c69c820", + "entry_digest": "7e1f068900ced849b8d1028ca40165fbdc5280ae7f53452f0e57e2710d895848", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/sdd.json", + "kind": "file", + "mode": 33188, + "payload_digest": "2d5fb3058b1ee4ce584c3cda9410c193c4893e272ed459205e58bfde06afc7b0", + "entry_digest": "8c6b11fc5787eb04e7ee651eb15fbf98fc3ea22db37e65423e3d75f99c09df19", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/version", + "kind": "file", + "mode": 33188, + "payload_digest": "f9893302cd3158f3b5aea394dcd2a91574869e9e6ff69e9235b10a3bf8c983fb", + "entry_digest": "f980ba79f6c953bed30303c6b87d8e868ad6a7f4114bf0e745c9099255e665b0", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Scripts/smoke.ps1", + "kind": "file", + "mode": 33188, + "payload_digest": "d476db9d571042578d8de33907014ecfa669f05054828886d0ceeb5f2e27c351", + "entry_digest": "164c2694507ba3d0e8133f86124b68ea64295cc1c41b5f6d11361333eb1c661b", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Scripts/smoke.sh", + "kind": "file", + "mode": 33261, + "payload_digest": "2edf3b5ea543dcc7d6c40b720313b4a5d5a3931a9bd22b3874cdd641ac1132a0", + "entry_digest": "d6ba00e8c657b061d382405e5eb3c6876fd12aa82538f2015143d07c81daba88", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Sources/aps/Aps.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "c103edfab09948f06eb51023ba1f557de3be70cfc35a5c18e2f83feadde7f8f8", + "entry_digest": "b42ff2ad1138fbb261e2524a79aaec902d3c6be3e41a75a0b70d90340c83b1d0", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/CLIOutput.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "18ccec04502ed6fcb8aec0e684e34f5889f7aa04241964f4816b046bd97b6dd2", + "entry_digest": "5b215aa458464414befc6c49713d4aebe6b5839cce22c0c5489fddd70ada2dd3", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoKey.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "c6ac05ed87e9fb6a4ba0f287d67dc18cfe27211f1e37628d1f7a02eec6e90065", + "entry_digest": "4a73f07438c6db33b397f2ddc808134bdc4b6cc34222edf152e121d2f42c3ab6", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoState.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "62cd24efb557b5cef77e7aae804f933f4b53caf47195968764f05cc5a0a0d9b8", + "entry_digest": "fb710f893d343d67c1fd7a5a5cc50c5c49caf0aa182e5af17ee7c97ff98f8122", + "owners": [ + "state-store" + ] + }, + { + "path": "Sources/aps/Dependencies.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "14fced21000b935ed106a6a039bf574ed6cb9d8ba1598dc82001fbcd418a57a4", + "entry_digest": "0218077403628c671d6e778f6465e46e958a2c8f589d707f42a775f7da5cc799", + "owners": [ + "state-store" + ] + }, + { + "path": "Sources/aps/StateStore.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "5abe29abecab6e6f5c110fe30391ee7c27dc119b727a40153b239270dfa32363", + "entry_digest": "5e7b6967feb8e7b23ab7a4025a44920cd49239567ee59acfb71af64fcb985eb3", + "owners": [ + "state-store" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "owners": [ + "@exact:test" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/state-store/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "12d848cab584c8a64f7da8bee796b581ec3b1b5efc72448299330dd493f39aa7", + "entry_digest": "76b734c278c05e3e74ff8f41dbb07aac3dcc7b1fbda64adcf32691e31365317c", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "6d94234b7a6b7d4dab2b432a46d1d59449941bd031b7e6e841a13d7830305ef1", + "entry_digest": "42a35cb8eed79a217a0016bc9ab3d9a5cc41b4c20f6f950e66edc40c21ac6d72", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/state-store.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "18ab2c5e1aaf9bf6c7e29195bcaaa987d5668aa79b0b17fd090fdfc3b51c4df8", + "entry_digest": "ff0141bc011bcf041f5ff3ecf0c40f910e73cab965c634708a2f21cbff5afce1", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "0f02b782887467b358568bf22c2d68f39c40a00d56143bd6c64abdf8198cf433", + "entry_digest": "8f828f3625d4f24c3c71852bd28f76aac97cd31ace2a18d1a901a3d34642de8d", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "63705355034895d0dfab654892140beecd317afb08530917c8cf4b308824ab63", + "entry_digest": "88818028e56f72fbfd2bdf24012faf448fc049911bf77a2ecb1f32ba1c3e6389", + "owners": [ + "state-store" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-001", + "REQ-aps-cli-010", + "REQ-aps-cli-011", + "REQ-aps-cli-012", + "REQ-aps-cli-013", + "REQ-state-store-001", + "REQ-state-store-010", + "REQ-state-store-011" + ] + }, + "stale_acceptance_input_digest": "d324404d04426ec1b4dd71ff943c413c8128300cda5a0b15951eab236b12f7df", + "current_acceptance_input_digest": "5c5f048deb3237956c99b76abd2a34e70edd6b31ee9c6a50ec19d611914d2203" } ] } diff --git a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/state.json b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/state.json index 1298d8e..2200cd3 100644 --- a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/state.json +++ b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "6f18ccb3015b4fc59021e690fefbf5947ade5c73", "created_at": 1784399179, - "updated_at": 1784419787, + "updated_at": 1784421585, "affected_specs": [ "aps-cli", "state-store" diff --git a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification-attempts.json b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification-attempts.json index cf850dd..e300921 100644 --- a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification-attempts.json +++ b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification-attempts.json @@ -552,6 +552,30 @@ "REQ-state-store-010", "REQ-state-store-011" ] + }, + { + "timestamp": 1784421577, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", + "contract_digest": "73c000607b3050c54981b4c29532280dd08bf00b7a15c8ec1801e045fa5496c9", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-001", + "REQ-aps-cli-010", + "REQ-aps-cli-011", + "REQ-aps-cli-012", + "REQ-aps-cli-013", + "REQ-state-store-001", + "REQ-state-store-010", + "REQ-state-store-011" + ] } ] } diff --git a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification.json b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification.json index 37d1c9d..d5968a5 100644 --- a/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification.json +++ b/.specsync/changes/CHG-0004-ship-aps-0-2-0-agent-ready-json-state-dir-watch-and-profile-filestate/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784419778, - "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "timestamp": 1784421577, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", "contract_digest": "73c000607b3050c54981b4c29532280dd08bf00b7a15c8ec1801e045fa5496c9", - "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", - "acceptance_input_digest": "d324404d04426ec1b4dd71ff943c413c8128300cda5a0b15951eab236b12f7df", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "acceptance_input_digest": "5c5f048deb3237956c99b76abd2a34e70edd6b31ee9c6a50ec19d611914d2203", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -191,8 +191,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", - "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "payload_digest": "075c7e91ee2bef3a339e3316c13262fc2ba9993e5a103a698057ea61fbc969ae", + "entry_digest": "e1c5bcab674739bf30299509bacf6192509efa71a2987fa51daa22be0c58c64d", "owners": [ "@exact:test" ] diff --git a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/approvals.json b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/approvals.json index cfb8986..f9405eb 100644 --- a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/approvals.json +++ b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/approvals.json @@ -83,6 +83,13 @@ "timestamp": 1784419817, "digest": "a7d0b2bedd0a5cc80d5c535ff1a7d2c1549dd9d6ca2b0d3d4c971569f6c6e282", "note": null + }, + { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784421604, + "digest": "58cfb63fe2bd66d1db319eda2063a1045b23cac76100ec870646e3d680fc0a02", + "note": "Re-accept after #50 Linux test fix." } ], "reopenings": [ @@ -675,6 +682,65 @@ }, "stale_acceptance_input_digest": "942c27d374fcd61e124b5fca51eddd95165ddb2a195ea84a2f45d8e2ebfab28b", "current_acceptance_input_digest": "2c4b73f9867fc043c1bb4d4f2b2c1f8c0fac44cc9199a5f0a5353f94864f8c50" + }, + { + "schema_version": 1, + "change_id": "CHG-0007-hermetic-userdefaults-in-tests", + "actor": "agent:cursor", + "reason": "Stale after Linux MainActor async test fix on #50.", + "timestamp": 1784421592, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419817, + "digest": "a7d0b2bedd0a5cc80d5c535ff1a7d2c1549dd9d6ca2b0d3d4c971569f6c6e282", + "note": null + }, + "prior_verification": { + "timestamp": 1784419804, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "0c72a7f1bfaa780b21b7b2ac7904ab5352e8186a8293caf6f91354fddff40610", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "2c4b73f9867fc043c1bb4d4f2b2c1f8c0fac44cc9199a5f0a5353f94864f8c50", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "892737ad12d482e123f7e036d8af1cb0fd3aabb465f8c9ac561ed79af04a33bc", + "entry_digest": "c84485e5707378b3f73e17a2c56611d32c600a7ab1da4b428e69d3c0c5eea9a7", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "owners": [ + "@exact:test" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [] + }, + "stale_acceptance_input_digest": "2c4b73f9867fc043c1bb4d4f2b2c1f8c0fac44cc9199a5f0a5353f94864f8c50", + "current_acceptance_input_digest": "1acea629a12847a0c085861bdfb4161a991bdf1013b227a1c5877ca440105070" } ] } diff --git a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/state.json b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/state.json index 2f13d65..c0b9138 100644 --- a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/state.json +++ b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "50eddbbb5c6bf829995523f0a9cd8f75f82f7cc6", "created_at": 1784403987, - "updated_at": 1784419817, + "updated_at": 1784421604, "affected_specs": [], "affected_paths": [ "Tests/apsTests/APSTests.swift", diff --git a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification-attempts.json b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification-attempts.json index 6b24be9..c736980 100644 --- a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification-attempts.json +++ b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification-attempts.json @@ -165,6 +165,21 @@ } ], "requirement_ids": [] + }, + { + "timestamp": 1784421596, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", + "contract_digest": "0c72a7f1bfaa780b21b7b2ac7904ab5352e8186a8293caf6f91354fddff40610", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [] } ] } diff --git a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification.json b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification.json index f81c3ee..9cb708c 100644 --- a/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification.json +++ b/.specsync/changes/CHG-0007-hermetic-userdefaults-in-tests/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784419804, - "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "timestamp": 1784421596, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", "contract_digest": "0c72a7f1bfaa780b21b7b2ac7904ab5352e8186a8293caf6f91354fddff40610", - "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", - "acceptance_input_digest": "2c4b73f9867fc043c1bb4d4f2b2c1f8c0fac44cc9199a5f0a5353f94864f8c50", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "acceptance_input_digest": "1acea629a12847a0c085861bdfb4161a991bdf1013b227a1c5877ca440105070", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -21,8 +21,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", - "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "payload_digest": "075c7e91ee2bef3a339e3316c13262fc2ba9993e5a103a698057ea61fbc969ae", + "entry_digest": "e1c5bcab674739bf30299509bacf6192509efa71a2987fa51daa22be0c58c64d", "owners": [ "@exact:test" ] diff --git a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/approvals.json b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/approvals.json index 3a9e9f9..b3618f4 100644 --- a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/approvals.json +++ b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/approvals.json @@ -118,6 +118,13 @@ "timestamp": 1784419846, "digest": "1abc6ae0af8ee0a88c69ae5b625aecbcd74d3a0d9bea7b86cb6405b191c09712", "note": null + }, + { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784421624, + "digest": "a18a3395b998ebc1d0ac10e7b49df0132b4e402771d75f820f241892bf9ff8b7", + "note": "Re-accept after #50 Linux test fix." } ], "reopenings": [ @@ -3368,6 +3375,238 @@ }, "stale_acceptance_input_digest": "566af40d47f4997a63a92b5d850405378971c835b789c31b3b46355d497b5544", "current_acceptance_input_digest": "082092c40929e1e206902b7668aef91ead9f4f64ff1e2c11f07459db5772f1d6" + }, + { + "schema_version": 1, + "change_id": "CHG-0011-dogfood-observeddependency-demostats-for-issue-18", + "actor": "agent:cursor", + "reason": "Stale after Linux MainActor async test fix on #50.", + "timestamp": 1784421611, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419846, + "digest": "1abc6ae0af8ee0a88c69ae5b625aecbcd74d3a0d9bea7b86cb6405b191c09712", + "note": null + }, + "prior_verification": { + "timestamp": 1784419836, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "1defd9f7ba999c7d4156cd0b80b236b4a173d5ba0985832e9f89b8b2ed5155ca", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "082092c40929e1e206902b7668aef91ead9f4f64ff1e2c11f07459db5772f1d6", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "7379aee61297176f794273cd89e1456ff8cb7fa65acddd80bf6319aef651c0f5", + "entry_digest": "f10df0f2651b9a2bd8f53e246887e85705bf80dcd3879d88881867bff72e316a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Scripts/smoke.sh", + "kind": "file", + "mode": 33261, + "payload_digest": "2edf3b5ea543dcc7d6c40b720313b4a5d5a3931a9bd22b3874cdd641ac1132a0", + "entry_digest": "d6ba00e8c657b061d382405e5eb3c6876fd12aa82538f2015143d07c81daba88", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Sources/aps/Aps.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "c103edfab09948f06eb51023ba1f557de3be70cfc35a5c18e2f83feadde7f8f8", + "entry_digest": "b42ff2ad1138fbb261e2524a79aaec902d3c6be3e41a75a0b70d90340c83b1d0", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/CLIOutput.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "18ccec04502ed6fcb8aec0e684e34f5889f7aa04241964f4816b046bd97b6dd2", + "entry_digest": "5b215aa458464414befc6c49713d4aebe6b5839cce22c0c5489fddd70ada2dd3", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoState.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "62cd24efb557b5cef77e7aae804f933f4b53caf47195968764f05cc5a0a0d9b8", + "entry_digest": "fb710f893d343d67c1fd7a5a5cc50c5c49caf0aa182e5af17ee7c97ff98f8122", + "owners": [ + "state-store" + ] + }, + { + "path": "Sources/aps/Dependencies.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "14fced21000b935ed106a6a039bf574ed6cb9d8ba1598dc82001fbcd418a57a4", + "entry_digest": "0218077403628c671d6e778f6465e46e958a2c8f589d707f42a775f7da5cc799", + "owners": [ + "state-store" + ] + }, + { + "path": "Sources/aps/StateStore.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "5abe29abecab6e6f5c110fe30391ee7c27dc119b727a40153b239270dfa32363", + "entry_digest": "5e7b6967feb8e7b23ab7a4025a44920cd49239567ee59acfb71af64fcb985eb3", + "owners": [ + "state-store" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "owners": [ + "@exact:test" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/state-store/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "12d848cab584c8a64f7da8bee796b581ec3b1b5efc72448299330dd493f39aa7", + "entry_digest": "76b734c278c05e3e74ff8f41dbb07aac3dcc7b1fbda64adcf32691e31365317c", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "6d94234b7a6b7d4dab2b432a46d1d59449941bd031b7e6e841a13d7830305ef1", + "entry_digest": "42a35cb8eed79a217a0016bc9ab3d9a5cc41b4c20f6f950e66edc40c21ac6d72", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/state-store.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "18ab2c5e1aaf9bf6c7e29195bcaaa987d5668aa79b0b17fd090fdfc3b51c4df8", + "entry_digest": "ff0141bc011bcf041f5ff3ecf0c40f910e73cab965c634708a2f21cbff5afce1", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "0f02b782887467b358568bf22c2d68f39c40a00d56143bd6c64abdf8198cf433", + "entry_digest": "8f828f3625d4f24c3c71852bd28f76aac97cd31ace2a18d1a901a3d34642de8d", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "63705355034895d0dfab654892140beecd317afb08530917c8cf4b308824ab63", + "entry_digest": "88818028e56f72fbfd2bdf24012faf448fc049911bf77a2ecb1f32ba1c3e6389", + "owners": [ + "state-store" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-014", + "REQ-state-store-012" + ] + }, + "stale_acceptance_input_digest": "082092c40929e1e206902b7668aef91ead9f4f64ff1e2c11f07459db5772f1d6", + "current_acceptance_input_digest": "51dc359eb8eeca0b1a8a9b7bfdb43c3f10b3fc007039a9969fd76fda797b96c4" } ] } diff --git a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/state.json b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/state.json index 71e0eb7..7158962 100644 --- a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/state.json +++ b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "4daccc6061dafcbcb6a9639cf7f2087b7b1e783d", "created_at": 1784406105, - "updated_at": 1784419846, + "updated_at": 1784421624, "affected_specs": [ "aps-cli", "state-store" diff --git a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification-attempts.json b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification-attempts.json index 6ed87b8..9771671 100644 --- a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification-attempts.json +++ b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification-attempts.json @@ -306,6 +306,24 @@ "REQ-aps-cli-014", "REQ-state-store-012" ] + }, + { + "timestamp": 1784421615, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", + "contract_digest": "1defd9f7ba999c7d4156cd0b80b236b4a173d5ba0985832e9f89b8b2ed5155ca", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-014", + "REQ-state-store-012" + ] } ] } diff --git a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification.json b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification.json index 4bfa4d6..295e8da 100644 --- a/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification.json +++ b/.specsync/changes/CHG-0011-dogfood-observeddependency-demostats-for-issue-18/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784419836, - "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "timestamp": 1784421615, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", "contract_digest": "1defd9f7ba999c7d4156cd0b80b236b4a173d5ba0985832e9f89b8b2ed5155ca", - "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", - "acceptance_input_digest": "082092c40929e1e206902b7668aef91ead9f4f64ff1e2c11f07459db5772f1d6", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "acceptance_input_digest": "51dc359eb8eeca0b1a8a9b7bfdb43c3f10b3fc007039a9969fd76fda797b96c4", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -91,8 +91,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", - "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "payload_digest": "075c7e91ee2bef3a339e3316c13262fc2ba9993e5a103a698057ea61fbc969ae", + "entry_digest": "e1c5bcab674739bf30299509bacf6192509efa71a2987fa51daa22be0c58c64d", "owners": [ "@exact:test" ] diff --git a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/approvals.json b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/approvals.json index 155751b..558431d 100644 --- a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/approvals.json +++ b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/approvals.json @@ -118,6 +118,13 @@ "timestamp": 1784419871, "digest": "48e736ceaf21618f62a07914dc8c6d1d599204639ce6fd22767e0b9eb045a43b", "note": null + }, + { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784421644, + "digest": "ac9cf36e63138cba805bb43130ba4cd922d22e3abe17ff245a94b42369e5e0b9", + "note": "Re-accept after #50 Linux test fix." } ], "reopenings": [ @@ -3036,6 +3043,249 @@ }, "stale_acceptance_input_digest": "b9946670353d183d24c7bbde1b10e0fa205b4ab2698378f0f0da54196ffc9e99", "current_acceptance_input_digest": "9f35fe5231a0a0746c534b0b41a5c738a60f38004117e65c59d4ed6536fa99ad" + }, + { + "schema_version": 1, + "change_id": "CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16", + "actor": "agent:cursor", + "reason": "Stale after Linux MainActor async test fix on #50.", + "timestamp": 1784421631, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419871, + "digest": "48e736ceaf21618f62a07914dc8c6d1d599204639ce6fd22767e0b9eb045a43b", + "note": null + }, + "prior_verification": { + "timestamp": 1784419863, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "914c204b1d836d6b3de14e4908e2813862014a023e5d4244f1758d9486b3cd80", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "9f35fe5231a0a0746c534b0b41a5c738a60f38004117e65c59d4ed6536fa99ad", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "634090de65a9412ba78ab19c40159c18c5de80df8165f8aef4bc259cf12e0402", + "entry_digest": "a29e2c49a47fbea8f3b4609e37567ba815bd772b5f718565894f9e3d585a547c", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "GOAL.md", + "kind": "file", + "mode": 33188, + "payload_digest": "20146bfa50165791ec6059f6245716170c43b23106e5123ec590a306a590a966", + "entry_digest": "68fbffe2a6cce1f402c5dcebbd733d2b1f3d5e3d259a0ee91dfc23bbc034fc56", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Scripts/smoke.sh", + "kind": "file", + "mode": 33261, + "payload_digest": "2edf3b5ea543dcc7d6c40b720313b4a5d5a3931a9bd22b3874cdd641ac1132a0", + "entry_digest": "d6ba00e8c657b061d382405e5eb3c6876fd12aa82538f2015143d07c81daba88", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Sources/aps/Aps.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "c103edfab09948f06eb51023ba1f557de3be70cfc35a5c18e2f83feadde7f8f8", + "entry_digest": "b42ff2ad1138fbb261e2524a79aaec902d3c6be3e41a75a0b70d90340c83b1d0", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/CLIOutput.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "18ccec04502ed6fcb8aec0e684e34f5889f7aa04241964f4816b046bd97b6dd2", + "entry_digest": "5b215aa458464414befc6c49713d4aebe6b5839cce22c0c5489fddd70ada2dd3", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoKey.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "c6ac05ed87e9fb6a4ba0f287d67dc18cfe27211f1e37628d1f7a02eec6e90065", + "entry_digest": "4a73f07438c6db33b397f2ddc808134bdc4b6cc34222edf152e121d2f42c3ab6", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoState.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "62cd24efb557b5cef77e7aae804f933f4b53caf47195968764f05cc5a0a0d9b8", + "entry_digest": "fb710f893d343d67c1fd7a5a5cc50c5c49caf0aa182e5af17ee7c97ff98f8122", + "owners": [ + "state-store" + ] + }, + { + "path": "Sources/aps/StateStore.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "5abe29abecab6e6f5c110fe30391ee7c27dc119b727a40153b239270dfa32363", + "entry_digest": "5e7b6967feb8e7b23ab7a4025a44920cd49239567ee59acfb71af64fcb985eb3", + "owners": [ + "state-store" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "owners": [ + "@exact:test" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/state-store/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "12d848cab584c8a64f7da8bee796b581ec3b1b5efc72448299330dd493f39aa7", + "entry_digest": "76b734c278c05e3e74ff8f41dbb07aac3dcc7b1fbda64adcf32691e31365317c", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "6d94234b7a6b7d4dab2b432a46d1d59449941bd031b7e6e841a13d7830305ef1", + "entry_digest": "42a35cb8eed79a217a0016bc9ab3d9a5cc41b4c20f6f950e66edc40c21ac6d72", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/state-store.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "18ab2c5e1aaf9bf6c7e29195bcaaa987d5668aa79b0b17fd090fdfc3b51c4df8", + "entry_digest": "ff0141bc011bcf041f5ff3ecf0c40f910e73cab965c634708a2f21cbff5afce1", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "0f02b782887467b358568bf22c2d68f39c40a00d56143bd6c64abdf8198cf433", + "entry_digest": "8f828f3625d4f24c3c71852bd28f76aac97cd31ace2a18d1a901a3d34642de8d", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "63705355034895d0dfab654892140beecd317afb08530917c8cf4b308824ab63", + "entry_digest": "88818028e56f72fbfd2bdf24012faf448fc049911bf77a2ecb1f32ba1c3e6389", + "owners": [ + "state-store" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-001", + "REQ-aps-cli-015", + "REQ-state-store-013" + ] + }, + "stale_acceptance_input_digest": "9f35fe5231a0a0746c534b0b41a5c738a60f38004117e65c59d4ed6536fa99ad", + "current_acceptance_input_digest": "79409c5fbce2c9b6a1e77b70e4f2806fc2fb23e50736d9204153cfc51e911887" } ] } diff --git a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/state.json b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/state.json index 23ac110..0af6317 100644 --- a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/state.json +++ b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "6312f8d8379c3b87b05c3eb4436c0b503f161d1a", "created_at": 1784406691, - "updated_at": 1784419871, + "updated_at": 1784421644, "affected_specs": [ "aps-cli", "state-store" diff --git a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification-attempts.json b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification-attempts.json index 846f682..3426dfc 100644 --- a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification-attempts.json +++ b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification-attempts.json @@ -304,6 +304,25 @@ "REQ-aps-cli-015", "REQ-state-store-013" ] + }, + { + "timestamp": 1784421635, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", + "contract_digest": "914c204b1d836d6b3de14e4908e2813862014a023e5d4244f1758d9486b3cd80", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-001", + "REQ-aps-cli-015", + "REQ-state-store-013" + ] } ] } diff --git a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification.json b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification.json index d38045b..a869988 100644 --- a/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification.json +++ b/.specsync/changes/CHG-0012-dogfood-securestate-secret-keychain-demo-key-for-issue-16/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784419863, - "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "timestamp": 1784421635, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", "contract_digest": "914c204b1d836d6b3de14e4908e2813862014a023e5d4244f1758d9486b3cd80", - "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", - "acceptance_input_digest": "9f35fe5231a0a0746c534b0b41a5c738a60f38004117e65c59d4ed6536fa99ad", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "acceptance_input_digest": "79409c5fbce2c9b6a1e77b70e4f2806fc2fb23e50736d9204153cfc51e911887", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -101,8 +101,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", - "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "payload_digest": "075c7e91ee2bef3a339e3316c13262fc2ba9993e5a103a698057ea61fbc969ae", + "entry_digest": "e1c5bcab674739bf30299509bacf6192509efa71a2987fa51daa22be0c58c64d", "owners": [ "@exact:test" ] diff --git a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/approvals.json b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/approvals.json index 1ed5d61..61eb93b 100644 --- a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/approvals.json +++ b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/approvals.json @@ -104,6 +104,13 @@ "timestamp": 1784419900, "digest": "f9a003e2d733fa7184dd1e106acf686a2b3deacd158709d87ab46cdd0aed2074", "note": null + }, + { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784421664, + "digest": "b4866924ac17e7b9c899d49c0b7f99092192a609acf531bf45ec60678df4fc89", + "note": "Re-accept after #50 Linux test fix." } ], "reopenings": [ @@ -2438,6 +2445,218 @@ }, "stale_acceptance_input_digest": "a5e53b8f819cb08853a1a7d40dc25bb344a4e892493cac20363ab10742d1ded5", "current_acceptance_input_digest": "c5a828759dcfb8c0139d3276e918b32c538b1f6811716853f8f0ce43b97b63d7" + }, + { + "schema_version": 1, + "change_id": "CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17", + "actor": "agent:cursor", + "reason": "Stale after Linux MainActor async test fix on #50.", + "timestamp": 1784421651, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419900, + "digest": "f9a003e2d733fa7184dd1e106acf686a2b3deacd158709d87ab46cdd0aed2074", + "note": null + }, + "prior_verification": { + "timestamp": 1784419888, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "55d93919744f623103fb1d77e2cdb833a2d95075e3fc62ac31c6d09d506223b6", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "c5a828759dcfb8c0139d3276e918b32c538b1f6811716853f8f0ce43b97b63d7", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "48d156cde46751f23dfe9c134d35c95faf3b8f173783dfb0b60872b118ab5cfb", + "entry_digest": "36a1e742298c093ae2ba5dd696140c37e443aacf8c11fc98903d3f57cab409ad", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Sources/aps/Aps.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "c103edfab09948f06eb51023ba1f557de3be70cfc35a5c18e2f83feadde7f8f8", + "entry_digest": "b42ff2ad1138fbb261e2524a79aaec902d3c6be3e41a75a0b70d90340c83b1d0", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/CLIOutput.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "18ccec04502ed6fcb8aec0e684e34f5889f7aa04241964f4816b046bd97b6dd2", + "entry_digest": "5b215aa458464414befc6c49713d4aebe6b5839cce22c0c5489fddd70ada2dd3", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoKey.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "c6ac05ed87e9fb6a4ba0f287d67dc18cfe27211f1e37628d1f7a02eec6e90065", + "entry_digest": "4a73f07438c6db33b397f2ddc808134bdc4b6cc34222edf152e121d2f42c3ab6", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/StateStore.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "5abe29abecab6e6f5c110fe30391ee7c27dc119b727a40153b239270dfa32363", + "entry_digest": "5e7b6967feb8e7b23ab7a4025a44920cd49239567ee59acfb71af64fcb985eb3", + "owners": [ + "state-store" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "owners": [ + "@exact:test" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/state-store/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "12d848cab584c8a64f7da8bee796b581ec3b1b5efc72448299330dd493f39aa7", + "entry_digest": "76b734c278c05e3e74ff8f41dbb07aac3dcc7b1fbda64adcf32691e31365317c", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "6d94234b7a6b7d4dab2b432a46d1d59449941bd031b7e6e841a13d7830305ef1", + "entry_digest": "42a35cb8eed79a217a0016bc9ab3d9a5cc41b4c20f6f950e66edc40c21ac6d72", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/state-store.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "18ab2c5e1aaf9bf6c7e29195bcaaa987d5668aa79b0b17fd090fdfc3b51c4df8", + "entry_digest": "ff0141bc011bcf041f5ff3ecf0c40f910e73cab965c634708a2f21cbff5afce1", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "0f02b782887467b358568bf22c2d68f39c40a00d56143bd6c64abdf8198cf433", + "entry_digest": "8f828f3625d4f24c3c71852bd28f76aac97cd31ace2a18d1a901a3d34642de8d", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "63705355034895d0dfab654892140beecd317afb08530917c8cf4b308824ab63", + "entry_digest": "88818028e56f72fbfd2bdf24012faf448fc049911bf77a2ecb1f32ba1c3e6389", + "owners": [ + "state-store" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-016", + "REQ-state-store-014" + ] + }, + "stale_acceptance_input_digest": "c5a828759dcfb8c0139d3276e918b32c538b1f6811716853f8f0ce43b97b63d7", + "current_acceptance_input_digest": "96fa65a2560228e29de51ad5da3928ca55af5342ae682189cf0ff42428301942" } ] } diff --git a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/state.json b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/state.json index 4728435..c3452df 100644 --- a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/state.json +++ b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "d9500d41e7cfee56b7c40fc25886265c39f97e28", "created_at": 1784407712, - "updated_at": 1784419900, + "updated_at": 1784421664, "affected_specs": [ "aps-cli", "state-store" diff --git a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification-attempts.json b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification-attempts.json index 54841a8..59fae5a 100644 --- a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification-attempts.json +++ b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification-attempts.json @@ -252,6 +252,24 @@ "REQ-aps-cli-016", "REQ-state-store-014" ] + }, + { + "timestamp": 1784421656, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", + "contract_digest": "55d93919744f623103fb1d77e2cdb833a2d95075e3fc62ac31c6d09d506223b6", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-016", + "REQ-state-store-014" + ] } ] } diff --git a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification.json b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification.json index 5db443d..c41b585 100644 --- a/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification.json +++ b/.specsync/changes/CHG-0013-dogfood-appstate-slice-via-profilename-for-issue-17/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784419888, - "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "timestamp": 1784421656, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", "contract_digest": "55d93919744f623103fb1d77e2cdb833a2d95075e3fc62ac31c6d09d506223b6", - "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", - "acceptance_input_digest": "c5a828759dcfb8c0139d3276e918b32c538b1f6811716853f8f0ce43b97b63d7", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "acceptance_input_digest": "96fa65a2560228e29de51ad5da3928ca55af5342ae682189cf0ff42428301942", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -71,8 +71,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", - "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "payload_digest": "075c7e91ee2bef3a339e3316c13262fc2ba9993e5a103a698057ea61fbc969ae", + "entry_digest": "e1c5bcab674739bf30299509bacf6192509efa71a2987fa51daa22be0c58c64d", "owners": [ "@exact:test" ] diff --git a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/approvals.json b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/approvals.json index 88c612e..866c24f 100644 --- a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/approvals.json +++ b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/approvals.json @@ -55,6 +55,13 @@ "timestamp": 1784419953, "digest": "265c48fa0a8ea4516f5d6a463fc38a22219dd9c29bc3d391fd27ed5e9d4fc2e3", "note": null + }, + { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784421684, + "digest": "457e3c891b96c1394201c882feb69b53ebb479c480be20232c081abd7d2b065c", + "note": "Re-accept after #50 Linux test fix." } ], "reopenings": [ @@ -1017,6 +1024,198 @@ }, "stale_acceptance_input_digest": "e97aa59bef307095c0459c1d9218c2cfa91d4eabde13d3f3440ce0828e086e6d", "current_acceptance_input_digest": "ab6f67e8d4afcac0384dbffb1550c3c069c9d35869377f46f00dee87f1e1c809" + }, + { + "schema_version": 1, + "change_id": "CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15", + "actor": "agent:cursor", + "reason": "Stale after Linux MainActor async test fix on #50.", + "timestamp": 1784421671, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419953, + "digest": "265c48fa0a8ea4516f5d6a463fc38a22219dd9c29bc3d391fd27ed5e9d4fc2e3", + "note": null + }, + "prior_verification": { + "timestamp": 1784419946, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "30740768dcecceea1a7c3b740c383f846f150c509523673ef373157ac3e4aae5", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "ab6f67e8d4afcac0384dbffb1550c3c069c9d35869377f46f00dee87f1e1c809", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "84d780b51267d44f88acaf91878c56e8c4b0694608d1a9c53018ce5ea7b1de47", + "entry_digest": "25c7131b7c1001ce1ff855b28384ce161faf4270fa2111e7abdac2450b244f79", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Sources/aps/DemoKey.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "c6ac05ed87e9fb6a4ba0f287d67dc18cfe27211f1e37628d1f7a02eec6e90065", + "entry_digest": "4a73f07438c6db33b397f2ddc808134bdc4b6cc34222edf152e121d2f42c3ab6", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/Dependencies.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "14fced21000b935ed106a6a039bf574ed6cb9d8ba1598dc82001fbcd418a57a4", + "entry_digest": "0218077403628c671d6e778f6465e46e958a2c8f589d707f42a775f7da5cc799", + "owners": [ + "state-store" + ] + }, + { + "path": "Sources/aps/StateStore.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "5abe29abecab6e6f5c110fe30391ee7c27dc119b727a40153b239270dfa32363", + "entry_digest": "5e7b6967feb8e7b23ab7a4025a44920cd49239567ee59acfb71af64fcb985eb3", + "owners": [ + "state-store" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "owners": [ + "@exact:test" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/state-store/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "12d848cab584c8a64f7da8bee796b581ec3b1b5efc72448299330dd493f39aa7", + "entry_digest": "76b734c278c05e3e74ff8f41dbb07aac3dcc7b1fbda64adcf32691e31365317c", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "6d94234b7a6b7d4dab2b432a46d1d59449941bd031b7e6e841a13d7830305ef1", + "entry_digest": "42a35cb8eed79a217a0016bc9ab3d9a5cc41b4c20f6f950e66edc40c21ac6d72", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/state-store.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "18ab2c5e1aaf9bf6c7e29195bcaaa987d5668aa79b0b17fd090fdfc3b51c4df8", + "entry_digest": "ff0141bc011bcf041f5ff3ecf0c40f910e73cab965c634708a2f21cbff5afce1", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "0f02b782887467b358568bf22c2d68f39c40a00d56143bd6c64abdf8198cf433", + "entry_digest": "8f828f3625d4f24c3c71852bd28f76aac97cd31ace2a18d1a901a3d34642de8d", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "63705355034895d0dfab654892140beecd317afb08530917c8cf4b308824ab63", + "entry_digest": "88818028e56f72fbfd2bdf24012faf448fc049911bf77a2ecb1f32ba1c3e6389", + "owners": [ + "state-store" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-005", + "REQ-state-store-002" + ] + }, + "stale_acceptance_input_digest": "ab6f67e8d4afcac0384dbffb1550c3c069c9d35869377f46f00dee87f1e1c809", + "current_acceptance_input_digest": "4c9f8ff6931fbab54d50a4d12d39056b35743a2e2037a357f9ce9cc99cea55cb" } ] } diff --git a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/state.json b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/state.json index 2b7ed8b..5978b2a 100644 --- a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/state.json +++ b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "cb05f64c650260c5f3960b192d3be70c0e450627", "created_at": 1784410136, - "updated_at": 1784419953, + "updated_at": 1784421684, "affected_specs": [ "aps-cli", "state-store" diff --git a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification-attempts.json b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification-attempts.json index 7d4b899..e6b2b6c 100644 --- a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification-attempts.json +++ b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification-attempts.json @@ -108,6 +108,24 @@ "REQ-aps-cli-005", "REQ-state-store-002" ] + }, + { + "timestamp": 1784421676, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", + "contract_digest": "30740768dcecceea1a7c3b740c383f846f150c509523673ef373157ac3e4aae5", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-005", + "REQ-state-store-002" + ] } ] } diff --git a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification.json b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification.json index efd53e8..7fb7348 100644 --- a/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification.json +++ b/.specsync/changes/CHG-0015-remove-unreachable-apserror-unknownkey-and-jsoncoding-decode-for-issue-15/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784419946, - "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "timestamp": 1784421676, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", "contract_digest": "30740768dcecceea1a7c3b740c383f846f150c509523673ef373157ac3e4aae5", - "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", - "acceptance_input_digest": "ab6f67e8d4afcac0384dbffb1550c3c069c9d35869377f46f00dee87f1e1c809", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "acceptance_input_digest": "4c9f8ff6931fbab54d50a4d12d39056b35743a2e2037a357f9ce9cc99cea55cb", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -51,8 +51,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", - "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "payload_digest": "075c7e91ee2bef3a339e3316c13262fc2ba9993e5a103a698057ea61fbc969ae", + "entry_digest": "e1c5bcab674739bf30299509bacf6192509efa71a2987fa51daa22be0c58c64d", "owners": [ "@exact:test" ] diff --git a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/approvals.json b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/approvals.json index 322a391..ac52d15 100644 --- a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/approvals.json +++ b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/approvals.json @@ -62,6 +62,13 @@ "timestamp": 1784419975, "digest": "7fbc1c709aea22c5e79d9baac0fb68586d6a9fe78d782de49aecfdef8fafd2ac", "note": null + }, + { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784421703, + "digest": "93492c29db66efb289d8c0fefddfbc43f4246ec7f08747065f8db18eb429039f", + "note": "Re-accept after #50 Linux test fix." } ], "reopenings": [ @@ -1348,6 +1355,220 @@ }, "stale_acceptance_input_digest": "741005d009844db59131510681a95fabef2d96b50169f7785260555f64f95726", "current_acceptance_input_digest": "4300f6de6be8880db0d5e7db904fe01f67a6b07b23288efbeee9711a9c41135c" + }, + { + "schema_version": 1, + "change_id": "CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38", + "actor": "agent:cursor", + "reason": "Stale after Linux MainActor async test fix on #50.", + "timestamp": 1784421690, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419975, + "digest": "7fbc1c709aea22c5e79d9baac0fb68586d6a9fe78d782de49aecfdef8fafd2ac", + "note": null + }, + "prior_verification": { + "timestamp": 1784419968, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "2ce0d16b39555da39844a51a6ba4f24ee62c65751cf41af3d664905ba89b4158", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "4300f6de6be8880db0d5e7db904fe01f67a6b07b23288efbeee9711a9c41135c", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "01a2570bb01e7e02aaed90e013bff057b79c0e69b6cd41588f73d929bb0832d0", + "entry_digest": "c1b975fb057e851d0eddd07a206545855bc4a0b74a509145e784874f8c00c682", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Sources/aps/Aps.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "c103edfab09948f06eb51023ba1f557de3be70cfc35a5c18e2f83feadde7f8f8", + "entry_digest": "b42ff2ad1138fbb261e2524a79aaec902d3c6be3e41a75a0b70d90340c83b1d0", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/CLIOutput.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "18ccec04502ed6fcb8aec0e684e34f5889f7aa04241964f4816b046bd97b6dd2", + "entry_digest": "5b215aa458464414befc6c49713d4aebe6b5839cce22c0c5489fddd70ada2dd3", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoKey.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "c6ac05ed87e9fb6a4ba0f287d67dc18cfe27211f1e37628d1f7a02eec6e90065", + "entry_digest": "4a73f07438c6db33b397f2ddc808134bdc4b6cc34222edf152e121d2f42c3ab6", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/StateStore.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "5abe29abecab6e6f5c110fe30391ee7c27dc119b727a40153b239270dfa32363", + "entry_digest": "5e7b6967feb8e7b23ab7a4025a44920cd49239567ee59acfb71af64fcb985eb3", + "owners": [ + "state-store" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "owners": [ + "@exact:test" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/state-store/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "12d848cab584c8a64f7da8bee796b581ec3b1b5efc72448299330dd493f39aa7", + "entry_digest": "76b734c278c05e3e74ff8f41dbb07aac3dcc7b1fbda64adcf32691e31365317c", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "6d94234b7a6b7d4dab2b432a46d1d59449941bd031b7e6e841a13d7830305ef1", + "entry_digest": "42a35cb8eed79a217a0016bc9ab3d9a5cc41b4c20f6f950e66edc40c21ac6d72", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/state-store.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "18ab2c5e1aaf9bf6c7e29195bcaaa987d5668aa79b0b17fd090fdfc3b51c4df8", + "entry_digest": "ff0141bc011bcf041f5ff3ecf0c40f910e73cab965c634708a2f21cbff5afce1", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "0f02b782887467b358568bf22c2d68f39c40a00d56143bd6c64abdf8198cf433", + "entry_digest": "8f828f3625d4f24c3c71852bd28f76aac97cd31ace2a18d1a901a3d34642de8d", + "owners": [ + "state-store" + ] + }, + { + "path": "specs/state-store/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "63705355034895d0dfab654892140beecd317afb08530917c8cf4b308824ab63", + "entry_digest": "88818028e56f72fbfd2bdf24012faf448fc049911bf77a2ecb1f32ba1c3e6389", + "owners": [ + "state-store" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-005", + "REQ-aps-cli-017", + "REQ-state-store-004", + "REQ-state-store-015" + ] + }, + "stale_acceptance_input_digest": "4300f6de6be8880db0d5e7db904fe01f67a6b07b23288efbeee9711a9c41135c", + "current_acceptance_input_digest": "6981380b0805539e55066a9b3711193cfe336fdcbb91287e521b25464ac8c163" } ] } diff --git a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/state.json b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/state.json index 000e1fe..7b5fea0 100644 --- a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/state.json +++ b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "c0c5b4bfb7c712506f9795c80889f03094596629", "created_at": 1784411475, - "updated_at": 1784419975, + "updated_at": 1784421703, "affected_specs": [ "aps-cli", "state-store" diff --git a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification-attempts.json b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification-attempts.json index 18d6c8a..60fc7b2 100644 --- a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification-attempts.json +++ b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification-attempts.json @@ -160,6 +160,26 @@ "REQ-state-store-004", "REQ-state-store-015" ] + }, + { + "timestamp": 1784421695, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", + "contract_digest": "2ce0d16b39555da39844a51a6ba4f24ee62c65751cf41af3d664905ba89b4158", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-005", + "REQ-aps-cli-017", + "REQ-state-store-004", + "REQ-state-store-015" + ] } ] } diff --git a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification.json b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification.json index 090d75f..c630755 100644 --- a/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification.json +++ b/.specsync/changes/CHG-0016-loud-torn-filestate-reads-and-document-multi-writer-semantics-for-issue-38/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784419968, - "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "timestamp": 1784421695, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", "contract_digest": "2ce0d16b39555da39844a51a6ba4f24ee62c65751cf41af3d664905ba89b4158", - "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", - "acceptance_input_digest": "4300f6de6be8880db0d5e7db904fe01f67a6b07b23288efbeee9711a9c41135c", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "acceptance_input_digest": "6981380b0805539e55066a9b3711193cfe336fdcbb91287e521b25464ac8c163", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -71,8 +71,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", - "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "payload_digest": "075c7e91ee2bef3a339e3316c13262fc2ba9993e5a103a698057ea61fbc969ae", + "entry_digest": "e1c5bcab674739bf30299509bacf6192509efa71a2987fa51daa22be0c58c64d", "owners": [ "@exact:test" ] diff --git a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/approvals.json b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/approvals.json index ec2c199..45f7995 100644 --- a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/approvals.json +++ b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/approvals.json @@ -55,6 +55,13 @@ "timestamp": 1784420055, "digest": "7f57ad56e71f129716ab218f92d82f5a53475634a09a2e412184fe1e64be9592", "note": null + }, + { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784421723, + "digest": "734505abc69406b33b49bd42795299de10db6e8294235b0583701dcc29eec4ea", + "note": "Re-accept after #50 Linux test fix." } ], "reopenings": [ @@ -452,6 +459,85 @@ }, "stale_acceptance_input_digest": "8b68fe57d89b59e415fc368f6883c99f43dfc5c6349d2d65d42bde629b5bec48", "current_acceptance_input_digest": "214733c68239e2ef685a0f629aeb5b594882221dfe413c5be0da3dafd3805ae3" + }, + { + "schema_version": 1, + "change_id": "CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue", + "actor": "agent:cursor", + "reason": "Stale after Linux MainActor async test fix on #50.", + "timestamp": 1784421710, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784420055, + "digest": "7f57ad56e71f129716ab218f92d82f5a53475634a09a2e412184fe1e64be9592", + "note": null + }, + "prior_verification": { + "timestamp": 1784420030, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "cc901bc4d6dd8c9a29b4bab3040676345cb2b0d7ba85c859fb5b7dda6becfc94", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "214733c68239e2ef685a0f629aeb5b594882221dfe413c5be0da3dafd3805ae3", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "11399161f4280ad397292c3b65f562f8a9af0c75b95b4ce9880fd1a334bcad4e", + "entry_digest": "ef782e68ea14113009c52f9236a1d72ae6c5b5fa9c8525c54d0939d152a9f901", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "owners": [ + "@exact:test" + ] + }, + { + "path": "docs/windows-readiness.md", + "kind": "file", + "mode": 33188, + "payload_digest": "1a7cc90974a6850fb64e14e72ef257600725d9e8a08eccd0778dd846a84d1d2c", + "entry_digest": "93803319a54163553d0d2945ec07d94b6a62cfe97cd2cf60b4f1e8a0f1f6a78f", + "owners": [ + "@exact:delivery" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [] + }, + "stale_acceptance_input_digest": "214733c68239e2ef685a0f629aeb5b594882221dfe413c5be0da3dafd3805ae3", + "current_acceptance_input_digest": "4464c965715be10163bdfd544bb893d03511011f766a8ea783112c827c293be2" } ] } diff --git a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/state.json b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/state.json index 1bef3bb..dc25f8f 100644 --- a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/state.json +++ b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "8cf886df7ac87eac4234fc3fb8c13f46362e08d6", "created_at": 1784413967, - "updated_at": 1784420055, + "updated_at": 1784421723, "affected_specs": [], "affected_paths": [ "docs/windows-readiness.md", diff --git a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification-attempts.json b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification-attempts.json index e4857b1..fa53f1f 100644 --- a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification-attempts.json +++ b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification-attempts.json @@ -90,6 +90,21 @@ } ], "requirement_ids": [] + }, + { + "timestamp": 1784421715, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", + "contract_digest": "cc901bc4d6dd8c9a29b4bab3040676345cb2b0d7ba85c859fb5b7dda6becfc94", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [] } ] } diff --git a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification.json b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification.json index 779ebbf..dc32637 100644 --- a/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification.json +++ b/.specsync/changes/CHG-0018-document-windows-readiness-audit-and-platform-neutral-apspaths-checks-for-issue/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784420030, - "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "timestamp": 1784421715, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", "contract_digest": "cc901bc4d6dd8c9a29b4bab3040676345cb2b0d7ba85c859fb5b7dda6becfc94", - "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", - "acceptance_input_digest": "214733c68239e2ef685a0f629aeb5b594882221dfe413c5be0da3dafd3805ae3", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "acceptance_input_digest": "4464c965715be10163bdfd544bb893d03511011f766a8ea783112c827c293be2", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -31,8 +31,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", - "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "payload_digest": "075c7e91ee2bef3a339e3316c13262fc2ba9993e5a103a698057ea61fbc969ae", + "entry_digest": "e1c5bcab674739bf30299509bacf6192509efa71a2987fa51daa22be0c58c64d", "owners": [ "@exact:test" ] diff --git a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/approvals.json b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/approvals.json index 7ad17fb..2b6cbd1 100644 --- a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/approvals.json +++ b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/approvals.json @@ -27,6 +27,13 @@ "timestamp": 1784420168, "digest": "6415bb6107039e868d309d79dec71f2db694cc555474019808ceb1f9162ae932", "note": null + }, + { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784421743, + "digest": "82266f37c4e7cec94391a296d6e742a69815b9969951fe43289aecf090179521", + "note": "Re-accept after #50 Linux test fix." } ], "reopenings": [ @@ -170,6 +177,147 @@ }, "stale_acceptance_input_digest": "3a962e15943ed1b83378ebec845c648150273065c8ed90b75e86d7b62661bd0e", "current_acceptance_input_digest": "9fa1397f4e3ac0a24e661392779df995bb4392cee73f88e2cb52e2f176e9d795" + }, + { + "schema_version": 1, + "change_id": "CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46", + "actor": "agent:cursor", + "reason": "Stale after Linux MainActor async test fix on #50.", + "timestamp": 1784421730, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784420168, + "digest": "6415bb6107039e868d309d79dec71f2db694cc555474019808ceb1f9162ae932", + "note": null + }, + "prior_verification": { + "timestamp": 1784420156, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "a9d3e3412c9b69e2bd160147953180c7dc3adf5d3994f6b202f90db4c35a0e16", + "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", + "acceptance_input_digest": "9fa1397f4e3ac0a24e661392779df995bb4392cee73f88e2cb52e2f176e9d795", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".github/workflows/windows-smoke.yml", + "kind": "file", + "mode": 33188, + "payload_digest": "42c3f4aff3a36ed9e478aae454a3029198fa28a1abd671147f5e18e7bd69f9aa", + "entry_digest": "05e1c4951acb0c353f8b41e406511ede182d070133974e3a2789d5cd8f87908a", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "2dc0bbb2670decce2c56be944b4ea01f821d6bc02ed052747e7c0cb7fa9a13ad", + "entry_digest": "e43b3c9e05838ec174a3da92c18dc92d9b20f9efeea29c066a809d1ffba31bd2", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "owners": [ + "@exact:test" + ] + }, + { + "path": "docs/windows-readiness.md", + "kind": "file", + "mode": 33188, + "payload_digest": "1a7cc90974a6850fb64e14e72ef257600725d9e8a08eccd0778dd846a84d1d2c", + "entry_digest": "93803319a54163553d0d2945ec07d94b6a62cfe97cd2cf60b4f1e8a0f1f6a78f", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-018" + ] + }, + "stale_acceptance_input_digest": "9fa1397f4e3ac0a24e661392779df995bb4392cee73f88e2cb52e2f176e9d795", + "current_acceptance_input_digest": "e8b481a22153f1a9413a09d8d571ff50af2ab6dcf6737a193dafed6e11b8b6dc" } ] } diff --git a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/state.json b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/state.json index 9015f37..98c9124 100644 --- a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/state.json +++ b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "7571e11d1f4da488f9540b0175420f69501814e1", "created_at": 1784418239, - "updated_at": 1784420168, + "updated_at": 1784421743, "affected_specs": [ "aps-cli" ], diff --git a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification-attempts.json b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification-attempts.json index 56c1b43..6995416 100644 --- a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification-attempts.json +++ b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification-attempts.json @@ -34,6 +34,23 @@ "requirement_ids": [ "REQ-aps-cli-018" ] + }, + { + "timestamp": 1784421735, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", + "contract_digest": "a9d3e3412c9b69e2bd160147953180c7dc3adf5d3994f6b202f90db4c35a0e16", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-018" + ] } ] } diff --git a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification.json b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification.json index b11a28e..fbfa831 100644 --- a/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification.json +++ b/.specsync/changes/CHG-0020-prove-swift-test-on-windows-latest-and-portable-aps-home-env-tests-for-issue-46/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784420156, - "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "timestamp": 1784421735, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", "contract_digest": "a9d3e3412c9b69e2bd160147953180c7dc3adf5d3994f6b202f90db4c35a0e16", - "workspace_digest": "513d04709c5bd3d1346e15db2473f03c23de3257b855f568fc3ff21c4b95ed52", - "acceptance_input_digest": "9fa1397f4e3ac0a24e661392779df995bb4392cee73f88e2cb52e2f176e9d795", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "acceptance_input_digest": "e8b481a22153f1a9413a09d8d571ff50af2ab6dcf6737a193dafed6e11b8b6dc", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -41,8 +41,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", - "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "payload_digest": "075c7e91ee2bef3a339e3316c13262fc2ba9993e5a103a698057ea61fbc969ae", + "entry_digest": "e1c5bcab674739bf30299509bacf6192509efa71a2987fa51daa22be0c58c64d", "owners": [ "@exact:test" ] diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/approvals.json b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/approvals.json index 831839f..ed33494 100644 --- a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/approvals.json +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/approvals.json @@ -13,7 +13,186 @@ "timestamp": 1784419665, "digest": "ed8df35f783c4bde0a61bd70587de49c912ade63c8765b7d79df619c6b6d7145", "note": null + }, + { + "gate": "acceptance", + "actor": "agent:cursor", + "timestamp": 1784421502, + "digest": "c85329004b6e92b2970f69174d4c1c84efccd581ca522faa2517e1eb0ce4e62e", + "note": "Accept Linux MainActor async test fix for #50." } ], - "reopenings": [] + "reopenings": [ + { + "schema_version": 1, + "change_id": "CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on", + "actor": "agent:cursor", + "reason": "Make corruptState MainActor test async for Linux XCTest discovery.", + "timestamp": 1784421486, + "from_state": "accepted", + "to_state": "verifying", + "superseded_approval": { + "gate": "acceptance", + "actor": "0xLeif", + "timestamp": 1784419665, + "digest": "ed8df35f783c4bde0a61bd70587de49c912ade63c8765b7d79df619c6b6d7145", + "note": null + }, + "prior_verification": { + "timestamp": 1784419659, + "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "contract_digest": "1fc8345bf39a1fdf79af2d12ed2ee6dde3cf4409a70b8702fb7a2c8c5bf3eeac", + "workspace_digest": "4c531700435c5aec3f90f67f0973cb1a3db03b87cbf1359c20f8dc3aa55b5f5e", + "acceptance_input_digest": "f864dbd1fc160f0bf5e5fee04740bd815db00d293fe75ce755032b5d9294cec0", + "acceptance_manifest": { + "schema_version": 1, + "entries": [ + { + "path": ".specsync/change-sequence.json", + "kind": "file", + "mode": 33188, + "payload_digest": "9f045debdb74e75947f2c5490397db24dde9f5f479eb8701749d9d74095b19c4", + "entry_digest": "14fa51360be78c249dcb404f4eac02e35126ec65b01b76b62a8580e9bf206dfd", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "README.md", + "kind": "file", + "mode": 33188, + "payload_digest": "f1308885314eb98dee9ded8d43319dc507054e9651636f325b35ccd33954da86", + "entry_digest": "ad89330589c0539409ff3a743f533d24af1eba418319f70d35041626b61ce709", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Scripts/smoke.sh", + "kind": "file", + "mode": 33261, + "payload_digest": "2edf3b5ea543dcc7d6c40b720313b4a5d5a3931a9bd22b3874cdd641ac1132a0", + "entry_digest": "d6ba00e8c657b061d382405e5eb3c6876fd12aa82538f2015143d07c81daba88", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "Sources/aps/Aps.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "c103edfab09948f06eb51023ba1f557de3be70cfc35a5c18e2f83feadde7f8f8", + "entry_digest": "b42ff2ad1138fbb261e2524a79aaec902d3c6be3e41a75a0b70d90340c83b1d0", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/CLIOutput.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "18ccec04502ed6fcb8aec0e684e34f5889f7aa04241964f4816b046bd97b6dd2", + "entry_digest": "5b215aa458464414befc6c49713d4aebe6b5839cce22c0c5489fddd70ada2dd3", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Sources/aps/DemoKey.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "c6ac05ed87e9fb6a4ba0f287d67dc18cfe27211f1e37628d1f7a02eec6e90065", + "entry_digest": "4a73f07438c6db33b397f2ddc808134bdc4b6cc34222edf152e121d2f42c3ab6", + "owners": [ + "aps-cli" + ] + }, + { + "path": "Tests/apsTests/APSTests.swift", + "kind": "file", + "mode": 33188, + "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", + "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "owners": [ + "@exact:test" + ] + }, + { + "path": "specs/aps-cli", + "kind": "non_file", + "mode": 0, + "payload_digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "entry_digest": "6f7c83bad496153e7b31ed762f67bd1c75394999419522d3535142c1e5746b58", + "owners": [ + "@exact:delivery" + ] + }, + { + "path": "specs/aps-cli/aps-cli.spec.md", + "kind": "file", + "mode": 33188, + "payload_digest": "b42b8dbc5a12ce56001531cec0dacfe602bc0805263ff87c8714f03071e0ef2f", + "entry_digest": "8289f19bf4212940741aaff6cdc48cea492fb414df77b83cb7ff56d254640ec5", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/context.md", + "kind": "file", + "mode": 33188, + "payload_digest": "7304a6233da2051242aeac63a51197aaf6f92d936692fe8655801eff842a2fd0", + "entry_digest": "e78ad0996c0135c37d41afa37c5fda13901bb63e14f00c3208896f7b104a72e8", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/requirements.md", + "kind": "file", + "mode": 33188, + "payload_digest": "334d1fe7a47f7c641d2f00133f6574c5ec8ca64a3ee8aef7f69d3b9aae24b052", + "entry_digest": "78ce3da5917c764bde86b0293f87306347972a31b8aade70c119b101639cf305", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/tasks.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ca6cafd22fb3c803eed3dc94cb980d8f535d51e0fd289b46bae82b7f255377de", + "entry_digest": "c349b8f073cefe7e387f8fabdd4dada3830be59b4b6d22a4ce79b2c29399c70e", + "owners": [ + "aps-cli" + ] + }, + { + "path": "specs/aps-cli/testing.md", + "kind": "file", + "mode": 33188, + "payload_digest": "ee5ae7f63536e2089a2b51887ed62b8392561052cdaa37c29707e7a10e2136bd", + "entry_digest": "daf1e496e836c46da31eb6ac679b352d7bf615536595be310953eb0ae9a36fd4", + "owners": [ + "aps-cli" + ] + } + ] + }, + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-002" + ] + }, + "stale_acceptance_input_digest": "f864dbd1fc160f0bf5e5fee04740bd815db00d293fe75ce755032b5d9294cec0", + "current_acceptance_input_digest": "82b77a56115e0d9c616752abda66051f393c421268be3ce84ae7fb3cda4b99a1" + } + ] } diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/state.json b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/state.json index 04764de..c7a2b3b 100644 --- a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/state.json +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/state.json @@ -9,7 +9,7 @@ "canonical_applied": true, "base_commit": "be4abfb477552bc0a07f10d51d33308608587b3d", "created_at": 1784419626, - "updated_at": 1784419665, + "updated_at": 1784421502, "affected_specs": [ "aps-cli" ], diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification-attempts.json b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification-attempts.json index 77d63d6..108f73a 100644 --- a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification-attempts.json +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification-attempts.json @@ -17,6 +17,23 @@ "requirement_ids": [ "REQ-aps-cli-002" ] + }, + { + "timestamp": 1784421494, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", + "contract_digest": "1fc8345bf39a1fdf79af2d12ed2ee6dde3cf4409a70b8702fb7a2c8c5bf3eeac", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "passed": true, + "commands": [ + { + "command": "fledge lanes run verify", + "success": true, + "exit_code": 0 + } + ], + "requirement_ids": [ + "REQ-aps-cli-002" + ] } ] } diff --git a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification.json b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification.json index 593a2e2..3769864 100644 --- a/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification.json +++ b/.specsync/changes/CHG-0021-error-contract-exit-code-taxonomy-and-json-error-envelope-issue-31-rebuilt-on/verification.json @@ -1,9 +1,9 @@ { - "timestamp": 1784419659, - "commit": "be4abfb477552bc0a07f10d51d33308608587b3d", + "timestamp": 1784421494, + "commit": "5e6433c3943e1f48d23d23d7517cdd326da5d2bd", "contract_digest": "1fc8345bf39a1fdf79af2d12ed2ee6dde3cf4409a70b8702fb7a2c8c5bf3eeac", - "workspace_digest": "4c531700435c5aec3f90f67f0973cb1a3db03b87cbf1359c20f8dc3aa55b5f5e", - "acceptance_input_digest": "f864dbd1fc160f0bf5e5fee04740bd815db00d293fe75ce755032b5d9294cec0", + "workspace_digest": "80b657c3e205c7cfa474b2d39eaa72103e8585b0c2138ef224d15ad24926f8d3", + "acceptance_input_digest": "82b77a56115e0d9c616752abda66051f393c421268be3ce84ae7fb3cda4b99a1", "acceptance_manifest": { "schema_version": 1, "entries": [ @@ -71,8 +71,8 @@ "path": "Tests/apsTests/APSTests.swift", "kind": "file", "mode": 33188, - "payload_digest": "cbfb5ec5589bcea9055e36907a9945bd6977303ab6c3e7ba30afd84501e8c106", - "entry_digest": "a90137998b78cf33dbfdc44313cb60c3449aeba22f2aeccef344dd00d378c2fa", + "payload_digest": "075c7e91ee2bef3a339e3316c13262fc2ba9993e5a103a698057ea61fbc969ae", + "entry_digest": "e1c5bcab674739bf30299509bacf6192509efa71a2987fa51daa22be0c58c64d", "owners": [ "@exact:test" ] diff --git a/Tests/apsTests/APSTests.swift b/Tests/apsTests/APSTests.swift index 6ce9273..5bc0543 100644 --- a/Tests/apsTests/APSTests.swift +++ b/Tests/apsTests/APSTests.swift @@ -738,7 +738,7 @@ final class APSTests: XCTestCase { } @MainActor - func testRequireDecodableDiskStateCorruptThrows() throws { + func testRequireDecodableDiskStateCorruptThrows() async throws { let store = StateStore() try store.set(.note, value: "ok")