v0.5.4
Crash-safe config and self-update writes, symlink-hardened MCP reads, and paginated list_documents.
Breaking changes
- list_documents returns {documents, total, offset, returned, truncated}, no longer a bare JSON array.
Features
- list_documents pages results via limit/offset (default 100, max 500).
Improvements
- Config and self-update writes are crash-safe — no truncated settings.json or half-written binary.
- Security hardening: MCP reads and scans refuse symlinks escaping .archcore/; build moves to Go 1.25.11.
- Installing hooks and MCP config preserves unknown keys and key order in agent config files.
- Sync skips declared global sources, so read-only mounts aren't pushed as local documents.
- Document reads run off an mtime-keyed scan cache — faster on large .archcore/ trees.
Fixes
- status no longer flags CRLF/BOM (Windows-edited) documents as missing frontmatter.
- Malformed frontmatter YAML surfaces an error instead of silently parsing as empty.
- Title-only document updates preserve on-disk tag order.
- Sync marks only server-confirmed changes as synced, so failed pushes retry next run.
- Corrupt .vscode/mcp.json is left intact, not reset, preserving your other MCP servers.
- Self-update rejects oversized archive entries instead of installing a truncated binary.
Changelog
- aa561e3 fix: security updates
- f43941f fix(cmd): update returns ErrAlreadyReported; drop orphaned ErrServerUnreachable sentinel
- 2f9c19a docs(archcore): align stale rules and record audit execution
- 6c484f8 test: close the audit's coverage gaps
- b8ac522 refactor: consistency sweep — sentinels, aliases, ordering, validation, magic strings
- 6c3e01b refactor: remove dead code across api, sync, config, templates, hooks
- 6406b6d feat(mcp): list_documents pagination — limit/offset params and response envelope
- 16e0187 perf(mcp): mtime-keyed scan cache, per-call relation index, ReadDir nearby hints
- 58a63b2 fix: durability and consistency fixes across status, config, update, hooks, init
- 19da79f fix(sync): manifest records only server-confirmed changes; globals excluded from scan
- 97c0f29 fix(agents): MCP config writers — corrupt policy, JSONC exception, opencode delegation
- 4ed7a6b fix(hooks): rework installers on a RawMessage-preserving generic path
- cb39624 feat(jsonfile): add order- and content-preserving JSON config surgery package
- 856df4b fix(mcp): serialize manifest mutations via shared store; unify corrupt-manifest errors
- 7d7e682 fix(mcp): harden write-path validation with shared guardWritablePath
- c88b935 fix(mcp): sanitize OS errors in tool results — never leak absolute paths
- cdc60ef style: gofmt cmd/mcp_root.go
- 8e72afc fix(templates): surface frontmatter YAML errors from SplitDocument and strip BOM
- adf0063 docs: add full-audit fix plan (July 2026)