<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><description>Memory for AI coding agents that lives in your git history, not your vendor&#39;s. Why code is the way it is. Open source, code-aware, local-first. Building in public - spelunk.cloud</description><link>https://bsky.app/profile/spelunk.cloud</link><title>@spelunk.cloud - spelunk</title><item><link>https://bsky.app/profile/spelunk.cloud/post/3mr3t6fejj22w</link><description>spelunk search weighs two things at once: what your query means, and how the code connects. So a definition can rise into your results sharing not one word with what you typed, pulled up by the code that did match pointing straight at it.</description><pubDate>20 Jul 2026 17:32 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mr3t6fejj22w</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mqvmdlfh5s24</link><description>Spelunk v0.9.4 is released. We went back to onboarding, the first time you use Spelunk, and hit more rough edges than we expected this late. 0.9.4 files them down.&#xA;Example: The index now skips generated, vendored, and minified files, so it reflects the source you wrote.&#xA;&#xA;https://github.com/spelunk-cloud/spelunk/releases/tag/v0.9.4</description><pubDate>18 Jul 2026 06:13 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mqvmdlfh5s24</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mqquqhyu6s2t</link><description>You told them the new way on day one. Then a month of bug fixes in old code, and nothing said it again. It faded. An agent cannot be told once at all: the version you told is gone by the next session.&#xA;&#xA;https://www.spelunk.cloud/blog/common-is-not-correct</description><pubDate>16 Jul 2026 09:00 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mqquqhyu6s2t</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mqluoyiio224</link><description>Mid-migration, most of the tree still does it the old way. The pattern that looks like precedent is the one you decided to leave. A newcomer copies it in good faith. So does an agent, every session. Common is not correct. Only the decision tells them apart.</description><pubDate>14 Jul 2026 09:16 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mqluoyiio224</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mpqxkirzqs2e</link><description>grep answers where is Y. It cannot answer why is Y this way, because the why is not a string in the current code. It lives in the decision that set it, the change that revised it, the convention it superseded. That is the layer we index, so an agent can read it back.</description><pubDate>03 Jul 2026 16:25 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mpqxkirzqs2e</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mpqll7vrjc2m</link><description>Spelunk 0.9.2 is out. First run just works: nothing extra to install, no separate ast-grep to fetch, and the server comes up ready right away. Five more languages indexed: PHP, Ruby, C#, Kotlin, Swift, plus a security pass. https://github.com/spelunk-cloud/spelunk/releases/tag/v0.9.2</description><pubDate>03 Jul 2026 12:51 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mpqll7vrjc2m</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mpo3steqxk2d</link><description>Chunking code by line count splits a function down the middle and retrieval gets worse. We chunk on the syntax tree instead, at function and class boundaries, across about twenty languages. The unit of a codebase is not the line, it is the definition.</description><pubDate>02 Jul 2026 13:04 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mpo3steqxk2d</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mpkwblbrgk2h</link><description>Spelunk 0.9.1 is out 🪨&#xA;&#xA;The headline: an official Windows build. One-line install.ps1 and you&#39;re indexing.&#xA;&#xA;Plus keychain-backed credentials, a leaner default model (~340MB, down from ~640), and no more OOM on big files.&#xA;&#xA;git tracks what changed. Spelunk remembers why.</description><pubDate>01 Jul 2026 06:47 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mpkwblbrgk2h</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mpgmrf52cs2y</link><description>What changes when it is not one engineer&#39;s agents sharing memory but a whole team&#39;s, and one person&#39;s sharper convention quietly becomes everyone&#39;s default?&#xA;spelunk.cloud/blog/memory-your-whole-team-shares&#xA;https://spelunk.cloud/blog/memory-your-whole-team-shares</description><pubDate>29 Jun 2026 13:46 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mpgmrf52cs2y</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mp7gky4wyk2z</link><description>git tracks what changed. Spelunk remembers why.&#xA;&#xA;spelunk 0.9 is out, and we&#39;re calling it the release candidate for v1. Not a beta. A stable CLI we&#39;ve been running on real work for months, with the why-layer behind your code now syncing across machines.</description><pubDate>26 Jun 2026 17:06 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mp7gky4wyk2z</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3moxcjjkjuk2n</link><description>Wrote up a design decision we have refused to walk back: the memory your agents build up should not live inside one agent vendor. A separate layer any harness can call, stored in your git history, not ours.&#xA;spelunk.cloud/blog/memory-shouldnt-belong-to-your-vendor&#xA;https://spelunk.cloud/blog/memory-shouldnt-belong-to-your-vendor</description><pubDate>23 Jun 2026 11:32 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3moxcjjkjuk2n</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mouvzbsoqs2o</link><description>An agent shells out to Spelunk thousands of times a session. So the line we hold: no model in the hot path. Same query, same answer, no network, nothing to spin up. A memory layer you call that often has to be boring and fast, or it becomes a tax on every step.</description><pubDate>22 Jun 2026 12:43 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mouvzbsoqs2o</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mokmhskm222b</link><description>If your agent&#39;s memory lives inside one coding-agent vendor, switching agents means amnesia.&#xA;&#xA;That&#39;s a reasonable bet, just not ours. Spelunk talks JSONL over stdout, exit codes, optional REST, so the memory layer doesn&#39;t change when the agent does. Claude Code today, whatever you use next year.</description><pubDate>18 Jun 2026 10:26 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mokmhskm222b</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mod45ca3g22u</link><description>Last release we removed six CLI commands.&#xA;&#xA;The one I miss least: an &#34;ask&#34; command that wrapped a model so the CLI could answer open-ended questions. Felt great in a demo. Slow, non-deterministic, needed a model configured before the tool did anything. Drew a line: no LLM in the CLI. Held it since.</description><pubDate>15 Jun 2026 10:45 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mod45ca3g22u</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mo3uiwwj3k2u</link><description>Small thing that took us too long to get right: agent memory belongs inside git history, not in a file beside the code or a sidecar store.&#xA;&#xA;Beside-the-code drifts and conflicts. A sidecar is a second source of truth to back up. Git notes just clone with the repo. The why travels with the code.</description><pubDate>12 Jun 2026 13:40 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mo3uiwwj3k2u</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mnys32is4k2d</link><description>Nice side effect of storing decisions in git notes with supersede semantics: when two old notes disagree - a stale convention and the one that replaced it - it surfaces on the first query, not three weeks into a refactor.&#xA;&#xA;More on how this works: spelunk.cloud/blog/memory-in-git-notes&#xA;https://spelunk.cloud/blog/memory-in-git-notes</description><pubDate>11 Jun 2026 08:18 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mnys32is4k2d</guid></item><item><link>https://bsky.app/profile/spelunk.cloud/post/3mnsjsqaij22p</link><description>An AI agent can read what your code does in seconds.&#xA;&#xA;Ask it why it&#39;s that way — why this retry backs off for 800ms, why we stopped using the obvious library — and it answers just as confidently. And it&#39;s guessing. The why isn&#39;t in the code.</description><pubDate>08 Jun 2026 20:34 +0000</pubDate><guid isPermaLink="false">at://did:plc:wmk3ple53epfty65wqpy2f56/app.bsky.feed.post/3mnsjsqaij22p</guid></item></channel></rss>