Skip to content

1.0.9 — the agent stops fearing a window it isn't in, and a broken index stops blocking commits

Choose a tag to compare

@ReidenXerx ReidenXerx released this 08 Aug 21:09

Fixed — the agent thought every session was a 200k one

A 1M session carrying 300k tokens read as 152% full, so the agent hedged about running out and
wrote task-cores from the first hour — permanently, since it never got less full. The window was a
hardcoded 200,000.

It cannot simply be looked up: the transcript records no window, and claude-opus-5 is the same
model id on a 200k and a 1M session. So it is corrected by evidence instead — a session cannot have
carried more tokens than it can hold, so usage above the assumed window disproves the assumption.
The observation is rounded up to a real window rather than trusted exactly, since usage is sampled
at the last assistant turn and the true ceiling is higher than whatever was seen.

Revises upward only: too small is the failure being fixed, too large merely delays a warning.
An explicit contextWindowTokens in .bearing/hooks.local.json is your own statement of fact and
still wins.

Fixed — the pre-commit hook blocked commits when the INDEX was broken

Reported from a real repo: bearing:full-pdg ran unguarded under set -e, so any indexer failure
blocked every commit. Theirs ended "graph write collapsed — 200,722 relationships produced, 64,983
readable"
, reproducibly, and the team committed with --no-verify for days.

Blocking a commit because an index could not be built fails the developer for something that is
not their fault and that they cannot fix from there (NS-5) — and --no-verify teaches people to
skip the hook permanently, which costs far more than one stale index. bearing's CI has always been
report-not-gate for exactly this reason; the commit hook, where a block is more disruptive, was the
opposite.

The two halves are now split (NS-8): fail open for the developer — the commit proceeds — and
fail closed for the graph — the index is marked failed, so the session brief tells the agent
Index is STALE instead of letting it answer from a broken one. The warning names how to fix it
(bearing:agent-refresh), how to report it (bearing:fallback), and how to get the old behaviour
(BEARING_PRECOMMIT=block, mirroring GITNEXUS_CI_MODE=block).