Commit Graph
77 Commits
Author SHA1 Message Date
HumbleTurtleandClaude Opus 5.5 c6bc28442a Rebind the committed project on login instead of forcing project consent
In a checkout whose private project credential had been revoked, `nap
auth login` refreshed only the account login while the dead project
override kept being selected, and attach fell through to a second,
project-scoped browser consent. Login now proves an OAuth project grant
dead (tombstoned, expired, or refresh rejected; unknown outcomes keep
it), selects the account login for this worktree, and attaches the
project named by .napseer/project.json without another consent. A
still-valid override is kept and reported. Attach takes the same fast
path, and a rejected project grant names the recovery step.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 21:47:36 -03:00
HumbleTurtleandClaude Opus 5.5 7eaaffb63f Make MCP writes retry-safe and coordination state visible to agents
- 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>
2026-09-28 21:34:35 -03:00
HumbleTurtle c427e2432a Move private runtime state outside checkouts and isolate worktrees 2026-09-21 13:19:27 -03:00
HumbleTurtle 2a78262754 chore: move CLI source metadata to Gitea 2026-09-17 09:40:02 -03:00
HumbleTurtle 2a4a054549 fix: preserve local memory across failed index rebuilds 2026-09-11 22:07:22 -03:00
HumbleTurtle 1cedc1b927 fix: make the published stdin bootstrap install the runtime bundle 2026-09-10 04:10:40 -03:00
HumbleTurtle 3dfedd1f35 test: isolate session fixtures from developer project credentials 2026-09-10 03:34:46 -03:00
HumbleTurtle 6c29a318e8 feat: configure agents with durable user sessions and scoped access 2026-09-10 03:29:48 -03:00
HumbleTurtle e8c6a5109e fix: bound MCP request cancellation and recovery 2026-09-05 02:20:58 -03:00
HumbleTurtle f8594bd3d8 feat: add portable project locator 2026-08-27 19:11:33 -03:00
HumbleTurtle 7eace14042 fix: expose local index rebuild command 2026-08-27 00:41:28 -03:00
HumbleTurtle 35acd72e4e feat: add anchor shortcut navigation 2026-08-26 19:20:06 -03:00
HumbleTurtle 6b308d5a49 fix: harden node patch contract diagnostics 2026-08-26 07:59:16 -03:00
HumbleTurtle 66ca3ab9be fix: make memory graph results actionable 2026-08-26 05:09:52 -03:00
HumbleTurtle 4fa36796b4 Optimize concurrent local discovery 2026-08-23 19:48:08 -03:00
HumbleTurtle e283b6b62f feat(mcp): report search projection coverage 2026-08-22 22:45:58 -03:00
HumbleTurtle f47459ba9b perf(mcp): plan and rank memory queries once 2026-08-22 20:15:33 -03:00
HumbleTurtle e410b5d4a5 fix(mcp): align discovery identity guidance 2026-08-22 19:39:39 -03:00
HumbleTurtle 4254cac826 perf(mcp): keep local read flows local 2026-08-22 19:28:41 -03:00
HumbleTurtle 2f61616a6f feat(mcp): add dependency-aware parallel batch 2026-08-22 18:42:31 -03:00
HumbleTurtle cc53da1dc7 fix: align local and server graph depth semantics 2026-08-21 22:42:31 -03:00
HumbleTurtle a9a682dee0 fix: gate hybrid graph reads on complete local indexes 2026-08-21 22:37:05 -03:00
HumbleTurtle 8921b131ef fix: reload MCP launchers when runtime changes 2026-08-21 22:33:56 -03:00
HumbleTurtle 7ca30e690d fix: harden MCP and auth runtime lifecycles 2026-08-19 23:35:13 -03:00
HumbleTurtle 9429b7039f feat: streamline agent memory surface 2026-08-16 04:29:39 -03:00
HumbleTurtle 5574faace0 Fix account login project creation lifecycle 2026-08-03 01:16:15 -03:00
HumbleTurtle 7ac412a335 Make gateway lifecycle help specific 2026-08-01 04:28:39 -03:00
HumbleTurtle ffbe28798b Serialize gateway log compaction safely 2026-08-01 04:21:56 -03:00
HumbleTurtle 5289965772 Keep CLI log compaction on live inode 2026-08-01 04:20:45 -03:00
HumbleTurtle fccdfd58df Preserve live gateway log during compaction 2026-08-01 04:18:00 -03:00
HumbleTurtle 39adc19510 Allow compatible CLI release upgrades 2026-08-01 04:15:09 -03:00
HumbleTurtle 0e552497b2 Use one relay listener lane by default 2026-08-01 04:03:01 -03:00
HumbleTurtle b555779bef Clear stale worker identity on project attach 2026-08-01 03:59:52 -03:00
HumbleTurtle bfda22f59b Repair MCP diagnostics and gateway lifecycle 2026-08-01 03:50:28 -03:00
HumbleTurtle ffd31cf568 Fix project attach reload before MCP discovery 2026-07-30 19:57:47 -03:00
HumbleTurtle a70cb7c46c Release resilient atomic Napseer CLI runtime 2026-07-30 00:21:50 -03:00
HumbleTurtle a88930ce69 fix(auth): reload attached credentials in live MCP 2026-07-21 01:51:38 -03:00
HumbleTurtle 590d10b7da feat(memory): resolve paths in context reads 2026-07-19 15:18:29 -03:00
HumbleTurtle 7e4002579b fix(auth): recover anonymous projects after token expiry 2026-07-19 14:36:27 -03:00
HumbleTurtle a2958b108f fix(auth): preserve OAuth project sessions 2026-07-18 19:32:29 -03:00
HumbleTurtle e1a4cf93f0 fix(cli): consolidate CLI dispatch surface and add nap project init
The dispatcher in `napseer_mcp_server.py::cli_main` had grown a duplicated
fragment of the project-command dispatcher (the attach/create/claim/status/
encryption block) that survived an earlier refactor. Because the fragment
was left at function-body indent after the `return` that closes the
canonical block, every `nap` subcommand that hands off to the MCP server
crashed at import time:

    File "/home/matias/.local/share/napseer/napseer_mcp_server.py",
    line 13561
        "frontend_url": cli_option(argv[3:], "--frontend-url",
                                   default=None),
    IndentationError: unexpected indent

