Skip to content

Commit e19aeae

Browse files
author
CID Agent
committed
cid(review): PASS — root Package.swift CI smoke test verified
1 parent ee61a90 commit e19aeae

4 files changed

Lines changed: 41 additions & 37 deletions

File tree

.claude/agent-memory/review/MEMORY.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,8 @@ Review patterns, quality gate knowledge, and common issues accumulated across CI
8080
lacks Ruby headers/libclang-dev. Dedicated `ruby` job handles iscc-rb clippy/compile/test
8181
- .NET bindings fully complete (iteration 9): 32/32 Tier 1 symbols, 91 tests, NuGet publish
8282
pipeline, version sync, docs. C# issue resolved and deleted from issues.md
83-
- Swift bindings: XCFramework deliverables complete (iteration 4) — build script, Package.swift,
84-
release workflow, version sync (16th target), docs. GITHUB_REF_NAME bug fixed (d29a1b3).
85-
Provenance guard added (iteration 5). XCF cache key fixed (iteration 4). Remaining: root
86-
Package.swift CI smoke test (normal issue)
83+
- Swift bindings fully complete: XCFramework, Package.swift, release workflow, version sync, docs,
84+
provenance guard (iteration 5), root Package.swift CI smoke test (iteration 6)
8785
- **JNA Android ARM32 resource path**: JNA canonicalizes ARM32 arch to `arm` (not `armv7`). Correct
8886
prefix is `android-arm/`, not `android-armv7/`. Verified via bytecode decompilation. Filed as
8987
spec issue with HUMAN REVIEW REQUESTED
@@ -123,7 +121,8 @@ Review patterns, quality gate knowledge, and common issues accumulated across CI
123121
- Review shortcut: `cargo build/test/clippy -p iscc-uniffi` + `mise run check` (no `swift test` on
124122
Linux). Swift tests structurally validated only — execution needs macOS CI
125123
- **Script-only (shell)**: `bash -n <script>` + `mise run check` + clippy (when no Rust changes)
126-
- Swift CI job (`swift:`) on `macos-14`: `cargo build -p iscc-uniffi``swift build``swift test`
124+
- Swift CI job (`swift:`) on `macos-14`: `dump-package` (root) → `cargo build -p iscc-uniffi`
125+
`swift build``swift test`
127126
- **Docs site URL**: `https://lib.iscc.codes/` NOT `https://iscc-lib.iscc.io/`. Advance agents
128127
consistently get this wrong — always verify in review
129128

.claude/context/handoff.md

Lines changed: 32 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,37 @@
1-
## 2026-03-22 — Add root Package.swift manifest smoke test to CI
1+
## 2026-03-22 — Review of: Add root Package.swift manifest smoke test to CI
22

3-
**Done:** Added a `swift package dump-package` step to the `swift` CI job that validates the
4-
consumer-facing root `Package.swift` manifest parses correctly. The step runs early (after
5-
rust-cache, before the expensive UniFFI build) and requires no `working-directory` since it targets
6-
the repo root.
3+
**Verdict:** PASS
74

8-
**Files changed:**
9-
10-
- `.github/workflows/ci.yml`: Added "Validate root Package.swift manifest" step at line 239-240 in
11-
the `swift` job, between `Swatinem/rust-cache@v2` and "Build UniFFI native library"
5+
**Summary:** The advance agent added exactly 2 lines to ci.yml — a `swift package dump-package` step
6+
in the `swift` job that validates the root `Package.swift` manifest parses correctly. The change is
7+
minimal, correctly placed (after rust-cache, before the expensive UniFFI build), and all 6
8+
verification criteria pass. The resolved "CI does not exercise root Package.swift" issue has been
9+
deleted from issues.md.
1210

1311
**Verification:**
1412

