Documentation and landing page audit ahead of release - #88
Merged
Merged
Conversation
…g page - README.md: rewrote sections 1-3 (Architecture Overview, Component Breakdown, Technical Stack) which still described the removed embeddings/semantic-search subsystem, a never-built LanceDB vector store, and now-nonexistent search_codebase/query_memory tools as current. Replaced with the real current architecture (graph + optional Rust-only LSP enrichment, 12 MCP tools, resource bounds, Windows/macOS platform tiering), with a note clarifying section 4 (the phase-by-phase roadmap) is an intentionally frozen historical log and legitimately keeps old references. - INSTALL.md: added missing NEXUS_CONFIG_DIR env var documentation. - docs/NexusContext-Wiki/Configuration.md: allowed_roots comment only listed 4 gated tools; it now actually covers nearly every repo_path-accepting tool (issue #61) - updated the list. - docs/NexusContext-Wiki/Known-Limitations.md: added the O_NOFOLLOW-is-defense-in-depth-not-full-TOCTOU-proofing gap (ADR 0015), previously only documented in Security-Model.md. - docs/NexusContext-Wiki/Security-Model.md: added an orientation note distinguishing the standing-behavior sections from the chronological review-pass log, per the request to read as one coherent document. - docs/index.html: 'hardened against its own audits' section still described the fixed markdown-OOM bug as happening 'during embedding' (leftover reference to the removed subsystem) and omitted this cycle's resource-bounds and symlink-TOCTOU-defense findings entirely. Fixed the wording and added both findings. Verified: cargo build/test --workspace clean, including the doc-drift regression test (tools::tests:: doc_prose_tool_counts_match_the_real_tool_set) which cross-checks tool counts across MCP-Tools.md/Configuration.md/Home.md/INSTALL.md/ docs/index.html against the real tool_definitions(). Files reviewed and found already accurate, no changes needed: MCP-Tools.md, CLI-Reference.md, Architecture.md, Home.md, Storage-and-Data-Model.md, Indexing-Pipeline.md, Language-Support.md, Watcher-and-Freshness.md, GUI-and-Extension.md, MCP-Surface-Evaluation.md, Product-Thesis-Validation.md, ADRs/README.md (index matches all 15 ADR files on disk). Claude-Session: https://claude.ai/code/session_01D6ND42psexN5cWTKewSpBG
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Docs-only accuracy audit ahead of the next release, ~24 PRs / 12 days since v0.1.17. Cross-checked every file in
docs/NexusContext-Wiki/,docs/index.html,README.md, andINSTALL.mdagainst the real current code (crates/nexusd/src/tools.rs'stool_definitions(),crates/nexus-cli/src/main.rs,crates/nexus-core/src/config.rs/paths.rs).What was wrong/missing, per file
README.md— the biggest finding. Sections 1-3 (Architecture Overview, Component Breakdown, Technical Stack) still described the removed embeddings/semantic-search subsystem, a never-actually-built LanceDB vector store, andsearch_codebase/query_memorytools that no longer exist, presented as current architecture rather than history. Rewrote all three sections to describe the real current system: graph-first with optional Rust-only LSP enrichment, the actual 12-tool MCP surface, this cycle's resource bounds (watcher channel bound, traversal depth cap,MAX_INDEXABLE_FILE_BYTES, query timeout),allowed_rootsenforced uniformly, and correct Windows/macOS/Linux platform tiering. Added a note at the top clarifying that section 4 (the phase-by-phase build log) is intentionally frozen history and legitimately keeps old references — left untouched, per the doc-drift test's own stated scoping. Sections 5-6 were already accurate.INSTALL.md— missingNEXUS_CONFIG_DIRfrom the env-var-overrides line (onlyNEXUS_CACHE_DIRwas listed). Added.docs/NexusContext-Wiki/Configuration.md— theallowed_rootsinline comment only named 4 gated tools (index_repository/reindex/get_file_context/detect_changes), stale from before issue #61 extended enforcement to nearly everyrepo_path-accepting tool. Updated to list the real current coverage.docs/NexusContext-Wiki/Known-Limitations.md— was missing the O_NOFOLLOW-is-defense-in-depth-not-full-TOCTOU-proofing gap (ADR 0015); it was only documented in Security-Model.md. Added a section here too, since this file is meant to be the single "what's really not handled" reference.docs/NexusContext-Wiki/Security-Model.md— content was already accurate and current (dated through today), but reads as a patchwork of dated addenda as flagged in the task. Added a short orientation note at the top distinguishing the "current standing behavior" sections from the chronological review-pass log below them, without touching/reordering the substantive content (didn't want to risk breaking cross-references for a cosmetic reorg this close to release).docs/index.html(landing page) — the "Hardened against its own audits" section had a leftover embeddings reference (the markdown-OOM fix was described as happening "during embedding", from before the subsystem was removed) and was missing this cycle's two biggest security findings entirely: the resource-bounds work (issue #58) and the symlink-substitution TOCTOU defense-in-depth (issue #72/ADR 0015). Fixed the wording and added both findings, stated with the same "here's the honest remaining gap" framing the wiki uses. Everything else on the page (tool count, tool list, language-support tiering, architecture diagram, benchmark section, version number, install instructions) was already accurate — no semantic-search/embeddings claims, no overclaiming on multi-language LSP support, benchmark section already presents mixed (2 win / 2 lose) results honestly.Verified
cargo build --workspaceandcargo test --workspace: clean, no failures.tools::tests::doc_prose_tool_counts_match_the_real_tool_set(the doc-drift regression test that cross-checks tool counts inMCP-Tools.md/Configuration.md/Home.md/INSTALL.md/docs/index.htmlagainst the realtool_definitions()) passes..rsfiles touched.Files reviewed, found already accurate — no changes made
MCP-Tools.md,CLI-Reference.md,Architecture.md,Home.md,Storage-and-Data-Model.md,Indexing-Pipeline.md,Language-Support.md,Watcher-and-Freshness.md,GUI-and-Extension.md,MCP-Surface-Evaluation.md,Product-Thesis-Validation.md,ADRs/README.md(its index matches all 15 ADR files on disk through 0015, confirmed by listing).Honest gaps — what I did not fix
README.md's frozen phase log (now clearly labeled as such), and accurate present-tense statements that embeddings were removed. Nothing live was missed as far as I can tell, but I did not exhaustively re-read every line ofREADME.md's ~320-line Phase 1-33 roadmap section — I skimmed it for anything read as current rather than historical, and I'm reasonably but not 100% confident there's no stray "current-tense" embeddings sentence buried in there.Security-Model.mdgot an orientation note, not a structural rewrite — I judged a full reorg riskier than valuable this close to a release, given how many cross-references ([[...]]wikilinks and inline "see above") the existing chronological structure has. If a cleaner structure is wanted, it deserves its own pass with more room to verify nothing breaks.v0.1.4) — it's a separate, already-labeled-honest benchmark fromProduct-Thesis-Validation.md's newer one, and the task's directive was specifically not to overclaim vs. [Architecture/Product] Validate NexusContext's core value as persistent structural memory for coding agents #57's findings, which this section doesn't do (it already states 2 losses alongside 2 wins).https://claude.ai/code/session_01D6ND42psexN5cWTKewSpBG