Skip to content

docs(readme): rewrite as concrete show-dont-tell description#3190

Merged
Sinity merged 4 commits into
masterfrom
docs/readme-rewrite
Jul 21, 2026
Merged

docs(readme): rewrite as concrete show-dont-tell description#3190
Sinity merged 4 commits into
masterfrom
docs/readme-rewrite

Conversation

@Sinity

@Sinity Sinity commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Ref polylogue-93cp (follow-up: operator judged the incremental fix insufficient — full rewrite, reasoned from structure).

Summary

Complete README rewrite. The old README was an argument about the project's epistemology ("local evidence system", "bounded contract proof", "construct-valid", claim-ledger links) written in internal QA vocabulary, led with the nichest demo (demo receipts on synthetic data — also the hero image's content), and showed almost no actual output. The new README is a concrete description of what the tool is, ordered by a cold reader's questions, with real command output shown at every step.

Structure (reasoned, not predicted)

  1. One-paragraph literal description: scattered per-tool histories → one local SQLite archive, four interfaces.
  2. See it work — four commands with their real outputs (demo seed, cross-origin find, read --view transcript, actions where is_error … | group by tool | count). Every output block was executed against a fresh scratch demo archive during writing; nothing is invented.
  3. Own-history onboarding (initpolylogued runimport), origin table with how each source arrives.
  4. The archive physically (5-file tier table, durability rule) + the four modelling decisions that make queries trustworthy, stated as facts instead of philosophy.
  5. Interfaces (CLI grammar, MCP config block, daemon, Python), Install (verified: all three routes ship all three binaries), generated docs block (unchanged), Status, Development, Security.

Removed

  • The hero image (evidence-receipt.png) — its content was the receipts demo, which is not what the product is; the core loop is now shown as text output directly. The asset remains under docs/examples for docs/visual-evidence.md.
  • "Run the first proof" / evidence-chain / proof-artifact front-matter, search-boundaries section, fallback-import demo, defensive over-specification (unknown-export filter caveat, registry self-verification instructions, FTS indexing boundaries) — docs-level content, linked instead.
  • A stale example: the old README's read --first --view messages uses a --first flag the read verb does not have (verified against polylogue read --help; the chain silently degrades to a hit list). All commands in the rewrite are copy-paste-verified.

Verification

  • Every shown command executed against a fresh POLYLOGUE_ARCHIVE_ROOT scratch demo seed; outputs pasted from real runs (trimmed with ... only).
  • devtools render all --check → exit 0, no "out of sync" (public-claims view regenerates identically — it derives from the assertion store, not README markers).
  • devtools verify --quick → exit 0 (16/16).

Summary by CodeRabbit

  • Documentation
    • Reworked the README with a shorter product overview and a new hands-on demo.
    • Added examples for seeding synthetic data, cross-provider search, transcript viewing, and tool-activity queries.
    • Clarified workflows for importing personal history and using available interfaces.
    • Updated status, development, security, installation, and archive guidance.

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@Sinity, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 29 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0c439a4f-c605-4999-98c4-8f8aaea5967d

📥 Commits

Reviewing files that changed from the base of the PR and between ac596c7 and 2fc7af0.

