This transcript is a repeatable local source-build smoke for the user-facing flow:
install -> doctor/status -> index -> coverage -> retrieve
Replay the source-build prefix path with:
python3 scripts/smoke-clean-quickstart.py \
--binary target/debug/codelens-mcp \
--model-root crates/codelens-engine/models
Replay a release archive with:
python3 scripts/smoke-clean-quickstart.py \
--archive codelens-mcp-linux-x86_64.tar.gz
The source-build transcript proves that the current checkout can run from an
isolated prefix, isolated HOME, and isolated project without relying on this
repository's local Codex/Claude settings. The release workflow also runs the
same smoke directly from packaged archives on native runners.
Captured Run
| Field | Value |
|---|---|
| Captured date | 2026-07-06 |
| Binary source | target/debug/codelens-mcp copied into /tmp/codelens-clean-quickstart.oET2yA/prefix/bin/ |
| Model source | crates/codelens-engine/models/codesearch copied into /tmp/codelens-clean-quickstart.oET2yA/prefix/models/ |
| Runtime env | HOME=/tmp/codelens-clean-quickstart.oET2yA/home, CODELENS_LOG=error; CODELENS_MODEL_DIR intentionally unset |
| Fixture project | /tmp/codelens-clean-quickstart.oET2yA/project with one Rust library file |
The local binary reported:
codelens-mcp 1.13.34 (git 149e3a5, dirty true, built 2026-07-05T17:22:25Z)
dirty true is expected for this local WIP run. Tagged release archives should
report a clean build.
Install
The clean prefix was created by copying the built binary and model sidecar into a temp install layout:
root=$(mktemp -d /tmp/codelens-clean-quickstart.XXXXXX)
mkdir -p "$root/prefix/bin" "$root/prefix/models" "$root/home/.codex" "$root/project/src"
cp target/debug/codelens-mcp "$root/prefix/bin/codelens-mcp"
chmod +x "$root/prefix/bin/codelens-mcp"
cp -R crates/codelens-engine/models/codesearch "$root/prefix/models/"
The fixture project contained this source file:
/// Adds two values for the clean quickstart transcript.
pub fn add_values(left: i32, right: i32) -> i32 {
left + right
}
The isolated Codex config pointed at the temp binary by stdio:
[mcp_servers.codelens]
command = "/tmp/codelens-clean-quickstart.oET2yA/prefix/bin/codelens-mcp"
args = ["/tmp/codelens-clean-quickstart.oET2yA/project"]
Doctor / Status
Command:
HOME="$root/home" \
CODELENS_LOG=error \
"$root/prefix/bin/codelens-mcp" status codex --json
Observed status summary:
host=codex
~/.codex/config.toml status=attached_customized
project AGENTS.md status=missing
strict_semantic_coverage=false
Interpretation: the isolated host config was detected from the temp HOME.
The missing project AGENTS.md is acceptable for this runtime smoke because
the goal is binary install, host config detection, index, and retrieval.
Pre-Index Capability
Command:
HOME="$root/home" \
CODELENS_LOG=error \
"$root/prefix/bin/codelens-mcp" . --cmd get_capabilities --args '{}'
Observed capability summary before indexing:
semantic_search_status=index_missing
recommended_action=run_index_embeddings
embedding_indexed=false
embedding_indexed_symbols=0
indexed_files=2
supported_files=2
Interpretation: the clean prefix could load the model sidecar without
CODELENS_MODEL_DIR, but correctly refused to claim semantic retrieval until
the project was indexed.
Index
Command:
HOME="$root/home" \
CODELENS_LOG=error \
"$root/prefix/bin/codelens-mcp" . --cmd index_embeddings
Observed index summary:
success=true
backend_used=semantic
indexed_symbols=3
query_cache.enabled=true
query_cache.entries=0
status=ok
Run indexing and coverage probes sequentially. Running a coverage probe at the same time as the first clean index build can hit the expected SQLite writer lock.
Coverage
Command:
HOME="$root/home" \
CODELENS_LOG=error \
"$root/prefix/bin/codelens-mcp" . --cmd embedding_coverage_report
Observed coverage summary:
compiled=true
model_assets.available=true
status=ready
indexed_symbols=3
indexed_files=2
readiness_percent=100
stale_files=0
model_mismatch=false
recommended_action=none
remediation.action=none
Interpretation: after indexing, the semantic operational report contains the model, schema, file freshness, query cache, and remediation fields needed for a single-turn operator decision.
Retrieve
Command:
HOME="$root/home" \
CODELENS_LOG=error \
"$root/prefix/bin/codelens-mcp" . \
--cmd get_ranked_context \
--args '{"query":"function that adds two values","max_tokens":1200,"depth":1,"include_body":false}'
Observed retrieval summary:
success=true
token_estimate=698
retrieval.semantic_enabled=true
retrieval.semantic_used_in_core=true
retrieval.sparse_used_in_core=true
retrieval.preferred_lane=hybrid_semantic_sparse
retrieval.query_type=natural_language
symbols[0].name=add_values
symbols[0].file=src/lib.rs
symbols[0].relevance_score=100
symbols[0].provenance.source=semantic_boosted
Interpretation: a natural-language query found the intended Rust function as rank 1 using hybrid semantic+sparse retrieval within a bounded token budget.
Release Replay Gap
This transcript used a source-built debug binary copied into a temp prefix. Before claiming full public release quickstart readiness, repeat the same sequence from every published release archive or installer output and verify that:
- the binary reports a clean build,
- the release model sidecar resolves without
CODELENS_MODEL_DIR, unless the installer channel explicitly owns an equivalent environment setup, status/doctor,index_embeddings,embedding_coverage_report, andget_ranked_contextpass with the same evidence shape.
The release workflow now runs the same smoke against packaged release archives
via scripts/smoke-clean-quickstart.py --archive. Keep this transcript as
human-readable evidence, and treat the workflow gates as the repeatable release
replay.