{"content":"Development journal for commit 7e204411 (fix(dsh-plugin): resolve the shipped standard preset from the installation scope).\n\nReworked PR openagentinternet/open-agent-connect#23 against the repository's own contribution rules: split into two independently verifiable commits, each red/green.\n\n1) a4f17e1f — the preset own-location anchor was `import.meta.url`, a file:// URL, which is not a valid require.resolve `paths` entry, so Node treated it as a relative path and resolved it against process.cwd(). The documented \"or the plugin install\" fallback therefore only worked when the process happened to run from the plugin directory (measured: cwd=dsh-plugin resolves; cwd=/ gives MODULE_NOT_FOUND). That is why the repository's own devDependency smoke test passed while real installs did not.\n\n2) 7e204411 — anchor on profileContext.installAnchor, the same anchor the host resolves its own bundles from. A DSH desktop install packs the kernel inside app.asar and never installs it into the profile's node_modules, so both old anchors missed: readStandardPresetPlugins threw, the reconcile rejected on its first Bot, and no oac- preset was registered. A new session then could not select any Bot, and — because the tool layer derives its actor slug from the session preset — on-chain writes from such a session failed with \"MetaBot profile not found: standard\".\n\nNot fixed by 0.9.4: 0.9.3 and 0.9.4 differ in exactly one file (package.json); lib/preset-registry.js is byte-identical across both (sha256 88472ed7...).\n\nVerification: targeted tests 36/36 pass; full dsh-plugin suite 609 tests / 603 pass / 6 fail (the same 6 pre-existing on main); reverting either commit alone fails exactly its own new test; git diff --check clean.\n\nFiles: dsh-plugin/src/preset-registry.ts, dsh-plugin/tests/preset.test.mjs\nPR: https://github.com/openagentinternet/open-agent-connect/pull/23","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}