Other formats agents might prefer:
markdownjsonllms.txt

Agent? You probably want markdown or json, or Pod over MCP.

Reported issues for Obsidian Turbocharged

Pod holds 11 of 11 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to Obsidian Turbocharged.

Most discussed

bridge transport discards e.cause: a TLS trust failure is reported as "reload the plugin inside Obsidian"

Summary

createBridgeClient's doFetch catches every fetch rejection and rethrows a bare plugin_unreachable, discarding e.cause. A TLS trust failure, a connection refused, a DNS failure and an abort therefore arrive at bridgeState as one indistinguishable state, and bridge.state renders the wrong remediation for all but one of them.

In our case doctor reported the companion unreachable and told us to reload the plugin inside Obsidian, while the companion was answering the…

Read the thread · 2026-08-23 · closed · external user · 3 comments

plane adoption: ambient model work cannot be scoped narrower than read visibility, and there is no single-pass trigger to evaluate it

We have plane.enabled: false and want to turn it on. Two things block us, and both are small. Filing together because they are the same story: a feature that is correctly opt-in has no on-ramp.

Context: this vault has a hard output firewall over two folders (personal identity/health material). It is a real constraint, not a preference, and it is why we disabled plane in the first place.

1. Ambient model work cannot be scoped narrower than read visibility

plane-wiring.ts takes a…

Read the thread · 2026-09-02 · closed · external user · 2 comments

Lean facade has no way to enumerate the catalog: 97 of 163 tools never called in 4,787 calls

The lean facade advertises three meta-tools (find_capability, describe_capability, call_capability) in place of the full catalog. find_capability is query-only: it takes a natural-language string and returns the best matches. There is no way to ask "what capabilities exist".

That is a discoverability gap rather than a bug, but I have measured what it costs, so I wanted to report it with numbers rather than as a preference.

The measurement

episode_stats on our install, over…

Read the thread · 2026-09-02 · closed · external user · 2 comments

HITL-gated note tools require elicit_token but do not advertise it, and annotate destructive: false

Summary

move_note across a folder boundary, and delete_note, both correctly refuse without a confirmation token:

Error [elicit_required]: human confirmation required

The gate itself is good and should stay. The problem is that it is undiscoverable from the advertised schema, and the schema surface is internally inconsistent about it.

Evidence

describe_capability({ name: "move_note" }) returns properties:

vault, from, to, overwrite, update_backlinks, prev_hash,…

[Read the thread](https://github.com/The-40-Thieves/obsidian-tc/issues/785) · 2026-08-12 · closed · external user · 2 comments

### Tool errors are unactionable for programmatic callers: validation detail reaches only structuredContent

## Summary

`errorToResult` renders only the error code and message into the text content block. Everything diagnostically useful — the Zod issues naming the offending fields — is attached solely to `structuredContent`.

The server is doing the right thing by computing and attaching that detail. The problem is that at least one major client (Claude Code, current release) **discards `structuredContent` when `isError` is true** and renders the text line alone. The caller then receives:

Error…

Read the thread · 2026-08-12 · closed · external user · 2 comments

Bridge routes registered at root but server requests /obsidian-tc/v1/* — every bridge call 404s, vaults always resolve headless

Bug

The companion registers its bridge routes unprefixed, but the server requests every bridge path under /obsidian-tc/v1 — so every bridge call 404s and the server falls back to headless. The plugin bridge cannot work as shipped (v1.3.6).

Companion sidepackages/plugin/src/main.ts registerBridgeRoutes() registers r.path (e.g. /probe, /dataview/dql) directly on Local REST API's apiExtensionRouter. LRA mounts that router at the root of its Express app…

Read the thread · 2026-07-06 · closed · external user · 2 comments

bundle_folder: truncated:true has no continuation cursor, so a folder over max_bytes cannot be read in full

bundle_folder reports truncated: true when it hits max_files or max_bytes, but returns no continuation token, so there is no way to fetch the remainder. The only recovery is to re-call with a larger max_bytes, which requires knowing the answer in advance.

Repro

Our ☁️ Cloud Compute folder is 502,618 bytes across 74 notes. The default max_bytes is 500,000.

{ "vault": "auny", "root": "☁️ Cloud Compute", "max_files": 100,
  "max_bytes": 500000, "extensions":…

[Read the thread](https://github.com/The-40-Thieves/obsidian-tc/issues/879) · 2026-09-02 · open · external user · 1 comment

### call_capability: passing `arguments` instead of `args` reports the target's missing fields, never the envelope mistake (strictObject does not fire)

Follow-up to #784 / THE-823, which I filed and you closed by making `CALL_CAPABILITY_SCHEMA` a `z.strictObject`. That was the right fix on the server side, and it did change the failure. But from inside an MCP client the diagnosis is still misdirected, because the client strips the key before the server ever sees it.

Reproduced today on **v1.23.5** (`f98ca31a`), lean facade profile, stdio transport.

## Repro

Call `call_capability` with the envelope key `arguments` instead of `args`, against…

[Read the thread](https://github.com/The-40-Thieves/obsidian-tc/issues/876) · 2026-09-02 · open · external user · 1 comment

## Most recent

### M4 bridge tools (list_commands/execute_command etc.) have no fallback to Local REST API's native routes — related to #154

**Related to #154** (https://github.com/The-40-Thieves/obsidian-tc/issues/154). Filing as a separate issue since attempts to comment on #154 directly are erroring out on my end (`MCP tool call requires approval`) — please feel free to merge these into one if that's cleaner on your side.

**Summary**

Independent of the `getPublicApi()`/`getAPI()` integration bug in #154, `list_commands` / `execute_command` — and every other M4 bridge-domain tool — hardcode the companion plugin bridge with…

[Read the thread](https://github.com/The-40-Thieves/obsidian-tc/issues/155) · 2026-07-07 · closed · 1 comment

### Companion plugin never registers with current Local REST API (v4.1.3): wrong integration point (plugin.api / requestHandler.apiExtensionRouter don't exist)

**Summary**

The companion plugin (`packages/plugin`, v1.3.4/v1.3.6) never registers its bridge routes against a current install of `obsidian-local-rest-api` (v4.1.3, "Local REST API with MCP" by Adam Coddington — the latest release on the official repo). `registerBridgeRoutes()` in `packages/plugin/src/main.ts` returns `null` every time, so `GET /obsidian-tc/v1/probe` 404s and every server-side tool that needs the companion fails with `requires_live_obsidian`, even with the plugin correctly…

[Read the thread](https://github.com/The-40-Thieves/obsidian-tc/issues/154) · 2026-07-07 · closed · 1 comment

### OCR bridge always reports plugin_missing: CAP_IDS maps "text-extractor" to wrong plugin id "obsidian-text-extractor"

## Bug

`CAP_IDS` in `packages/plugin/src/routes.ts` maps the `text-extractor` capability to the plugin id `obsidian-text-extractor`:

```ts
const CAP_IDS: Record<string, string> = {
  ...
  "text-extractor": "obsidian-text-extractor",
  ...
};

But the community Text Extractor plugin's actual id is text-extractor (from its manifest.json as installed by the community store):

{ "id": "text-extractor", ... }

Impact (v1.3.6)

Both lookups that use this map fail even…

Read the thread · 2026-07-06 · closed · external user · 1 comment

The remaining reports are on the project's issue tracker.