Skip to content

release v0.1.4 - #14

Merged
ranxianglei merged 1 commit into
masterfrom
2026-08-08_release-v0.1.4
Aug 8, 2026
Merged

ranxianglei merged 1 commit into
masterfrom
2026-08-08_release-v0.1.4

Conversation

@ranxianglei

Copy link
Copy Markdown
Owner

Release v0.1.4

Cache-health release. Three prefix-cache killers fixed + durable logging.

Includes (since v0.1.3)

  • remove condenseOldToolResults (prefix-cache killer) — stubbed old tool results every turn, rewriting stable history bytes
  • fix isTitleGen flip (OpenAI/chat path) — messages.length<=2 made turn-1 system differ from turn-2+, breaking cache every session
  • preserve Anthropic cache_control through the core round-trip + system block (M2+M3 from audit)
  • tee logger — logs now persist to ~/.local/state/billion-context/bili.log by default (file + stderr, 10MB rotate)
  • [acp-usage] cache logging on the OpenAI chat path — previously only the Responses/Codex path logged cache hit %

Verified cache health

Pre-flight

  • typecheck: 0 errors
  • tests: 141 pass
  • build: success

Release mechanism

Merging this PR (commit release v0.1.4 on *_release-v* branch) triggers release.yml → npm publish --tag latest + git tag v0.1.4.

Tracking

@ranxianglei
ranxianglei merged commit 9e4bd03 into master Aug 8, 2026
2 checks passed
antclt pushed a commit to antclt/billion-context that referenced this pull request Sep 3, 2026
ranxianglei pushed a commit that referenced this pull request Oct 11, 2026
…tentional drift)

The golden-google drive runs compress.injectTool+injectNudge, so after the fold at body #9 the proxy injects its ephemeral [ACP] status-marker line into the next request's history (#717/#1029). Pre-fix that line rode into the google lane's projection on every subsequent turn; post-fix prepareGoogle strips it before projection — which is exactly what #2798 changes, now observable in the pin set.

Delta is exactly the strip effect and nothing else: outbound bodies #10-#14 each shrink by a constant 268 bytes (the fixed marker content removed from contents); stateDigest/sectionDigests(state,stats,metadata)/stateKeyDigests(messageRefs,tokenSnapshot,lastPassIds) move accordingly; blockContents digest, blocks/nudge/deadRefs/hiddenOrphanRefs/terminalStreak digests, foldAt/editedAt/summaryFrom and stateShape (incl. refs count) are unchanged. The other three wires' goldens regenerate byte-identical (no git diff for chat/anthropic/responses), confirming no cross-lane effect. Regenerated with node --import tsx scripts/update-storage-render-goldens.ts (#2798, Closes via PR #2805).
@ranxianglei
ranxianglei deleted the 2026-08-08_release-v0.1.4 branch October 15, 2026 05:31
ranxianglei added a commit that referenced this pull request Oct 21, 2026
Third instance of the same miss as the anthropic round-trip harness: the
#3989 view-latch induction judge calls solveSmt2 with no solver-availability
gate, so every solverless CI shard fails with 'no solver available' instead
of skipping per KDD #14. Same probe + skip pattern as the google harness;
the solver-free behavior-matrix test keeps running everywhere.
ranxianglei pushed a commit that referenced this pull request Oct 21, 2026
…dev-machine paths + missing no-solver skips

Incidental CI-red fix found while triaging #4050's run: master 56a0f5a
(this branch's base) fails its own test shards on pre-existing
verif-harness defects unrelated to the #4050 diff — verified against
master CI run 39528617351: same ENOENT on the anthropic round-trip
tests (ubuntu-22 shard 2) and same cvc5 ModuleNotFoundError on
view-latch (ubuntu-22 shard 3).

1. tests/verif-wire-anthropic-roundtrip.test.ts +
   tests/verif-wire-google-rebuild-stability.test.ts carried absolute
   dev-machine paths (/home/dog/tmp/bili-verif2/kernel/src/wire/*.ts)
   into translateFunction({ file }) -> ENOENT on every runner. Now
   resolved repo-relative via new URL(..., import.meta.url), the pattern
   the other verif harnesses already use.
2. tests/verif-wire-anthropic-roundtrip.test.ts +
   tests/verif-view-latch-discipline.test.ts called solveSmt2 without
   the no-solver skip guard the other nine verif test files carry (KDD
   #14: solver-less environments auto-skip, never red). Added the
   module-level probe + { skip: !haveSolver } option exactly as
   tests/verif-wire-google-rebuild-stability.test.ts does it.

Verified both directions locally: with a solver present all 8 tests run
and pass; with CVC5_HOME/Z3_BIN pointed away (simulating the ubuntu-22
runners) the 5 solver tests SKIP and the 3 real-code baselines still
pass.
ranxianglei pushed a commit that referenced this pull request Oct 21, 2026
… (CI triage #4062)

Found while triaging the #4062 CI red: the async test body kept executing
after t.skip() because the gate line had no return. On every solverless CI
shard it then threw deeper (no-solver error on Linux, doubled-drive-letter
ENOENT on Windows), producing a 'not ok ... # SKIP' TAP line that is NOT
counted in the failure total but reads like a failure and misled this
triage. The return makes the skip honest per the KDD #14 auto-skip
contract; behavior with a solver present is unchanged (branch never taken).
cskwork pushed a commit to cskwork/billion-context that referenced this pull request Oct 21, 2026
…lei#14)

Adapts the proxy to acp-kernel 0.0.45's absorb pipeline:

- src/absorb.ts: absorb settings resolution (absorbEnabled,
  applyAbsorbConfig with percent parsing) and executeAbsorb — the wire
  result text carries the model's summary verbatim inside
  <absorbed-summary> (the absorb tool_use is rewritten to text, so this
  is the only durable record).
- Tool injection for all three protocols (anthropic/openai/responses,
  streaming loops included), plugin manifest + MCP tool list now
  advertise absorb; plugin tool API can execute it.
- Kernel 0.0.31 -> 0.0.45-pr.160.14 (exact pin; flips to 0.0.45 when
  kernel release PR ranxianglei#160 merges):
  - openaiToCore now hoists the leading system/developer prefix out of
    the fold space: prepareOpenai re-injects systemText (and restores a
    developer head role) or the host system prompt is silently lost.
  - KEEP_LAST_ORPHANED=2 changed hide-consumed semantics: plugin-mode
    wire echoes of executed compress calls are orphans that stay
    visible; hidePluginEchoCompressCalls drops the consumed tail pair.
- Tests: roundtrip hoist contract, manifest/MCP 5-tool lists, 6 new
  absorb unit tests. 518/518 pass.
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.

1 participant