⛔ Files ignored due to path filters (8)
  • docs/generated/public-claims/findings-page.json is excluded by !**/generated/**
  • docs/generated/public-claims/findings-page.md is excluded by !**/generated/**
  • docs/generated/public-claims/launch.json is excluded by !**/generated/**
  • docs/generated/public-claims/launch.md is excluded by !**/generated/**
  • docs/generated/public-claims/readme.json is excluded by !**/generated/**
  • docs/generated/public-claims/readme.md is excluded by !**/generated/**
  • docs/generated/public-claims/verified-export.json is excluded by !**/generated/**
  • docs/generated/public-claims/verified-export.md is excluded by !**/generated/**
📒 Files selected for processing (3)
  • README.md
  • devtools/public_claims.py
  • docs/public-claims.yaml
📝 Walkthrough

Walkthrough

README.md was substantially rewritten to present current demo commands, archive workflows, interfaces, installation steps, project status, development commands, and security guidance in a shorter structure.

Changes

README rewrite

Layer / File(s) Summary
Demo and archive workflows
README.md
Adds demo seeding, cross-provider search, transcript reading, personal-history commands, origin mapping, and condensed archive-modeling guidance.
Interfaces and installation
README.md
Updates CLI, MCP, daemon, Python, semantic-search, and installation descriptions.
Status, development, and security
README.md
Replaces former status and limitations content with updated roadmap, development commands, and single-user security guidance.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly matches the main change: a README rewrite into a concrete show-don't-tell description.
Description check ✅ Passed The description is detailed and covers summary, motivation, structure, removed content, and verification, with only some optional sections omitted.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/readme-rewrite

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@README.md`:
- Around line 70-74: Update the tool-activity example in README.md to use the
documented CLI structure of find QUERY followed by the action pipeline,
replacing the current direct pipeline invocation while preserving its filtering,
grouping, and count behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: c81c6883-eb7d-4b82-8a0d-2172d4f2bd78

📥 Commits

Reviewing files that changed from the base of the PR and between 117ce29 and ac596c7.

📒 Files selected for processing (1)
  • README.md

Comment thread README.md Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ac596c7e09

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread README.md
Comment on lines +107 to +108
Each origin is captured at full fidelity — roles, prose, thinking, tool calls
and results, attachments, session metadata — as far as the source provides

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Qualify the full-fidelity guarantee

For users relying on Polylogue as a complete archive, this promises more than the importers preserve: docs/providers/claude-code.md:48-50 says workspace file-history snapshots are retained only as metadata, and polylogue/sources/parsers/antigravity.py:44-50 explicitly models partial exports where sessions can be dropped. Restore the removed uneven-fidelity caveat rather than claiming every origin is captured at full fidelity.

Useful? React with 👍 / 👎.

Comment thread README.md
Comment on lines +176 to +178
opt-in (`--semantic`) that requires configuring an embedding provider —
that is the only path where any text leaves your machine, and
`polylogue ops embed preflight` shows the cost before anything is sent.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Qualify the only-network-egress claim

For deployments enabling a non-default Sinex mirror or primary mode, semantic embeddings are not the only path that can transmit archived text: polylogue/sinex/material_adapter.py:498-517 places message text and blocks in publication payloads, and polylogue/sinex/service.py:315-320 sends those payload bytes through the configured transport. Scope this privacy claim to the default standalone configuration or disclose the Sinex publication path.

Useful? React with 👍 / 👎.

@Sinity

Sinity commented Jul 20, 2026

Copy link
Copy Markdown
Owner Author

HOLD until the v42 rebuild promotes (operator direction): the show-blocks currently use the synthetic demo corpus, which reads as contrived. Once the restored archive is promoted and verified, the "See it work" outputs get regenerated from the REAL archive (operator authorized: standard dev content is not private by default; curate/redact judiciously) — cross-origin find hits, a real transcript, real error-by-tool counts — with the demo-seed commands demoted to a runnable-demo note beside Install. Do not merge before that swap.

Sinity added a commit that referenced this pull request Jul 20, 2026
#3202)

## Summary

Collapses the MCP server's role ladder (`read < write < review < admin`)
into
independent, config-only capability opt-ins per polylogue-800m: the
server is
read-only by default; write (`write`/`run`), judge (`judge`), and
maintenance
(`maintenance`) are each an explicit, independent boolean opt-in
resolved
once at server startup from `polylogue.toml` `[mcp]` or
`POLYLOGUE_MCP_*_ENABLED` env vars. There is no ladder — enabling one
capability never implies another — and no `--role` CLI flag anywhere in
the
stack.

## Problem

The operator decided (2026-07-20, polylogue-800m) that the MCP role
ladder
is not a product concept worth keeping: `--role read/write/review/admin`
modeled an ordered tier where each level silently included the previous
one's authority, which is both more machinery than the actual
requirement
(independent per-capability opt-in) and a worse security default
(enabling
`review` to unlock `judge` also silently re-exposed `write`/`run`). Per
the
repo's no-compat doctrine this is a hard removal, not a deprecation.

## Solution

- **`polylogue/config.py`**: three new layered config keys following the
  existing single-resolver (`PolylogueConfig`) pattern —
  `mcp_write_enabled`/`mcp_judge_enabled`/`mcp_maintenance_enabled`
(`[mcp]` TOML table, `POLYLOGUE_MCP_*_ENABLED` env, all default
`False`).
- **`polylogue/mcp/declarations/models.py`**: new `MCPCapabilities`
frozen
  dataclass (three independent booleans + `.allows(required)`) replaces
  `MCPRole`/`MCP_ROLE_ORDER`/`mcp_role_allows`. Every declaration's
`minimum_role: MCPRole` becomes `required_capability: MCPCapabilityFlag
|
  None` (`None` = always-on read tool).
- **`polylogue/mcp/declarations/{registry,adapter}.py`**,
  **`polylogue/mcp/{server,server_cutover,server_support,cli}.py`**: the
10-dispatcher registration/gating (6 read + `write`/`run` behind
`write`,
  `judge` behind `judge`, `maintenance` behind `maintenance`) now reads
  `MCPCapabilities` instead of a role string. `polylogue-mcp`
  (`mcp/cli.py`) drops `--role` entirely and resolves capabilities from
`load_polylogue_config()` at startup — config is the sole authority, not
a
  launch argument.
- **`polylogue/agent_integration/{spec,manifest,installer}.py`**,
**`polylogue/cli/commands/agent.py`**: the parallel "role" vocabulary in
  the native-client installer/manifest system (`ROLES`/`ROLE_ORDER`,
  `polylogue agent manifest/install --role`) collapses the same way —
  `polylogue agent manifest/install` gained
  `--enable-write`/`--enable-judge`/`--enable-maintenance` flags. The
  installer now emits `POLYLOGUE_MCP_WRITE_ENABLED=1` etc. into the
  generated MCP client entry's `env` block instead of `args: ["--role",
...]` — this is real wiring (the client launches `polylogue-mcp` with
that
  env, which `load_polylogue_config()` picks up), not just a renamed
no-op. `InstallOptions`' on-disk state schema bumped
`STATE_SCHEMA_VERSION`
1→2 (role→capabilities field shape) so stale state fails closed via the
  existing integrity gate instead of silently exposing a missing field.
- **`nix/agent-integration-module.nix`**: `mcpRole` enum option replaced
by
three independent
`mcpEnableWrite`/`mcpEnableJudge`/`mcpEnableMaintenance`
  booleans (Home Manager module), each off by default.
- **Docs**: `docs/mcp-reference.md`, `docs/mcp-integration.md`,
`docs/architecture-spine.md` (decision log entry),
`docs/daemon-threat-model.md`,
`docs/architecture-hotspots.md` — role/`--role` prose replaced with the
  config-opt-in description. `docs/agent-manual.md`,
  `docs/agent-integration-reference.md`, and the packaged
  `polylogue/agent_integration/data/*.{md,json}` assets regenerated via
  `devtools render agent-manual`/`render mcp-equivalence`/`render
  mcp-tool-index`.
- **Registration traps** (all four):
`tests/infra/mcp.py::EXPECTED_TOOL_NAMES`
  (now derived from `declared_tool_names(ALL_CAPABILITIES)`), the
  `TOOL_CONTRACT` envelope tests, `docs/generated/mcp-equivalence.json`
  (`render mcp-equivalence`), and `docs/mcp-reference.md`'s generated
  tool-index appendix (`render mcp-tool-index`) — all regenerated and
  green.
- **Tests**: `tests/unit/mcp/test_privileged_tools.py`'s
`TestRoleGating`
became `TestCapabilityGating`, asserting the *independent-flag* behavior
  directly (e.g. `judge=True` alone must not also expose `write`/`run` —
  the old ladder-based test asserted the opposite). All other
`build_server(role=...)`/`declared_tool_names("admin")`-style call sites
  across `tests/unit/mcp/`, `tests/unit/agent_integration/`,
  `tests/unit/{maintenance,storage,cost,archive/query}/`,
`tests/integration/test_mcp.py`, and
`devtools/verify_agent_integration.py`
  updated to the capability model.

**Design note (deferred, not built here):** the second half of
polylogue-800m
— assertion judgment at agent scale (policy/automation-driven, human
review
reserved for escalations, replacing the per-assertion human-review
pipeline
that doesn't scale) — is design-only per the task brief. Summary for the
coordinator to bead separately: the `judge` MCP dispatcher and
`judge_assertion_candidates` API already support bulk, policy-shaped
decisions (accept/reject/defer/supersede with reason + provenance);
what's
missing is an *automation* actor that calls `judge` on a
schedule/trigger
using declared acceptance policy per `AssertionKind`, with an explicit
escalation path (a `defer`+flag that routes specifically to human
review)
rather than every candidate defaulting to human attention. That's a new
policy-engine + trigger surface, not a schema or MCP-surface change, and
is
out of scope for this PR.

**Sequencing with #3190:** #3190 (README rewrite, branch
`docs/readme-rewrite`,
currently open) contains an MCP config example using `--role read`. That
branch was intentionally not touched here per the task brief. Whichever
of
#3190 / this PR merges second should rebase and drop the `--role` flag
from
its README example — the flag no longer exists after this PR merges.

## Verification

- `devtools render all --check` → sync OK, no drift (all generated
MCP/agent
  docs and JSON assets committed after regeneration).
- `devtools verify --quick` → ruff format/check, `mypy --strict`, render
all,
topology, layering, closure-matrix, manifests, ci-workflows,
doc-commands,
  docs-coverage, test-infra-currency, test-clock-hygiene,
  pytest-timeout-overrides, degrade-loudly — all exit 0.
- `devtools test tests/unit/mcp tests/unit/agent_integration` → 214
passed, 1
  pre-existing unrelated failure

(`test_manual_contract.py::test_generated_continuation_token_decodes_to_the_bound_result`
asserts a stale `q1.` continuation-token prefix against the current `q2`
codec; reproduced identically on unmodified `master`, unrelated to this
  change).
- `devtools test tests/unit/maintenance
tests/unit/storage/{test_query_parity,test_retrieval_readiness_laws,test_surface_parity_adapters}
tests/unit/cost/test_contract_suite.py
tests/unit/archive/query/test_continuation_surface_parity.py
tests/integration/test_mcp.py`
→ pre-existing unrelated failures only (`KeyError:
'search'`/`'list_sessions'`/`'list_tags'`
  — these tests call individual MCP tool names retired by the earlier
  six-tool cutover, unrelated to the role→capability collapse; same
  failures reproduce on unmodified `master`).

Ref polylogue-800m

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sinity added 2 commits July 21, 2026 22:34
Regenerate the See it work section against the author's own live
Polylogue archive (v42 rebuild, promoted) instead of the synthetic
demo-seed corpus: cross-origin find hits, a real transcript excerpt,
and real error-by-tool counts from this repo's own dev sessions.
Demote demo seed/demo verify to a runnable-demo note beside Install.

Ref polylogue-93cp
@Sinity
Sinity force-pushed the docs/readme-rewrite branch from ac596c7 to 54d8f86 Compare July 21, 2026 20:36
@Sinity

Sinity commented Jul 21, 2026

Copy link
Copy Markdown
Owner Author

Real-output swap done (v42 rebuild promoted, per the HOLD above). Ref polylogue-93cp.

What changed: the three "See it work" blocks now run against the author's own live archive (POLYLOGUE_ARCHIVE_ROOT, read-only) instead of the synthetic demo corpus:

  1. polylogue --limit 4 find 'repo:polylogue "with host-clock calls"' — cross-origin hit (claude-code-session + codex-session) on a recurring clock-hygiene lint check in this repo's own dev sessions.
  2. polylogue find 'id:codex-session:019f4b85-1e4a-7060-a8c3-36e4b4175ff2' then read --view transcript — a trimmed transcript excerpt (real coding-agent sessions carry heavy injected system/skill context before the actual exchange, so the excerpt shows just the assistant's opening reasoning on a real task, with ... marking the omitted boilerplate).
  3. polylogue "actions where session.repo:polylogue AND is_error:true | group by tool | count" — real error-by-tool counts across this repo's own coding sessions (5663 Bash failures, 1399 Read, 1167 Edit, ...).

The demo seed/demo verify commands are demoted to a short runnable-demo note beside Install, framed as "try it before pointing Polylogue at your own history."

CodeRabbit's inline suggestion (use find ... then for the actions/group-by pipeline) doesn't apply: per docs/search.md's own aggregate examples (messages where text:timeout | group by role | count) and live verification against the archive, <unit> where ... | group by FIELD | count is the documented bare terminal-unit form for aggregate pipelines; find doesn't support that stage shape. Kept as-is, verified against docs/cli-reference.md and docs/search.md.

Real excerpts included (full list for privacy audit — all are this repo's own development content, no credentials/PII/other-person content):

  • sure, I'm going AFK. Do not halt. Remember the word indefinitely. Do start by ex... — operator's own session-title text (benign workflow instruction to an agent).
  • 3b0038ec-234c-44b8-bb88-fe222b44fe0f:agent-a97318edcffaac69d, 8dab1c19-ef6f-4f49-b4c1-cd9084c1b582, 019e1a5c-0abe-71e1-8adf-8ae8d4cc71a6 — session/native IDs (opaque UUIDs).
  • test files scanned: N files [with host-clock calls]: N allowlisted: N violations: 0 — real verify-test-clock-hygiene lint output (numbers only).
  • Transcript excerpt: "I'll independently map the bead's acceptance criteria to the branch diff, then trace each persistence and reparse path into its production implementation and focused tests. I'll treat passing tests as evidence only after checking that they exercise the claimed failure modes." — a real assistant reasoning line from a Codex session working this repo's adversarial-review flow.
  • tool=Bash count=5663, tool=Read count=1399, tool=Edit count=1167, tool=shell count=533, tool=exec_command count=149 — aggregate counts only.

Rebase: branch was ~25 commits behind origin/master; rebased cleanly (no conflicts in README.md).

Verification: devtools verify --quick → exit 0, all 16 checks passed (format, lint, mypy --strict, render all, topology, layering, closure-matrix, schema roundtrip, manifests, ci-workflows, doc-commands, docs-coverage, test-infra-currency, test-clock-hygiene, pytest-timeout-overrides, degrade-loudly).

Not merging — leaving for operator review per the standing hold.

Sinity and others added 2 commits July 22, 2026 00:00
The rewrite (deliberately) dropped the 'local evidence system' epistemology
sentence, which orphaned the projected category.local-evidence-system claim
(quick-gate public-claims failure: 'projected claim is not covered by a
public-surface marker'). Re-attach the marker to the rewrite's category
sentence and update the declared publication wording to match; claim key
stays stable. Generated public-claims views re-rendered.

Ref polylogue-93cp

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QUsH3Rhq6oAZpYPWcsZqnZ
@Sinity

Sinity commented Jul 21, 2026

Copy link
Copy Markdown
Owner Author

Coordinator wrap: hold condition (real-output swap) satisfied by the lane; coordinator privacy audit of every real excerpt passed (all content is this repo's own dev history — operator-authorized; no credentials/PII/third-party/off-project content). The CI-only quick-gate failure was the public-claims gate: the rewrite orphaned category.local-evidence-system by dropping its marker — fixed by re-attaching the marker to the rewrite's category sentence and aligning the declared publication wording (claim key stable), claim views re-rendered. Merging on green gate.

@Sinity
Sinity merged commit 095ca94 into master Jul 21, 2026
3 checks passed
@Sinity
Sinity deleted the docs/readme-rewrite branch July 21, 2026 22:28
Sinity added a commit that referenced this pull request Jul 21, 2026
## Summary
Iteration 2 of the README (operator-directed: richer, more impressive
real examples, better readability/aesthetics). Adds: archive-scale
framing (83K sessions / 4.7M messages), per-year histogram,
pytest-by-exit-status block (shows the structural `unknown` lane), and a
Mermaid data-flow diagram. All outputs are real, captured against the
live archive 2026-07-22 and privacy-reviewed (aggregates + this repo's
own dev content only).

## Problem
The rewritten README (#3190) shows real outputs but stays narrow: three
examples, no visual structure, no sense of archive scale.

## Solution
- Mermaid flowchart: sources → source.db → index.db (+user.db) →
CLI/MCP/HTTP/Python.
- Scale sentence verified against the daemon heartbeat (83,198 /
4,761,552).
- Year histogram with an honest note: dated top-level sessions only —
fact-checking this surfaced a real P1 (`polylogue-m3p9`: 79% of sessions
have NULL sort_key, so `since:` silently excludes them).
- pytest outcome aggregate: 12,861 ok / 1,039 failed / 115 unknown.

## Verification
- `devtools verify public-claims --json` → ok: true (marker intact).
- `devtools verify --quick` → exit 0.
- Every console block re-run verbatim before inclusion.

Ref polylogue-93cp

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01QUsH3Rhq6oAZpYPWcsZqnZ

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Documentation**
* Updated the “See it work” section with a Mermaid diagram illustrating
the ingestion-to-surfaces workflow.
* Refreshed example descriptions to clarify that they use real archive
commands.
* Added an example showing tool activity grouped by actual `pytest` exit
status, including unknown results.

* **Bug Fixes**
* Recorded completion of a maintenance optimization for bulk
search-index deletions, with verification and regression coverage.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant