Skip to content

Lodestar 1.4.0 — the budget is yours to set

Choose a tag to compare

@github-actions github-actions released this 14 Aug 22:06
· 20 commits to main since this release
Immutable release. Only release title and notes can be modified.
d862bfb

Lodestar 1.4.0

The startup budget stopped being a number somebody else picked.

Lodestar 1.4.0

npm install --global lodestar-agent-context@1.4.0
lodestar start --cwd . --startup-budget 65536

16 KiB was a guess

Startup context is injected into every session before you type anything, so it has to be
bounded — unbounded, it competes with the work itself. That much is real.

The number was not. 16,384 bytes is roughly 4K tokens: generous for a small local model,
about two percent of a 200K-context host. The same figure applied to both, and nothing
could change it. A project would shed fifty records to protect two percent of a context
window that had room to spare.

Set it where it belongs

--startup-budget 65536             this run
LODESTAR_STARTUP_BUDGET=65536      this host
config record, project scope       this project
config record, global scope        this machine

Most immediate wins. A project setting beats a machine one, because the project is the
narrower statement. A config record is an ordinary record:

{ "id": "config:startup", "type": "config", "name": "Startup budget",
  "scope": "global",
  "content": { "state": "known", "value": { "startup_budget_bytes": 65536 } } }

Adjustable, not unbounded

A budget you can raise without noticing stops being a forcing function, and Lodestar
becomes another place sprawl accumulates — in SQLite instead of Markdown. So the
discipline moved from the wall to the reporting:

"budget": { "bytes": 65536, "source": "option" }

Every projection states the budget in force and where it came from. doctor measures
against the same number rather than its own copy, and reports against the strictest
budget any project in the registry runs under. Raising it is a choice on the record, not
a silent drift.

Values outside 8 KiB–256 KiB are typos, not instructions, and fall back to the default —
a stray 10 cannot strangle startup and a stray 999999999 cannot defeat the bound.

What it looks like

The same project, same records, two budgets:

16 KiB   0 context carried, 2 stubs, 53 names hidden entirely
64 KiB   10 context carried, 44 stubs, nothing hidden

The 1.3.0 shed ladder still runs underneath at any budget, so a projection is bounded by
whatever number is in force and start still always returns.

Upgrading

Schema unchanged since 1.2.0. data.budget is new. The default is 16 KiB, so a
registry that sets nothing behaves exactly as before.

npm install --global lodestar-agent-context@1.4.0
codex plugin add lodestar@personal

Requires Node.js 24.15.0 or newer.