Skip to content

Commit 57e9253

Browse files
authored
Merge pull request #6 from GobbyAI/dev
Release gcode v0.9.2
2 parents bd56f1c + 8f8af11 commit 57e9253

74 files changed

Lines changed: 18343 additions & 1742 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gobby/plans/gcode-graph-enhancements.md

Lines changed: 672 additions & 136 deletions
Large diffs are not rendered by default.

.gobby/plans/gcore-rust-foundation.md

Lines changed: 1269 additions & 127 deletions
Large diffs are not rendered by default.

CHANGELOG.md

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,116 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
## [Unreleased]
1111

12+
## [0.9.2] — gcode
13+
14+
### Added
15+
16+
#### gcode
17+
18+
- **Project-id graph clear**`gcode graph clear --project-id <PROJECT_ID>`
19+
now clears a code graph projection by explicit project id before normal
20+
project-root resolution. This is the daemon stale-project cleanup path and can
21+
run from any cwd without `.gobby/project.json`.
22+
23+
### Fixed
24+
25+
#### gcode
26+
27+
- **Deleted-file projection cleanup**`gcode index` now removes FalkorDB code
28+
graph nodes/edges and Qdrant code-symbol vectors for deleted files before
29+
deleting PostgreSQL hub facts. This covers missing explicit
30+
`--files <deleted-file>` inputs and whole-project stale/orphan cleanup without
31+
relying on daemon reconciliation.
32+
- **Projection ownership boundary** — code graph clears remain scoped to
33+
code-index FalkorDB labels, and code vector clears remain scoped to
34+
`code_symbols_{project_id}`. Memory graph nodes and memory vector collections
35+
are not targeted by these lifecycle paths.
36+
37+
## [0.9.1] — gcode
38+
39+
### Added
40+
41+
#### gcode
42+
43+
- **Overview graph limit**`gcode graph overview` now accepts `--limit N`
44+
to cap the number of files included in the overview graph, matching the
45+
daemon's graph overview limit contract.
46+
47+
### Fixed
48+
49+
#### gcode
50+
51+
- **File graph read aliases**`gcode graph file` now keeps node file paths
52+
and edge metadata file paths under distinct FalkorDB result aliases, fixing
53+
duplicate-column failures when returning JSON graph payloads.
54+
55+
## [0.9.0] — gcode
56+
57+
### Added
58+
59+
#### gcode
60+
61+
- **Standalone setup reset boundary**`gcode setup --standalone` now fails
62+
safely when it detects incompatible existing code-index PostgreSQL state and
63+
prints guidance to rerun with `--overwrite-code-index` only when a full
64+
code-index reset is intended.
65+
- **Advanced full code-index overwrite**
66+
`gcode setup --standalone --overwrite-code-index` drops/recreates only
67+
allowlisted gcode code-index PostgreSQL relations and BM25 indexes, clears
68+
code-index graph nodes in FalkorDB, and deletes Qdrant collections with the
69+
`code_symbols_` prefix. Gobby project files, config, secrets, tasks,
70+
sessions, memory, and daemon-owned data stay untouched.
71+
- **Rust graph/vector projection lifecycle** — graph reads, graph reports,
72+
vector projection sync, and graph/vector lifecycle operations now route
73+
through the Rust `gobby-code` library boundary for daemon adoption.
74+
75+
### Changed
76+
77+
#### gcode
78+
79+
- **Project-scoped invalidation**`gcode invalidate` remains the normal
80+
project reset. PostgreSQL deletes stay filtered to the current project, and
81+
configured standalone FalkorDB/Qdrant projections are cleaned only for that
82+
project.
83+
- **Shared foundation dependency**`gobby-code` now consumes
84+
`gobby-core 0.2`.
85+
86+
## [0.2.0] — gobby-core
87+
88+
### Added
89+
90+
#### gobby-core
91+
92+
- **Expanded shared foundation** — added reusable context/config contracts,
93+
attached/standalone setup contracts, PostgreSQL hub helpers, FalkorDB and
94+
Qdrant adapters, standalone service provisioning helpers, indexing
95+
primitives, search-fusion primitives, and degradation vocabulary for Rust
96+
Gobby CLI consumers.
97+
98+
### Changed
99+
100+
#### gobby-core
101+
102+
- **Consumer dependency line** — workspace consumers now target the
103+
`gobby-core 0.2` minor line.
104+
105+
## [0.8.7] — gcode
106+
107+
### Fixed
108+
109+
#### gcode
110+
111+
- **Project identity resolution** — self-referential
112+
`parent_project_path` / `parent_project_id` markers now keep the owning
113+
`.gobby/project.json` ID, while linked worktrees and isolated roots keep
114+
filesystem-scoped code index IDs.
115+
- **Source `build` package indexing** — root generated `build` / `dist`
116+
directories stay excluded, while source directories such as
117+
`src/gobby/build/` are indexed.
118+
- **Duplicate-root pruning**`gcode prune` now marks stale duplicate project
119+
entries for an existing root when they differ from that root's resolved
120+
project ID.
121+
12122
## [0.4.4] — gsqz
13123

14124
### Fixed

Cargo.lock

Lines changed: 11 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@ navigation, and hybrid ranking. When FalkorDB, Qdrant, and an embeddings
3232
endpoint are configured - typically through Gobby - `gcode` adds graph-aware
3333
search, semantic search, optional graph expansion for exact symbol lookup
3434
(`gcode search-symbol --with-graph`), dependency analysis (`callers`, `usages`,
35-
`imports`, `blast-radius`), and daemon-backed graph lifecycle commands
36-
(`gcode graph clear`, `gcode graph rebuild`).
35+
`imports`, `blast-radius`), and Rust-owned graph/vector projection lifecycle.
36+
`gcode graph clear --project-id <PROJECT_ID>` is available for daemon
37+
stale-project graph cleanup without cwd project resolution.
3738

3839
For non-Gobby-managed projects, `gcode init` installs the bundled `gcode` skill
3940
for Claude Code, Codex, Droid, Grok, Qwen, Gemini CLI (deprecated
@@ -52,7 +53,9 @@ One command to launch Claude Code or Codex against a local LLM backend. Auto-det
5253

5354
Sandbox-tolerant hook dispatcher invoked by host AI CLIs (Claude Code, Codex, Gemini CLI, Qwen CLI) on lifecycle and tool-use events. Spools envelopes to `~/.gobby/hooks/inbox/` *before* POSTing to the local Gobby daemon, so the daemon's drain worker can replay any delivery lost to a sandbox FS-read denial, network blip, or daemon restart. You don't usually invoke it directly — Gobby wires it into your AI CLI for you.
5455

55-
`gobby-core` underpins them all — a small shared-primitives library (project root walk-up, bootstrap config, daemon URL). Not a standalone tool.
56+
`gobby-core` underpins them all — a small shared-primitives library for project
57+
root walk-up, bootstrap config, daemon URL composition, setup/provisioning
58+
contracts, and optional datastore adapters. It is not a standalone tool.
5659

5760
## Documentation
5861

@@ -100,6 +103,17 @@ Bootstrap fallback is valid only when `hub_backend: postgres` and bootstrap
100103
contains an inline `database_url`. Bootstrap `database_url_ref` is rejected
101104
during bootstrap validation; it is never resolved or used to restart the
102105
fallback chain.
106+
107+
For daemon-independent service provisioning, use `gcode setup --standalone`.
108+
The default setup path is non-destructive. If incompatible code-index state is
109+
already present, rerun with `gcode setup --standalone --overwrite-code-index`
110+
only when you intend to reset all gcode-owned code-index PostgreSQL,
111+
FalkorDB, and Qdrant projection state.
112+
113+
Graph/vector lifecycle is code-index scoped. FalkorDB clears target only
114+
code-index labels, and Qdrant clears target only `code_symbols_{project_id}`;
115+
Gobby memory graph and memory vector collections stay outside this boundary.
116+
103117
Installing from source or crates.io requires Rust 1.88+.
104118

105119
### From source

crates/gcode/Cargo.toml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "gobby-code"
3-
version = "0.8.6"
3+
version = "0.9.2"
44
edition = "2024"
55
rust-version = "1.88"
66
authors = ["Josh Wilhelmi <hello@gobby.ai>"]
@@ -12,13 +12,17 @@ readme = "README.md"
1212
keywords = ["code-search", "ast", "code-index", "developer-tools", "gobby"]
1313
categories = ["command-line-utilities", "development-tools"]
1414

15+
[lib]
16+
name = "gobby_code"
17+
path = "src/lib.rs"
18+
1519
[[bin]]
1620
name = "gcode"
1721
path = "src/main.rs"
1822

1923
[dependencies]
2024
# Internal
21-
gobby-core = { path = "../gcore", version = "0.1" }
25+
gobby-core = { path = "../gcore", version = "0.2", features = ["postgres", "falkor", "qdrant", "search", "indexing"] }
2226

2327
# CLI
2428
clap = { version = "4", features = ["derive"] }

crates/gcode/README.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -136,18 +136,21 @@ gcode symbols <id1> <id2> ... # Batch retrieve
136136
gcode tree # File tree with symbol counts
137137

138138
# Dependency graph reads (requires FalkorDB)
139+
gcode graph overview --limit 100 # Project overview graph
139140
gcode callers "handleAuth" # Who calls this?
140141
gcode usages "handleAuth" # Incoming call sites
141142
gcode imports src/auth.ts # Import graph for a file
142143
gcode blast-radius "handleAuth" --depth 3 # Transitive impact analysis
143144

144-
# Graph lifecycle (requires Gobby daemon)
145+
# Graph lifecycle (requires FalkorDB)
145146
gcode graph clear # Clear current project's graph projection
147+
gcode graph clear --project-id <id> # Clear graph projection by explicit project id
146148
gcode graph rebuild # Rebuild current project's graph projection
147149

148150
# Project management
149151
gcode status # Index stats
150152
gcode projects # List all indexed projects
153+
gcode setup --standalone # Provision daemon-independent services
151154
gcode index # Re-index (incremental)
152155
gcode invalidate # Clear index, force full re-index
153156

@@ -193,7 +196,7 @@ source of truth for code-index rows.
193196
codebase → tree-sitter → PostgreSQL hub + pg_search BM25
194197
FalkorDB → call graphs, blast radius, imports
195198
Qdrant + embeddings → semantic vector search
196-
Gobby daemon → auto-indexing, graph/vector sync,
199+
Gobby daemon → auto-indexing, graph/vector orchestration,
197200
config, secrets, sessions, agents
198201
```
199202

@@ -217,7 +220,7 @@ bootstrap `database_url`. Bootstrap `database_url_ref` is rejected.
217220
| Semantic vector search | When Qdrant + embeddings are configured | Yes |
218221
| Call graph / blast radius | When FalkorDB is configured | Yes |
219222
| Import graph | When FalkorDB is configured | Yes |
220-
| Graph clear / rebuild lifecycle | Requires daemon | Yes |
223+
| Graph clear / rebuild lifecycle | When FalkorDB is configured | Yes |
221224
| Auto-indexing on file change | Manual `gcode index` | Yes (daemon file watcher) |
222225
| Centralized config + secrets | Reads PostgreSQL `config_store` + secrets | Yes |
223226
| Shared index (daemon + CLI) | PostgreSQL hub | PostgreSQL hub |
@@ -237,9 +240,11 @@ Get started with Gobby at [github.com/GobbyAI/gobby](https://github.com/GobbyAI/
237240
| PostgreSQL hub unavailable | Runtime index/search commands fail with a bootstrap or connection error. |
238241
| No index yet | Commands error with `Run gcode init to initialize`. |
239242

240-
Read-side graph commands depend on FalkorDB. `gcode graph clear` and `gcode graph rebuild`
241-
are separate lifecycle operations routed through the Gobby daemon for the
242-
current resolved project.
243+
Read-side graph commands and graph lifecycle depend on FalkorDB. Vector
244+
lifecycle depends on Qdrant plus embeddings for sync/rebuild. All code-index
245+
projection lifecycle paths are Rust-owned and scoped to code projection state:
246+
graph clears target code-index FalkorDB labels only, and vector clears target
247+
only `code_symbols_{project_id}` rather than memory vector collections.
243248

244249
## Language Support
245250

0 commit comments

Comments
 (0)