15-
- YAML valid: `yaml.safe_load()` exits 0
16-
- `grep -c 'dump-package'` returns 1 (step exists exactly once)
17-
- `grep -B2 'dump-package' | grep -c 'working-directory'` returns 0 (runs at repo root)
18-
- `grep -B5 'dump-package' | grep 'Validate root'` confirms step name
19-
- `dump-package` step appears BEFORE "Build UniFFI native library" (visual inspection confirmed)
20-
- `mise run format` produces no changes
21-
- `mise run check` — all 15 pre-commit hooks pass
22-
23-
**Next:** The "CI does not exercise root Package.swift" issue in issues.md should be marked resolved
24-
by the review agent. The only remaining issues are "Add programming language logos to docs site"
25-
(low priority, CID-skipped) and the benchmarks documentation gap.
26-
27-
**Notes:** No tests to write — this is a CI-only YAML change. The `dump-package` command parses the
28-
manifest and outputs JSON but does NOT resolve/download binary targets, so the PLACEHOLDER checksum
29-
on develop is fine. This is exactly the right level of validation for the develop branch.
13+
- [x] `yaml.safe_load` exits 0 — valid YAML confirmed
14+
- [x] `grep -c 'dump-package'` returns 1 — step exists exactly once
15+
- [x] `grep -B2 'dump-package' | grep -c 'working-directory'` returns 0 — runs at repo root
16+
- [x] `grep -B5 'dump-package' | grep 'Validate root'` — step name confirmed
17+
- [x] `dump-package` step (line 240) appears BEFORE "Build UniFFI native library" (line 241)
18+
- [x] `mise run format` — no changes (clean)
19+
20+
**Issues found:**
21+
22+
- (none)
23+
24+
**Codex review:** One P2 finding: `dump-package` doesn't validate the remote XCFramework
25+
URL/checksum. This is by design — the work package explicitly scoped this as `dump-package` (not
26+
`swift package resolve`) because the root manifest has a PLACEHOLDER checksum on develop. Binary
27+
target resolution would fail. The release workflow patches the checksum at publish time. This is the
28+
correct level of validation for the develop branch. Finding dismissed.
29+
30+
**Next:** Only one low-priority issue remains (docs language logos), which CID skips. The benchmarks
31+
documentation gap (state.md: "partially met" — speedup factors not published) is the last actionable
32+
gap for CID. The next step should run the pytest-benchmark comparisons, compute speedup factors, and
33+
publish them to the docs site.
34+
35+
**Notes:** All 12 bindings complete, all CI green, all issues resolved except the low cosmetic one.
36+
The project is approaching full completion — only the benchmarks docs gap prevents Documentation and
37+
Benchmarks from reaching "met" status.

.claude/context/issues.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,6 @@ review agent deletes resolved issues after verification (history in git).
77

88
<!-- Add issues below this line -->
99

10-
## CI does not exercise root Package.swift `normal` [human]
11-
12-
CI tests only `packages/swift/Package.swift` (the dev manifest). The root `Package.swift` that real
13-
SPM consumers resolve — with its binary target and checksum — is never exercised. Binary-target
14-
regressions (wrong URL pattern, checksum format) can land unnoticed. Low priority because the
15-
release workflow patches the checksum at publish time, but a manifest-resolution smoke check on
16-
macOS CI would add defense in depth.
17-
1810
## Add programming language logos to docs site `low` [human]
1911

2012
README language logos added (iteration 3). Consider adding matching logos to `docs/index.md` and

.claude/context/iterations.jsonl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1066,3 +1066,8 @@
10661066
{"ts":"2026-03-22T10:51:16.796520+00:00","iteration":5,"role":"update-state","status":"OK","turns":17,"cost_usd":0.521435,"duration_s":141.9}
10671067
{"ts":"2026-03-22T10:55:50.286627+00:00","iteration":5,"role":"define-next","status":"OK","turns":31,"cost_usd":1.045979,"duration_s":273.5}
10681068
{"ts":"2026-03-22T11:00:23.701935+00:00","iteration":5,"role":"advance","status":"OK","turns":28,"cost_usd":0.694194,"duration_s":273.4}
1069+
{"ts":"2026-03-22T11:06:37.976918+00:00","iteration":5,"role":"review","status":"OK","turns":1,"cost_usd":1.10023,"duration_s":374.3}
1070+
{"ts":"2026-03-22T11:19:10.142367+00:00","iteration":6,"role":"update-state","status":"OK","turns":19,"cost_usd":0.577667,"duration_s":148.3}
1071+
{"ts":"2026-03-22T11:22:00.547452+00:00","iteration":6,"role":"define-next","status":"OK","turns":24,"cost_usd":0.777998,"duration_s":170.4}
1072+
{"ts":"2026-03-22T11:26:01.566394+00:00","iteration":6,"role":"advance","status":"OK","turns":26,"cost_usd":0.574974,"duration_s":241.0}
1073+
{"ts":"2026-03-22T11:30:32.179131+00:00","iteration":6,"role":"review","status":"PASS","turns":1,"cost_usd":0.0,"duration_s":0}

0 commit comments

Comments
 (0)