Lodestar 1.4.0 — the budget is yours to set
Lodestar 1.4.0
The startup budget stopped being a number somebody else picked.
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.
