- Tool profiles come from a committed `.napseer-tools.json` at the
project root (schema napseer.tools.v1). The unreleased tool_profiles
field in .napseer/project.json is removed: released clients reject
unknown locator fields, and 0.4.0 treats any extra file inside .napseer/
as private state needing migration (a test loads the released 0.4.0
check from c427e24 to prove the root file is invisible to it).
Environment still overrides; unusable files warn and fall back to core.
- CLI release 0.5.0 with distribution contract 2026-09-29; the minimum
supported contract stays 2026-09-10. The newer-contract rejection test
now derives its date from the installer's own contract.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Track a feed cursor in the local index: reindex takes the head cursor
before listing and commits it with the snapshot; reads refresh from
/changes (bounded, throttled) and apply creates, updates, archives,
restores and hard deletes atomically with the cursor. Existing
cursorless indexes bootstrap tracking on first read. Failures answer
locally with explicit freshness warnings; 400 triggers a full
reindex, 404 falls back to timestamp sync.
- Rank by a weighted score: exact identity (including aliases and
paths), term coverage including body, intent, bm25, authority, a
status penalty for superseded/completed records and mild recency.
- Return query-centred FTS5 snippets (never for E2E nodes).
- FTS schema v2: porter stemming, prefix index, title column, rowid
deletes, two-character terms, domain words no longer stopwords;
v1 indexes upgrade in place.
- Hyphenated alias/path literals match as adjacent-token phrases and
rank as exact identity.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Send Idempotency-Key on node create/patch/update writes (including bulk,
link, move, kanban and agent-node tools) and return the key used, so an
ambiguous failure can be retried without duplicating the write.
- Record a non-secret marker when login renewal is rejected; nap_whoami
reports auth_required ahead of gateway state, and local-index answers
carry stale warnings instead of silently serving old memory.
- Add nap_kanban_claim_next: pick and claim in one call, skipping cards
held by another operation, never replaying an ambiguous claim.
- Add nap_changes_since over /v1/projects/{id}/changes with a
per-worktree cursor that only advances after a successful read.
- Report real links_count/backlinks_count from indexed edges.
- Accept optional tool_profiles in .napseer/project.json when
NAPSEER_TOOL_PROFILES is unset.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>