Skip to content

v0.20.0

Choose a tag to compare

@agentfirstkit agentfirstkit released this 19 Jul 10:54
· 24 commits to main since this release
  • Move source-preserving editing onto the in-memory Document — set/unset/add/remove edit a string in place with no file — and reduce DocumentFile to a thin file adapter adding open, an atomic guarded save, and an edit() commit closure.
  • Stop auto-persisting document edits: the verbs stage in memory and a new public save() is the single atomic commit point, so callers can batch edits and validate the result before anything is written.
  • Grow sparse and nested documents in place — the source editor creates missing intermediate parents (JSON deep object chains, TOML tables) and the JSON backend sets or replaces collection values — matching the in-memory set_path.
  • Make Document::unset idempotent, returning whether it removed anything, so clearing an optional key needs no existence pre-check; the afdata unset CLI keeps its strict error-on-missing behavior.
  • Fix a JSON unset that took a comma belonging to an enclosing container when deleting the sole or last member of a nested object, which produced invalid JSON.