Repository navigation
v1.3.1
- Fixed: the nested
AGENTS.mdpath report budget is metered on each path's final serializable
representation — escaped with the same display escaping the document emits, then measured as the
JSON string bytes actually written, including quoting, the array separator and, for the first
entry, the array's own brackets — instead of on pre-escape path bytes. Escape-dense names
(backticks, undecodable byte sequences) could previously make the emittednested_context.files
carry several times the documented 4 KiB; because quoting is now counted, an array whose total is
already near 4 KiB can also admit one entry fewer even with ordinary names. Both are value changes
in that one field and in the two signals derived from it —list_truncatedcan become true and the
nested_agents_list_truncatedstatus can appear where 1.3.0 reported neither — while no key set
changes, soschema_versionstays 3/4 andlist_truncatedkeeps its meaning. - Added:
--format jsonand--format json-compactenforce a bound on the final serialized
document (8,388,608 bytes including the trailing newline). The bound is fail-closed: an
over-budget repository exits 1 with an empty stdout and a one-line diagnostic rather than emitting
a document the declared contract cannot describe. It is a backstop, not an expected truncation
point: the component budgets cap the renderedcontextat 98,304 Markdown bytes and the repeated
source bodies at 56 KiB before escaping, the nested path list at 4 KiB after escaping, and
statusesat the 300-entry directory tree and 100 working-tree changes — the worst audited
escape-dense repository measured 248 KiB of escaped subjects and 263 KiB for the whole document,
so no run that succeeds today starts failing from this bound. - Docs: "Limits" now states a per-format final bound (Markdown 98,304 bytes; JSON and
JSON-compact 8 MiB serialized document) instead of one figure that only described Markdown, since
the machine formats legitimately carry the rendered context plus a second copy of every source
body and cannot share the Markdown cap. The same section now states the remaining asymmetry this
audit exposed and a new test pins it:nested_contextpaths andstatusessubjects are escaped,
whilerepositoryandsources[*].pathare emitted verbatim, so a repository root containing
bytes the filesystem could not decode renders as Markdown but makes--format jsonand
--format json-compactexit 1. Escaping those two fields is a separate published-value change
with its own consumer impact, so it is deliberately not folded into this budget correction. - Preserve: Markdown bytes, the default format, every flag and exit code other than the new
over-budget JSON case,schema_version3 and 4,contract_version3, the collection scope and the
Authority Boundary are unchanged; on ordinary repositories all three formats produce the same
bytes as 1.3.0.
Package: https://pypi.org/project/context-loader/1.3.1/
Source commit: aab62912762864c9761d04551cd1b97bbb721bf8