chore(deps): accept the published first-party cohort - #33
Merged
Conversation
drewstone
force-pushed
the
chore/deps-align
branch
from
August 21, 2026 11:21
083ef00 to
3e143b4
Compare
drewstone
force-pushed
the
chore/deps-align
branch
from
August 21, 2026 11:30
3e143b4 to
1904983
Compare
tangletools
approved these changes
Aug 21, 2026
tangletools
left a comment
There was a problem hiding this comment.
✅ Auto-approved drewstone PR — 19049835
This PR was opened by the trusted drewstone account.
This approval is provisional and was applied by the local stand-in because the pr-reviewer webhook host is unreachable (2026-08-21). CI on this head is fully green. The full PR reviewer audit re-runs via the resweep when the service returns and will publish findings if it detects issues.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Braid pinned the whole first-party cohort at the versions current when #31 landed. Every one of them has published since:
@tangle-network/agent-eval@tangle-network/agent-interface@tangle-network/agent-runtime@tangle-network/agent-provider-cli-bridge@tangle-network/agent-provider-tangle@tangle-network/sandboxBraid could not be moved on its own.
.npmrcsetsstrict-peer-dependencies=true, and pinning Eval forward while Runtime and Knowledge still declared>=0.149.0 <0.150.0produced:So this is the last step of a four-repo sequence: Eval published the fix cohort, Knowledge 10.6.1 widened its Eval peer, Runtime 0.153.2 widened its Eval peer and moved Knowledge two majors, and only then can Braid pin all six at once with the peer graph satisfied.
What
Six exact pins moved to what the registry served when this branch was cut (2026-08-21), and
version0.2.0→0.2.1.Pinned to published, not to
main. Simplification work is landing continuously in Eval and Runtime, so theirmainversions run ahead of npm. This PR takes the versions npm actually serves; a later pass can move it again cheaply. Chasing a movingmainis how a dependency PR never converges.pnpm-workspace.yaml:minimumReleaseAgeExcludegains the new versions. Braid sets aminimumReleaseAgecooldown, so without those entries a package published minutes ago cannot be installed at all.0.2.1rather than reusing0.2.0because0.2.0is already on the registry, andscripts/release/check-registry-collision.mjsrefuses to publish a version the registry holds.The real fallout: Runtime now refuses
metadata.maxTokensRuntime 0.153.2 carries the model-ceiling work.
profileModelExecutionSettingsrejects the old field outright:That reddened 5 tests across
test/eval.test.tsandtest/trace-analysis-configuration.test.ts.src/eval/execution.tsbuilt the judge profile withmetadata.maxTokens, and separately hand-wrote the wire field inextraBody:The old wire body carried both
max_tokens: 2048(visible, from a request-level cap) andmax_completion_tokens: 2048(total, fromextraBody). Runtime now owns that lowering — "Router and OpenAI-compatible routes send the visible ceiling asmax_tokensand the total asmax_completion_tokens" — so the profile declares the two ceilings and stops naming the wire field:The wire body is unchanged.
test/eval.test.tsstill asserts the samemax_tokensandmax_completion_tokenson the outgoing request, and that assertion passes untouched — which is what proves this is a migration and not a behaviour change.Two test assertions moved with it: the pinned profile shape, and the refusal message for a smaller request cap, which Runtime now states as
request maxTokens 320 conflicts with AgentProfile.model.maxVisibleOutputTokens 2048. That refusal test keeps its place — it is a fail-closed gate that stops a mis-capped judge before any provider spend.The declared ceilings now actually reach the provider
test/trace-analysis-configuration.test.tsassertedreceivedBody.max_tokens === undefinedfor a profile that declaresmaxVisibleOutputTokens: 64andmaxTotalOutputTokens: 384. That assertion was pinning the old behaviour, where a declared ceiling was accepted and then silently never sent. Runtime 0.153.2 lowers both onto the Router route, so the wire now carriesmax_tokens: 64andmax_completion_tokens: 384, and the test asserts that instead. This is the ceiling arriving where it was always meant to go, not a new limit.Knowledge 8 → 10 does not reach Braid
Braid does not depend on
@tangle-network/agent-knowledgedirectly; it arrives transitively through Runtime, which pins^10.7.0. Braid touches no retrieval receipt, so the replaced receipt shape crosses without a source change here.Proof
Node 24.11.1, macOS,
TMPDIRset to a short non-symlinked path.pnpm run format:check(biome)pnpm run lint(biome)pnpm run typecheckpnpm run boundariespnpm run dependencies:checkpnpm run attributionpnpm run buildpnpm run check:releasepnpm run test -- --scope unitpnpm test(all scopes)pnpm run licenses:checkmaintoo — see belowThe install resolves the whole cohort with zero unmet peers, which is the point of the four-repo sequence:
Before Knowledge and Runtime widened their Eval peers, that same install reported:
licenses:checkis platform noise, and that was verified rather than assumedTHIRD_PARTY_LICENSES.jsonis generated frompnpm licenses list --prod, which reports the host's optional binaries. Regenerating on macOS produces a 63-entry file that differs from the committed 63-entry file in exactly three rows:No first-party entry differs — the inventory records no version for
@tangle-network/*, so these pin changes cannot move it. The same check fails identically on an unmodifiedmainworktree on this machine, which is how it was established as pre-existing rather than assumed. The committed Linux inventory is therefore left exactly as it is; regenerating it here would swap three rows and turn the Linux CI check red, which is the opposite of the intent.Baseline
Clean
main(74d9fe1) on this machine, sameTMPDIR: 780 passed / 1 failed / 2 skipped (783). The single failure isproduction default state isolates workspaces and config identities across restart, which asserts a relative sqlite path and gets the macOS~/Library/Application Support/braid/...location. It is pre-existing and platform-specific; CI on Linux is the authority.Simplification
Simplification: none — six version strings and the version bump. No path added, none removed.
Net: +7 / -7 lines in
package.json, plus the lockfile.Tests: +0, -0. A pin advance earns no test; the typecheck and the lockfile prove resolution, and the existing suite proves behavior.
Not done here: nothing deferred.