travsr status
Print index and graph status for the repository you are standing in.
It is a single-repo command: it resolves the git root from the working
directory and reports on that repository's .travsr/graph.db. For a view
across every registered repo, use travsr repos.
Synopsis
travsr status
There are no flags. If the repository has not been initialised, it exits with
not initialized; run \travsr init``.
Where the answer comes from
If the daemon is running, status asks it and gets an answer from the warm
store. If not, it opens the graph read-only and reads the same figures
directly. The output is identical either way, so the command is safe to run
whether or not the daemon is up.
Example output
$ travsr status
nodes: 18432 | edges: 94751 | schema: v21 | last_commit: a1b2c3d | semantic: complete | rerank: ready
One line on stdout:
| Field | Meaning |
|---|---|
nodes | Node count in the graph |
edges | Edge count in the graph |
schema | Schema version the database is migrated to |
last_commit | Commit the index was last built against, or (none) |
semantic | Phase B state: complete, pending, not run, partial (...), or crashed: <lang> |
rerank | Reranker state. Omitted entirely when the daemon does not report one |
semantic is downgraded from complete when a language that is enabled for the
repo did not actually produce edges, so a language that crashed or was never
consented to is never hidden behind a flat "complete".
Warnings
Anything that needs attention goes to stderr, so piping stdout stays clean. You may see:
- HEAD does not match the index. Your checkout is at a different revision than the one the graph was built from, which happens in a linked worktree or after a HEAD move the daemon has not yet caught up with.
- Built with an older version of travsr. The signature format changed since
this graph was built; run
travsr initto rebuild it. - Search index skew. The full-text index and the node table disagree, which points at a partial write.
- Per-language Phase B problems. A language that crashed, one still waiting on consent or approval, one with no analyzer installed, or one missing a compilation database. Each names the language and, where there is one, the prerequisite or the command that fixes it.
Sidecar health
Travsr spawns external, independently versioned binaries: the embed sidecar and the Phase B language tools. travsr status ends with a sidecars: block reporting the version of each one actually installed, so a binary that has drifted behind the host is visible before it produces a confusing failure rather than after.
sidecars:
travsr-embed 1.3.0 ok
scip-clang 0.4.0 ok
The line says one of five things:
| Line | Meaning |
|---|---|
1.3.0 ok | At or above the version Travsr requires |
1.3.0 ok (newer 1.4.0 available) | Usable, and a newer release exists |
1.0.0 below required 1.2.0 - run: … | Too old to behave correctly; refused, with the fix named |
unknown cannot confirm >= 1.2.0 - run: … | Version unreadable while a floor is declared, so compliance cannot be proven |
unknown version probe timed out … | The probe exceeded its deadline; treated as usable, but unconfirmed |
The floor is a hard, offline gate: a below-floor sidecar is refused at spawn with an actionable message instead of failing somewhere deeper. The "newer available" note is advisory only, comes from a local cache, and never triggers a network call from status.
Tools that declare no floor and simply do not answer --version are omitted rather than listed as unknown, so the block stays worth reading.
The same block appears in travsr embed status and travsr lang list.
See also
- The
get_index_statusMCP tool, which returns the same picture as JSON for agents travsr fsckfor graph integrity rather than freshness