chore(deps): refresh Zod, Lucide, and transitive dependencies - #136
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
Codex review: needs maintainer review before merge. Reviewed August 31, 2026, 3:26 AM ET / 07:26 UTC. ClawSweeper reviewWhat this changesUpdates Zod and Lucide, regenerates Bun’s locked transitive dependency resolutions, and records the visible check-circle icon refinement in the changelog. Merge readinessThis owner-authored dependency refresh is cleanly scoped and has no actionable introduced defect; it remains open for explicit maintainer merge judgment. Priority: P3 Review scores
Verification
How this fits togetherBirdclaw uses its package manifest and Bun lockfile to produce the CLI, MCP server, and web application. Zod validates data contracts while Lucide supplies UI icons used by completed and replied states. flowchart LR
A[Declared dependency versions] --> B[Bun lockfile resolution]
B --> C[Birdclaw build and runtime]
C --> D[CLI and MCP server]
C --> E[Web application views]
Decision needed
Why: The repository policy and author association require explicit maintainer handling even though the scoped diff and recorded validation show no concrete blocker. Before merge
Agent review detailsSecurityNone. Review metrics
Technical reviewBest possible solution: Merge the coupled manifest and lockfile refresh after normal maintainer confirmation while retaining the established Bun and Node compatibility lanes. Do we have a high-confidence way to reproduce the issue? Not applicable: this is a dependency maintenance PR rather than a reported product failure; the reviewed snapshot includes targeted runtime validation instead. Is this the best way to solve the issue? Yes: updating the declared versions and regenerated lockfile together is the narrow maintainable path, and the recorded dual-runtime and browser validation covers the affected execution surfaces. AGENTS.md: not found in the target repository. Codex review notes: model internal, reasoning high; reviewed against c184cf5f1b5e. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (1 earlier review cycle)
|
|
Independent triage verification of I read the complete manifest/lockfile/changelog diff and comments. This is a bounded refresh of Zod, Lucide, and compatible transitive resolutions; the runtime pins and application source remain unchanged. The manifest and lockfile agree, and the visible icon change is documented and pictured in the PR. Independent verification used a fresh archive of this commit, the checksum-pinned Bun runtime, and a clean frozen install on a task-owned RAM volume. All passed: ./scripts/bun-canary.sh install --frozen-lockfile
./scripts/bun-canary.sh run --bun check
./scripts/bun-canary.sh run --bun buildThe resulting real CLI and production server used only bundled demo data, with backup sync, live writes, and live profile lookup disabled. Observed output: Codex autoreview returned scoped-clean at the default P0 threshold. I also verified that CI run 33367783167 succeeded on this exact commit across all four jobs, including installed-package and browser smoke. I made no additional code changes and did not perform the merge. |
Refresh Birdclaw's dependencies while preserving its verified Bun canary and Node 26 runtime contract. Lucide's check-circle icon used for completed/replied states has a slightly larger checkmark; the changelog records that visible change.
Dependency changes
lucide-react: 1.34.0 → 1.37.0.zod: 4.4.3 → 4.5.4, shared by the app, MCP SDK, and TanStack tooling.bun.lockwith the pinned Bun package manager to refresh compatible transitive dependencies, including CSS parsing, source maps, browser compatibility data, EventSource parsing, Express rate limiting, JOSE, query-string parsing, and Seroval.Upstream notes: Zod 4.5, Zod 4.5.4, Lucide 1.37.0.
Visual proof
Actual
CheckCircle2exports from Lucide 1.34.0 and 1.37.0 rendered through React, shown at 20px and enlarged. Captured in Chrome; the complete image contains only synthetic comparison content.CI reasoning
The base commit is already green: build/test CI and Pages deployment. CI tests Bun/Istanbul, Node/V8, installed packages under both runtimes, and Chromium against the production server. Pages is documentation deployment; Update Homebrew Tap is a release/manual operation, not a build/test gate. There are no scheduled monitoring workflows in this repository. No workflow, assertion, timeout, or coverage threshold is relaxed.
All four jobs in PR CI passed on commit
cf888e0ebd32c476edef42e6a07eb5dcaa360740: Bun coverage/build/runtime smoke, Node coverage/build, dual-runtime installed-package smoke, and Chromium E2E. No hosted CI retries were needed.The exact Bun
1.4.0-canary.1+f972c287fremains the repository's explicitly qualified source runtime. Node 26.5.1 remains the minimum compatibility lane. Changing these contracts is outside this dependency refresh.Review
Codex autoreview: scoped-clean at the requested default P0 blocking threshold, with no accepted/actionable findings.
Live proof
The built CLI and production server used an isolated directory seeded solely from Birdclaw's bundled demo data:
{ "requested": true, "seeded": true, "counts": {"accounts": 2, "profiles": 6, "tweets": 6, "conversations": 4, "messages": 8} }[ { "id": "tweet_001", "text": "We need more software that defaults to local-first, legible state, and repairable failure modes. https://t.co/local" } ]Chrome also loaded and hydrated the built production app, then successfully filtered Home to Replied and displayed the expected seeded conversation.
Full local validation
The first SSD-backed attempts hit CLI and backup timeouts while the shared host was waiting heavily on file I/O. Those runs were stopped. Both complete coverage suites subsequently passed with fixtures on a temporary 2 GiB APFS RAM volume, referenced by
ram-tmpbelow. For example, the unchanged backup export/import/validation test went from a 20-second timeout to 359 ms. Test assertions, hook/test timeouts, and coverage thresholds were not changed.TMPDIR="$PWD/.toolchains/deps-refresh/ram-tmp" BIRDCLAW_BACKUP_AUTO_SYNC=0 BIRDCLAW_DISABLE_LIVE_WRITES=1 ./scripts/bun-canary.sh run --bun coverage --maxWorkers=2 --reporter=verbose --coverage.reportsDirectory=.toolchains/deps-refresh/ram-tmp/coverage-bunAlso passed:
./scripts/bun-canary.sh install --frozen-lockfile ./scripts/bun-canary.sh scripts/verify-bun-canary.mjs ./scripts/bun-canary.sh pm untrusted ./scripts/bun-canary.sh run --bun check ./scripts/bun-canary.sh run --bun build fnm exec --using 26.5.1 -- ./scripts/bun-canary.sh run build:nodeThe clean frozen install succeeded, exact Bun checksum/revision verification passed, no untrusted lifecycle scripts were found, and format/lint/type checks and both complete web/server/CLI builds passed. An initial incremental install retained stale nested Zod copies; regenerating the lockfile and performing the clean frozen install removed the resulting MCP schema type mismatch without application-code changes.
Real output excerpt:
The installed-package smoke validates matching npm/Bun file inventories, CLI, SQLite, SSR/static assets, read-only MCP, and shutdown under both runtimes.