That broke `nap project attach`, `nap project create`, `nap gateway
start`, and every other `nap *` command that dispatches to the MCP
server, surfacing as an "unknown command" / 401-style failure at the
caller. The pinned published revision `cbdc1840` still ships the broken
file; the next backend build needs to bump to this commit.

Rewrite `cli_main` so each `if command == "<cmd>":` block has a
single, complete dispatcher with no leftover fragments. Promote
`init` (first-time directory setup, no browser) to a canonical
`nap project init` subcommand, leave `attach` calling
`operator_loopback_login`, and `create` / `claim` unchanged.

Drop deprecated aliases (`ls`, `new`, `send`, `rm`, `set-status`,
`admin`, `global-list`, positional-state shortcut for
`nap project encryption set`, `process --all` shortcut) with clear
RuntimeError pointers to the canonical verbs.

Tests: `tests/test_cli_dispatch_consolidation.py` asserts canonical
verbs route correctly and dropped aliases raise with a clear pointer;
`tests/test_project_init_wizard.py` exercises the
`nap project init` wizard end-to-end;
`tests/test_nap_install_gateway_routes.py` updated for the
`process --all` removal. 19/19 pytest cases pass.

See /incidents/2026-06-15/napseer-mcp-server-py-13561-indentation-error-upstream
in Napseer memory for the prior incident writeup.
2026-06-15 14:10:39 -03:00
HumbleTurtle cbdc184055 Add incremental local index sync 2026-05-23 01:54:09 -03:00
HumbleTurtle 031b888fdd Use node identity in local helper UI 2026-05-22 23:39:59 -03:00
HumbleTurtle 1cb8075324 Require identity for context graph tools 2026-05-22 23:34:59 -03:00
HumbleTurtle fa754bb5bd Require identity for agent node tools 2026-05-22 23:32:31 -03:00
HumbleTurtle 5fb0603802 Relax plan lifecycle reason requirements 2026-05-22 23:28:31 -03:00
HumbleTurtle 1813e9f4e3 Require identity for plan lifecycle tools 2026-05-22 23:23:57 -03:00
HumbleTurtle 65448aee0b Require identity for graph node tools 2026-05-22 23:19:39 -03:00
HumbleTurtle 6759ce7055 Require identity for tee bulk updates 2026-05-22 23:09:57 -03:00
HumbleTurtle 411a7b73e1 Require node identity for kanban mutations 2026-05-22 23:05:32 -03:00