Pod

Yes, this is on purpose. Pod is built for agents, so the default page is plain HTML.
Human? View the normal website.
Agent? You probably prefer /mcp/cartographer/issues.md or /mcp/cartographer/issues.json, or Pod over MCP.

Reported issues for Cartographer

Pod holds 18 of 48 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to Cartographer.

Most discussed

Plan: Retire the handshake era once clients have migrated (D130)

Status: implemented on a branch, not merged — waiting on the entry condition. The code lives on feat/retire-handshake-era (both WPs, tests rewritten, make vet && make test && make smoke && make smoke-http && make e2e green). It must not be merged until the entry condition below holds: the 2026-08-26 roster evidence shows it does not. Blockers #116 (D128) and #117 are closed. On merge: add the final D130 entry to docs/decisions/transport-auth.md, update the affecte

Read the thread · 2026-08-10 · open · 3 comments

feat(mcp): opt-in per-KB tool-name prefix (and per-KB serverInfo.name) for clients that don't namespace MCP tools by server

Type: feature request (with bug-like user-visible impact) Area: internal/mcpserver, cmd/cartographer/serve.go, internal/config, cmd/cartographer/connect.go Affected versions: all, including v0.3.0 (HEAD b6d5f2e) Reported from: macOS, cartographer v0.1.2 installed via Homebrew cask, kiro-cli 2.14.2 Related decisions: D17 (multi-KB routing via ?kb=), D92 (per-KB MCP entries), D34 (kiro provider)


1. Summary

On a multi-KB server, Cartographer exposes *

Read the thread · 2026-07-27 · closed · 1 comment

Commit subjects for artifact_* and asset_* lose the identifying argument

Summary

Every KB write is a git commit, so the commit subject is the audit trail. The concept tools produce useful subjects; artifact_write/artifact_delete and asset_write/asset_delete produce the bare tool name, because the argument that identifies their target is not in the lookup list. The information is present in the arguments and discarded one line before use.

Read the thread · 2026-08-28 · closed · 0 comments

Plan: Every enforced limit and contract stated in its own tool description (D161)

