Skip to content

Release: version packages#132

Merged
AtelyPham merged 1 commit into
mainfrom
changeset-release/main
Jul 13, 2026
Merged

Release: version packages#132
AtelyPham merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@tangle-network/browser-agent-driver@0.35.3

Patch Changes

  • #131 135558e Thanks @AtelyPham! - Move the CLI-backed provider adapters (ai-sdk-provider-codex-cli, ai-sdk-provider-claude-code) and ffmpeg-static to optionalDependencies. Consumers that only drive --provider openai — e.g. slim sandbox runtime images — can now install with npm install --omit=optional to skip ~300 MB of platform-native binaries (the bundled Codex CLI, the Claude Agent SDK's per-platform ripgrep, and the static ffmpeg). Default installs are unchanged: optional dependencies still install by default, so the full provider/showcase surface works out of the box. When an omitted dependency's provider is selected (including the keyless claude-code default) or bad showcase is run without it, the driver now throws an actionable "reinstall without --omit=optional" error instead of a raw ERR_MODULE_NOT_FOUND.

@tangletools tangletools left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Auto-approved GitHub Actions PR — 8c4110d1

This PR was opened by trusted GitHub Actions automation.
The full PR reviewer audit still runs separately and will publish findings if it detects issues.

tangletools · auto-approval · reason: github_actions_author · 2026-07-13T14:41:16Z

@tangletools

Copy link
Copy Markdown
Contributor

✅ No Blockers — 8c4110d1

Review health 100/100 · Reviewer score 95/100 · Confidence 70/100 · 0 findings (none)

glm: Correctness 95 · Security 95 · Testing 95 · Architecture 95

Reviewer score is advisory once the run is complete and the verdict has no blockers.

Full multi-shot audit completed 2/2 planned shots over 2 changed files. Global verifier still owns final merge decision.

No findings.


tangletools · 2026-07-13T14:49:54Z · trace

@tangletools tangletools left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Clean — 8c4110d1

Full multi-shot audit completed 2/2 planned shots over 2 changed files. Global verifier still owns final merge decision.

Full immutable report for this review: trace

Summary comment for this run: full summary


tangletools · 2026-07-13T14:49:54Z · immutable trace

@tangletools tangletools left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Value Audit — sound

Verdict sound
Concerns 1 (1 weak-concern)
Heuristic 0.0s
Duplication 0.0s
Interrogation 92.0s (2 bridge agents)
Total 92.0s

💰 Value — sound

Release PR bumps 0.35.2→0.35.3 to ship moving 3 heavy native-binary deps to optionalDependencies with a clean, tested actionable-error helper — idiomatic npm pattern, ships as-is.

  • What it does: Ships commit 135558e (PR #131): moves ai-sdk-provider-codex-cli, ai-sdk-provider-claude-code, and ffmpeg-static from dependencies to optionalDependencies in package.json, and adds a loadOptionalModule() helper (src/optional-dependency.ts) that wraps the 5 dynamic-import sites for the two CLI providers (src/brain/model-client.ts:194,210,255 and src/supervisor/critic.ts:317,332) so a mis
  • Goals it achieves: Let slim consumers (e.g. agent-thin sandbox runtime images that only run --provider openai) install with npm install --omit=optional and skip ~300MB of platform-native binaries (bundled Codex CLI, Claude Agent SDK's per-platform ripgrep, static ffmpeg). Default installs are unchanged because optionalDependencies install by default — so the full provider/showcase surface keeps working out of th
  • Assessment: Sound and well-executed. optionalDependencies is the correct, idiomatic npm mechanism for exactly this case (heavy optional native binaries). The loadOptionalModule helper is the right abstraction: centralized, type-preserving via the thunk, applied consistently at all 5 import sites, unit-tested for the present/missing/unrelated-error paths (tests/optional-dependency.test.ts). ffmpeg-static's
  • Better / existing approach: none — this is the right approach. optionalDependencies is the standard npm mechanism for optional native binaries; no better architecture exists. I searched for a pre-existing optional-dep loader (git log -S 'loadOptionalModule', grep across src/) and found none — this helper is new and not duplicating anything. The two error-handling styles in the codebase (assemble.ts graceful-null vs loadOpt
  • Model: opencode/zai-coding-plan/glm-5.2
  • Bridge attempts: 2
  • Bridge warning: opencode/kimi-for-coding/k2p7: bridge stream ended without value-audit content

🎯 Usefulness — sound

Moves heavy CLI-provider/ffmpeg deps to optionalDependencies with a clean runtime loader that turns missing-module errors into actionable guidance — serves a real slim-image use case, fits the codebase's existing graceful-degradation pattern, and breaks nothing on default installs.

  • Integration: All three moved packages are reachable and correctly wired. The two CLI-provider adapters are dynamically imported at exactly 5 call sites (model-client.ts:195,211,256 and critic.ts:318,333) and every one now routes through loadOptionalModule. Grep confirms no remaining bare await import('ai-sdk-provider-*') outside the wrapper. ffmpeg-static in showcase/assemble.ts:19 was already wrapped in a
  • Fit with existing patterns: Matches the codebase's established grain. assemble.ts already practiced graceful optional-dep degradation (try ffmpeg-static → fallback system ffmpeg → null). This change extends the same philosophy to the CLI providers with a reusable, unit-tested primitive (optional-dependency.ts, 3 tests covering present/missing/unrelated-error). No competing or duplicated abstraction exists — grep found no oth
  • Real-world viability: Holds up on the edge paths that matter. The error matcher checks both Node ESM (ERR_MODULE_NOT_FOUND) and CJS (MODULE_NOT_FOUND) codes plus a /Cannot find (module|package)/i message regex (optional-dependency.ts:27-30), so it survives across Node 20/22 and bundler-resolved imports. Unrelated errors pass through unchanged (tested). Default installs are unaffected since optionalDependencies in
  • Model: opencode/zai-coding-plan/glm-5.2
  • Bridge attempts: 1

💰 Value Audit

🟡 Changeset overstates ffmpeg showcase behavior [maintenance] ``

The changeset (which lands verbatim in CHANGELOG.md:7) claims 'bad showcase is run without [ffmpeg-static], the driver now throws an actionable reinstall error.' But src/showcase/assemble.ts:15-31 uses a separate inline try/catch in getFfmpeg() that returns null and makes assembleGif/assembleVideo return false (graceful degradation, no throw). The changeset conflates the two code paths. Functionally fine — the showcase behavior is arguably better than throwing — but the published changelog is in


What this audit checks

It judges the change on its merits — not whether it was tasked out in an issue. Unticketed, fast-moving work is fine; the question is whether the change is good and whether a better or existing approach should be used instead.

Pass What it asks
Heuristic Vague title? Whitespace-only or cruft-bearing diff? (content signals only)
Duplication Do added function/class names already exist elsewhere in the repo?
Value Audit What does it do? What goal does it achieve? Is it good? Better architecture or already-exists?
Usefulness Audit Does it integrate and fit? Will it hold up in real use and actually get used?

Findings are concerns, not blocks — the human reviewer decides what to do with them.

value-audit · 20260713T145007Z

@AtelyPham AtelyPham merged commit a40680b into main Jul 13, 2026
4 checks passed
@AtelyPham AtelyPham deleted the changeset-release/main branch July 13, 2026 15:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants