Skip to content

Product upgrade: implement clean + positioning/docs + brand assets#8

Open
denfry wants to merge 2 commits into
mainfrom
chore/product-upgrade-and-clean
Open

Product upgrade: implement clean + positioning/docs + brand assets#8
denfry wants to merge 2 commits into
mainfrom
chore/product-upgrade-and-clean

Conversation

@denfry

@denfry denfry commented Jun 12, 2026

Copy link
Copy Markdown
Owner

Two separate concerns, two commits.

feat(cli): implement clean + product-upgrade docs (faad7ce)

Code

  • Implements the long-stubbed clean command (was a _todo no-op since M0, despite being documented in README/FAQ/ARCHITECTURE). clean resets the index DB (index.sqlite + WAL/SHM); clean --all wipes the whole per-project cache dir. Prompts before deleting (skip with --yes), supports --json, never touches the installed skill.
  • New tests/test_clean_cli.py (5 tests); removed the now-dead _todo helper.
  • clean stays excluded from the skill whitelist and plugin wrappers, so agents still cannot call it.

Docs / positioning

  • docs/PRODUCT_UPGRADE_PLAN.md: positioning, target users, competitor matrix, differentiators, weaknesses, ranked roadmap, doc/benchmark/distribution tasks.
  • docs/RELEASE_CHECKLIST.md: repeatable release checklist (version sync, tests, benchmarks, doctor, install/plugin/MCP smoke); checksums/SBOM as future hardening.
  • README: "Who Is It For?" + "How Is This Different?" (why-not grep/Cursor/Aider/Sourcegraph/Codebase-Memory MCP) + proven-today-vs-roadmap table.
  • COMPARISON: explicit Continue / Sourcegraph-Cody-Amp / Codebase-Memory MCP rows with choose-them-vs-choose-us guidance.
  • BENCHMARKS: proven/toy/honest status table, "claims NOT to make yet", and a TODO benchmark checklist with a no-overclaim procedure.
  • FAQ: fix a dangling sentence; document clean / clean --all.

docs(seo): brand assets + topic/keyword tuning (e3fe823)

  • Generated brand assets (assets/demo.png, assets/social-preview.png) + pure-Pillow generator scripts/gen_assets.py; demo still embedded near the top of the README.
  • GitHub About/topics + package keywords (pyproject.toml, .claude-plugin/plugin.json) and docs/SEO.md refresh.

Verification

  • ruff check src/ tests/ — clean
  • pytest — 341 passed, 7 skipped; coverage 81.5% (gate 80%)
  • python tests/benchmark_public.py — smoke OK

All claims kept honest: unproven scale/graph/distribution items are marked roadmap, not done.

denfry and others added 2 commits June 12, 2026 20:49
Implement the long-stubbed `clean` command (was a `_todo` no-op since M0,
despite being documented in README/FAQ/ARCHITECTURE). `clean` resets the
index DB (index.sqlite + WAL/SHM); `clean --all` wipes the whole per-project
cache dir. It prompts before deleting (skip with --yes), supports --json, and
never touches the installed skill. Covered by tests/test_clean_cli.py; removed
the now-dead `_todo` helper.

Docs/positioning:
- docs/PRODUCT_UPGRADE_PLAN.md: positioning, target users, competitor matrix,
  differentiators, weaknesses, ranked roadmap, doc/benchmark/distribution tasks.
- docs/RELEASE_CHECKLIST.md: repeatable release checklist (version sync, tests,
  benchmarks, doctor, install/plugin/MCP smoke), checksums/SBOM as future work.
- README: "Who Is It For?" + "How Is This Different?" (why-not grep/Cursor/Aider/
  Sourcegraph/Codebase-Memory MCP) + proven-today-vs-roadmap table.
- COMPARISON: explicit Continue / Sourcegraph-Cody-Amp / Codebase-Memory MCP rows
  with choose-them-vs-choose-us guidance.
- BENCHMARKS: proven/toy/honest status table, "claims NOT to make yet", and a
  TODO benchmark checklist with a no-overclaim procedure.
- FAQ: fix a dangling sentence; document clean / clean --all behavior.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add generated brand assets (assets/demo.png, assets/social-preview.png) and the
pure-Pillow generator scripts/gen_assets.py; embed the demo still near the top of
the README. Tune GitHub About/topics and package keywords (pyproject.toml,
.claude-plugin/plugin.json) and refresh docs/SEO.md (python 3.11 badge, 20-topic
live set, social-preview status).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@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: e3fe8231d9

ℹ️ 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 src/codebase_index/cli.py
Comment on lines +675 to +676
if all_cache:
targets = [cache_dir]

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 Include overridden DB path in --all clean

When CBX_DB_PATH is set (a supported path override used by resolve_db and the search/stat paths), clean --all only targets the default per-project cache directory and can report nothing removed while the active index database remains on disk. In that environment, users asking for the whole cache/index reset still keep using the stale overridden DB; include db_path and its sidecars in the --all target set when it is outside cache_dir.

Useful? React with 👍 / 👎.

Comment thread src/codebase_index/cli.py
typer.echo("Nothing to clean (no cache found).")
raise typer.Exit(code=0)

if not yes and not is_json and sys.stdin.isatty():

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 Require --yes for JSON clean in terminals

In an interactive terminal, codebase-index clean --json and especially clean --all --json delete the index/cache without any confirmation because is_json suppresses the prompt. The new docs and option help describe --json as machine-readable output and --yes as the confirmation bypass, so a user requesting JSON output can accidentally perform the destructive action with no guardrail.

Useful? React with 👍 / 👎.

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