Show HN: Selvedge – an append-only log of what your AI agent already rejected
Selvedge is an append‑only log that records the reasoning behind code changes made by AI coding agents, acting like a git blame for the why rather than just the what. It stores structured change events in a local SQLite file and can be queried to reveal the intent behind past modifications. The tool targets both large teams with long‑term AI‑generated codebases and solo developers who need to recall the rationale for recent AI‑driven edits.
- ▪Selvedge captures the agent's reasoning at the moment a change is made, preserving intent that would otherwise disappear after the session ends.
- ▪The data is kept in a SQLite file under a .selvedge directory, enabling local‑first operation with optional team‑server mode.
- ▪Users can run commands like selvedge blame to see who, when, and why a particular line was added, similar to git blame but with explanatory context.
- ▪Version 0.3.10 introduces new hooks such as SessionStart and PreCompact to inject digests and manage context compaction without blocking edits.
Hacker News (AI / LLM) files mainly under ai. We currently carry 3,917 of its stories.
Story provenance
Source · retrieval · rights · ranking — open for full record
inspect →
Story provenance
Attribution is not the same as permission. This drawer separates discovery metadata, excerpts, WeSearch-generated summaries, reuse status, and whether the publisher receives the visit. Nothing here claims a legal grant the publisher has not made.
Record
| Original publisher | GitHub |
| Canonical URL | https://github.com/masondelan/selvedge |
| Publication time | Fri, 07 Aug 2026 01:54:13 +0000 |
| Retrieval time | 2026-08-07T02:05:43.711Z |
| Last seen | 2026-08-07T02:05:43.711Z |
| Headline source | Publisher (no WeSearch rewrite) |
| Excerpt source | publisher body |
| Excerpt method | First ~120 words (~800 chars) of extracted publisher body, fair-use limited. |
| Summary | WeSearch · cerebras-chat (WeSearch summarizer) |
| Summary source text | contentText |
| Citation coverage | Summary is a WeSearch-generated derivative; primary citation is the original publisher URL. |
| Cluster | C_xHl5a4xYKs · 1 stories |
| Cluster logic | Grouped by semantic title/content similarity across sources within a rolling window. Same-publisher template collisions are excluded from coverage comparison. |
| Ranking reason | Story pages are not engagement-ranked. Hub feeds use recency, with optional source-diversified chronological ordering (cap consecutive stories per source). No personalized ranking. |
| Publisher visit | Yes — open original |
| Substitutes article? | No — link-out required for full text |
Rights status (four layers)
WeSearch handling by dimension
| Indexing | May the item be indexed (stored, ranked, made findable)? | Allowed |
| Snippet | May a short excerpt of the publisher's text be shown? | Allowed |
| AI summary | May WeSearch generate its own short summary of the article? | Limited |
| Retrieval / RAG | May the content be exposed for third-party retrieval-augmented generation? | Not asserted |
| Model training | May the content be used to train AI models? | Not asserted |
| Commercial reuse | May the content be reused commercially? | Not permitted |
Basis: Derived from the published RSS/Atom feed. Contact: [email protected]. Reviewed: 2026-07-24.
Opening excerpt (first ~120 words) tap to expand
selvedge.sh · PyPI · GitHub Long-term memory for AI-coded codebases — including what was already tried and rejected. Line attribution tells you who wrote something. Selvedge tells your agent what not to write next: the approaches this codebase already tried, reverted, and why. It's a git blame for AI agents, for the why rather than which model touched which line — captured live, by the agent, as the change happens, so nothing downstream has to guess at it. Selvedge is a local MCP server. AI coding agents (Claude Code, Cursor, Copilot) call it as they work to log structured change events with reasoning. Your data stays in a SQLite file under .selvedge/ next to your code. Local-first by default, team-server by choice, zero-LLM always.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at GitHub.