Status: approved, not implemented. On completion: add the final D161 entry to the owning topic under docs/decisions/, update the affected current-state docs (docs/index.md §Maintenance rules), then close this issue from the implementation PR (Closes #182).

Context and diagnosis

A tool description is the only documentation an agent reads. Every limit and every contract missing from it is discovered by failing, and every alternative missing from it is not discovered at

Read the thread · 2026-08-28 · closed · 0 comments

Plan: Complete the concept refactor primitives (move, merge, collapse) (D160)

Status: approved, not implemented. On completion: add the final D160 entry to the owning topic under docs/decisions/, update the affected current-state docs (docs/index.md §Maintenance rules), then close this issue from the implementation PR (Closes #181).

Context and diagnosis

Reorganising a KB is a routine, repeated operation — and the three refactors that come up most each leave the author with a manual link-repair pass. This is the largest plan in the batch; its WPs

Read the thread · 2026-08-28 · closed · 0 comments

Plan: Reserved type Service and a redacted secret_resolve (D158)

Status: approved, not implemented. On completion: add the final D158 entry to the owning topic under docs/decisions/, update the affected current-state docs (docs/index.md §Maintenance rules), then close this issue from the implementation PR (Closes #179).

Context and diagnosis

Two defects on the secrets path. One makes the whole feature silently inert; the other puts credentials into an agent transcript.

1. type: Service is reserved, case-sensitive, and documente

Read the thread · 2026-08-28 · closed · 0 comments

Plan: The generated steering block must describe what this client received (D154)

Status: approved, not implemented. On completion: add the final D154 entry to the owning topic under docs/decisions/, update the affected current-state docs (docs/index.md §Maintenance rules), then close this issue from the implementation PR (Closes #175).

Context and diagnosis

The generated instructions describe intended state rather than what provisioning actually achieved on this client. Any partially-supported client therefore gets confidently wrong instructions,

Read the thread · 2026-08-28 · closed · 0 comments

Plan: Make a tool prefix the default for every mounted KB (D153)

Status: approved, not implemented. The design change is approved: the maintainer has decided that a unique tool prefix becomes an invariant of every mounted KB. It remains the one plan in the batch that changes default behaviour and renames existing tools, so it is breaking for multi-KB deployments and requires a minor-version bump and a feat: PR title. On completion: add the final D153 entry to the owning topic under docs/decisions/, update the affected current

Read the thread · 2026-08-28 · closed · 0 comments

Most recent

Plan: Enforce tool-prefix uniqueness and align the client warning (D152)

Status: approved, not implemented. On completion: add the final D152 entry to the owning topic under docs/decisions/, update the affected current-state docs (docs/index.md §Maintenance rules), then close this issue from the implementation PR (Closes #173).

Context and diagnosis

Two independent defects in the tool-prefix path. Both are cheap, both are worth fixing regardless of whether the default ever changes (that is D153 (#174)), and one of them means **a deployment

Read the thread · 2026-08-28 · closed · 0 comments

Plan: Make a KB's capabilities and mount provenance visible from a session (D151)

Status: approved, not implemented. On completion: add the final D151 entry to the owning topic under docs/decisions/, update the affected current-state docs (docs/index.md §Maintenance rules), then close this issue from the implementation PR (Closes #172).

Context and diagnosis

The server knows its own configuration and never volunteers it. An agent can enumerate 33 tools and read 600 concepts and still cannot answer *"what am I allowed to do in this KB, and what is

Read the thread · 2026-08-28 · closed · 0 comments

connect/sync announce writes that did not happen (dry-run artifacts, and the MCP entry for providers with no emitter)

Summary

connect and sync announce writes that did not happen. Two independent occurrences, one shared root cause: the output lines are derived from what the command intended to do, not from what it actually did.

Both were hit on v0.8.1 while connecting a Hermes client and while previewing a Kiro connect.

A. -dry-run prints materialized artifacts in the past tense

cartographer connect -dry-run all on a machine with an installed-but-unconnected provider:

[dry-run] would wr

[Read the thread](https://github.com/BeppeTemp/cartographer/issues/162) · 2026-08-28 · closed · 0 comments

### Plan: kb_status must not read as "this KB has no remote" (D145)

> **Status**: approved, not implemented. On completion: add the final `D145`
> entry to `docs/decisions/` (owning topic: the file holding D117/D76 git
> decisions), update the affected current-state docs (`docs/index.md`
> §Maintenance rules), then close this issue from the implementation PR
> (`Closes #<n>`).

## Context and diagnosis

A user's agent called `kb_status` on a KB with a GitLab `origin`, fully synced (0 ahead / 0
behind), and read back:

```json
{ "git_profile": "local", "base_bran

[Read the thread](https://github.com/BeppeTemp/cartographer/issues/143) · 2026-08-27 · closed · 0 comments

### Plan: Make the D102 tool-prefix mitigation reach the agent (D144)

> **Status**: approved, not implemented. On completion: add the final `D144`
> entry to `docs/decisions/transport-auth.md`, update the affected
> current-state docs (`docs/index.md` §Maintenance rules), then close this
> issue from the implementation PR (`Closes #<n>`).

## Context and diagnosis

A user running v0.6.1 with two KBs on one server (`?kb=A`, `?kb=B`) under Kiro CLI hit
exactly the failure D102 describes: Kiro flattens MCP tools into a single namespace, keeps
one KB's 32 tools and si

[Read the thread](https://github.com/BeppeTemp/cartographer/issues/142) · 2026-08-27 · closed · 0 comments

### Plan: Hermes as a supported provider with inbox skill delivery (D141)

> **Status**: approved, not implemented. On completion: add the final `D141`
> entry to the owning topic under `docs/decisions/`, update the affected
> current-state docs (`docs/index.md` §Maintenance rules), then close this
> issue from the implementation PR (`Closes #<n>`).

## Context and diagnosis

Hermes Agent is a supported client in practice — it talks to a Cartographer
server over MCP with its own scoped token — but it is invisible to provisioning:
it is not in `configurator.Provider`, n

[Read the thread](https://github.com/BeppeTemp/cartographer/issues/139) · 2026-08-27 · closed · 0 comments

### Plan: Detect and heal on-disk drift of managed artifacts (D139)

> **Status**: approved, not implemented. On completion: add the final `D139`
> entry to the owning topic under `docs/decisions/`, update the affected
> current-state docs (`docs/index.md` §Maintenance rules), then close this
> issue from the implementation PR (`Closes #<n>`).

## Context and diagnosis

Drift detection compares the **manifest against the lockfile** and never looks
at the filesystem. `ComputeDiff` (`internal/provisioning/provisioning.go:879-926`)
matches `ManagedFile.ContentHash` 

[Read the thread](https://github.com/BeppeTemp/cartographer/issues/137) · 2026-08-27 · closed · 0 comments

### Plan: Stamp provenance on materialized skills and agents (D138)

> **Status**: approved, not implemented. On completion: add the final `D138`
> entry to the owning topic under `docs/decisions/`, update the affected
> current-state docs (`docs/index.md` §Maintenance rules), then close this
> issue from the implementation PR (`Closes #<n>`).

## Context and diagnosis

A skill or agent materialized by Cartographer is **indistinguishable from a
hand-written one**. `copyArtifactFiles` (`internal/provisioning/provisioning.go:2060-2112`)
copies each file byte-for-by

[Read the thread](https://github.com/BeppeTemp/cartographer/issues/136) · 2026-08-27 · closed · 0 comments

### Plan: Declarative provider registry for the client configurator (D137)

> **Status**: approved, not implemented. On completion: add the final `D137`
> entry to the owning topic under `docs/decisions/`, update the affected
> current-state docs (`docs/index.md` §Maintenance rules), then close this
> issue from the implementation PR (`Closes #<n>`).

## Context and diagnosis

Adding a supported provider currently means editing the same four names in
eight files. Non-test references to `ProviderClaudeCode`/`ProviderCodex`/
`ProviderKiro`/`ProviderOpenCode`:

| File | re

[Read the thread](https://github.com/BeppeTemp/cartographer/issues/135) · 2026-08-27 · closed · 0 comments

### Plan: Consolidate index_rebuild into reindex (D136)

> **Status**: approved, not implemented. On completion: add the final `D136`
> entry to the owning topic under `docs/decisions/`, update the affected
> current-state docs (`docs/index.md` §Maintenance rules), then close this
> issue from the implementation PR (`Closes #<n>`).

## Context and diagnosis

Two tools maintain the same derived search index and, once embeddings are gone
(D135), they differ only in *how much* they rebuild:

- `index_rebuild` (`internal/mcpserver/tools_search.go:358-425`

[Read the thread](https://github.com/BeppeTemp/cartographer/issues/134) · 2026-08-27 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/BeppeTemp/cartographer/issues).