Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
94fef17
[gobby-#208] planning: R4 revision of gcore-rust-foundation plan
joshwilhelmi May 26, 2026
e513cb4
[gobby-#208] planning: R5 revision of gcore-rust-foundation plan
joshwilhelmi May 26, 2026
b8f49cd
[gobby-#208] planning: R6 revision of gcore-rust-foundation plan
joshwilhelmi May 26, 2026
93328aa
[gobby-#208] planning: R7 revision of gcore-rust-foundation plan
joshwilhelmi May 26, 2026
e2d80be
[gobby-#208] planning: R8 revision of gcore-rust-foundation plan
joshwilhelmi May 27, 2026
1747d27
Release gcode 0.8.7
joshwilhelmi May 27, 2026
87c3bbf
[gobby-#211] docs: document build restart issues
joshwilhelmi May 27, 2026
120d6d7
[gobby-#210] planning: R10 revision of gcore-rust-foundation plan
joshwilhelmi May 27, 2026
d480655
[gobby-#210] planning: add approved task manifest
joshwilhelmi May 27, 2026
1104fa2
[gobby-#212] chore: deduplicate short id helper
joshwilhelmi May 27, 2026
81c374c
[gobby-#213] test: cover short_id edge cases
joshwilhelmi May 27, 2026
de61478
docs: add observation date and clarify planning-only cap override beh…
joshwilhelmi May 27, 2026
ae0418f
[gobby-#217] feature: define gobby-core public boundary
joshwilhelmi May 27, 2026
fdb892b
Merge commit 'ae0418fd67924551834a03a368292efe8a947435' into gobby/in…
joshwilhelmi May 27, 2026
f151b4d
chore: remove obsolete build restart issue documentation
joshwilhelmi May 27, 2026
742a0f6
[gobby-#218] feature: add degradation contracts
joshwilhelmi May 27, 2026
b804e64
Merge commit '742a0f60970742d68d16434f4cd3cb51233c52ef' into gobby/in…
joshwilhelmi May 27, 2026
5e095b9
[gobby-#219] feat: add shared context resolution
joshwilhelmi May 27, 2026
7ee961c
Merge commit '5e095b9c432d2b6ea1fcf1ccd93e94c544e5cff0' into gobby/in…
joshwilhelmi May 27, 2026
630da4e
[gobby-#220] feat: define setup contracts
joshwilhelmi May 27, 2026
911c635
Merge commit '630da4e165e7f917b2af8d2e3423de0e483f3a39' into gobby/in…
joshwilhelmi May 27, 2026
241d7a2
[gobby-#221] feat: add postgres hub adapter
joshwilhelmi May 27, 2026
ed967da
[gobby-#222] feat: add shared FalkorDB adapter
joshwilhelmi May 27, 2026
c490d28
[gobby-#219] fix: reject env-only secret config
joshwilhelmi May 27, 2026
2c2ac49
Merge commit 'c490d28ac9af3a0d8b2b2d46a7ab982f0f2300b4' into gobby/in…
joshwilhelmi May 27, 2026
d6c0ae8
[gobby-#223] feat: add qdrant adapter
joshwilhelmi May 27, 2026
98a5d16
Merge commit '241d7a229fe688f5e8bc9391def53bb98c0afa89' into gobby/in…
joshwilhelmi May 27, 2026
30931cb
Merge commit '2c2ac498b496435677bd58d2262e3fe62aa3aa7b' into gobby/in…
joshwilhelmi May 27, 2026
3acddeb
Merge branch 'gobby/integration/215-datastore-adapters' into task-223…
joshwilhelmi May 27, 2026
b5cd3bd
Merge branch 'gobby/integration/215-datastore-adapters' into task-222…
joshwilhelmi May 27, 2026
cefd264
Merge branch 'task-222-add-falkordb-adapter-and-query-safety-bo' into…
joshwilhelmi May 27, 2026
4a82180
Merge branch 'gobby/integration/215-datastore-adapters' into task-223…
joshwilhelmi May 27, 2026
ee2cece
Merge branch 'task-223-add-qdrant-and-embedding-configuration-a' into…
joshwilhelmi May 27, 2026
e4504d9
Merge branch 'gobby/integration/210-build-gcore-rust-foundation.md' i…
joshwilhelmi May 27, 2026
c8c107f
[gobby-#225] feat: add generic search fusion primitives
joshwilhelmi May 27, 2026
d256941
[gobby-#224] feat: add generic indexing primitives
joshwilhelmi May 27, 2026
7614ade
[gobby-#223] fix: remove duplicate gcore manifest entries
joshwilhelmi May 27, 2026
6b6be24
Merge branch 'task-223-add-qdrant-and-embedding-configuration-a' into…
joshwilhelmi May 27, 2026
160d062
Merge commit 'd2569414854bf4cb3368baf3555486bad58f5d43' into gobby/in…
joshwilhelmi May 27, 2026
c7151c0
Merge branch 'gobby/integration/216-generic-indexing-and-search-primi…
joshwilhelmi May 28, 2026
94ba692
Merge branch 'task-225-add-generic-search-fusion-primitives' into gob…
joshwilhelmi May 28, 2026
ee560f9
[gobby-#221] fix: remove duplicate postgres module export
joshwilhelmi May 28, 2026
cd67952
Merge commit 'ee560f9bba7acab9f2e5db8d9537c50ab6779a85' into gobby/in…
joshwilhelmi May 28, 2026
1ac557a
Merge commit 'cd67952e1ab59153e1444eef56e88f31cf4c72b2' into gobby/in…
joshwilhelmi May 28, 2026
73d6235
fix: combine duplicate [features] sections in gcore Cargo.toml
joshwilhelmi May 28, 2026
75c673b
[gobby-#224] test: guard generic indexing feature manifest
joshwilhelmi May 28, 2026
dd75776
Merge commit '75c673b43007eaef9a5f6b06771e8a87f83ccde4' into gobby/in…
joshwilhelmi May 28, 2026
35a8930
[gobby-#224] feat: add generic chunk identity primitive
joshwilhelmi May 28, 2026
0807f61
Merge commit '35a89300401461fae11cd81b861c47295b5b49d4' into gobby/in…
joshwilhelmi May 28, 2026
13adcb8
[gobby-#226] docs: revise gcode projection plan
joshwilhelmi May 28, 2026
7071dcb
[gobby-#224] feat: add generic index event diff helper
joshwilhelmi May 28, 2026
072e121
Merge commit '7071dcb63fe2aa4432109f8880ae4c1e3e689698' into gobby/in…
joshwilhelmi May 28, 2026
2b06c2f
[gobby-#224] feat: add generic file content hash helper
joshwilhelmi May 28, 2026
12133d7
Merge commit '2b06c2fd8ee31e4a41e844f62b22329747907b6e' into gobby/in…
joshwilhelmi May 28, 2026
033b551
[gobby-#224] feat: add walker settings constructor
joshwilhelmi May 28, 2026
05f236b
Merge commit '033b551e20d8498a370ad6bd36bd875483bb03b9' into gobby/in…
joshwilhelmi May 28, 2026
6da490c
[gobby-#225] chore: revalidate search fusion primitives
joshwilhelmi May 28, 2026
df1aeba
Merge branch 'task-225-add-generic-search-fusion-primitives' into gob…
joshwilhelmi May 28, 2026
08019b5
[gobby-#224] chore: merge gcore foundation integration
joshwilhelmi May 28, 2026
7a10657
Merge commit '08019b5e0af0b576e3f4da2b65b1e645665bf917' into gobby/in…
joshwilhelmi May 28, 2026
530f568
Merge commit '7a10657e9b5049ddd69b632eba28a0b531dbda0d' into gobby/in…
joshwilhelmi May 28, 2026
2ee87a0
Merge branch 'dev' into gobby/integration/210-build-gcore-rust-founda…
joshwilhelmi May 28, 2026
2a2743f
Merge commit '2ee87a0e75cc628a8f5cb6a1a5e56facf71dcb74' into dev
joshwilhelmi May 28, 2026
f5a9e85
[gobby-#229] docs: revise gcode projection plan (R21)
joshwilhelmi May 28, 2026
bd4b9f5
[gobby-#229] docs: revise gcode projection plan (R23)
joshwilhelmi May 28, 2026
7de6847
[gobby-#229] docs: revise gcode projection plan (R26)
joshwilhelmi May 28, 2026
dbf4bef
[gobby-#229] docs: revise gcode projection plan (R28)
joshwilhelmi May 28, 2026
e3afd98
[gobby-#229] docs: revise gcode projection plan (R30)
joshwilhelmi May 28, 2026
7aee263
[gobby-#238] feat: add gcode projection library boundary
joshwilhelmi May 28, 2026
be4e25c
Merge commit '7aee263b18b89c0838e710ff808f04dd113e4f52' into dev
joshwilhelmi May 28, 2026
871c84c
[gobby-#244] feature: define projection provenance metadata
joshwilhelmi May 28, 2026
84744b0
Merge commit '871c84c782ff3e1cb1c661291492a833b89948bc' into dev
joshwilhelmi May 28, 2026
1f49686
[gobby-#239] feat: add explicit standalone setup
joshwilhelmi May 28, 2026
6376d1c
Merge commit '1f4968648dc54800e4219ac8ab38b5ac4e8f0cf5' into dev
joshwilhelmi May 28, 2026
9839856
[gobby-#242] feat: wire gcode to gobby-core foundation
joshwilhelmi May 28, 2026
0abd4b9
Merge commit '9839856e834af9ada30814f58d9f4c6618561d00' into dev
joshwilhelmi May 28, 2026
5f40282
[gobby-#240] feat: add typed Falkor query boundary
joshwilhelmi May 28, 2026
9138c0f
Merge commit '5f40282df97c421ae55a74bf880cab90ab307ab1' into dev
joshwilhelmi May 28, 2026
5274edf
[gobby-#248] feature: port code symbol vector projection
joshwilhelmi May 28, 2026
d997b6c
[gobby-#241] feat: add reusable code fact indexing API
joshwilhelmi May 28, 2026
9c8da50
Merge commit 'd997b6c3906a37665d25046a394f0fc00f2944d4' into dev
joshwilhelmi May 28, 2026
5a7b204
Merge commit '5274edf580462b30c699621adaa04fe76c9f5920' into dev
joshwilhelmi May 28, 2026
8b4c060
[gobby-#245] feat: port code graph writes
joshwilhelmi May 28, 2026
96662ff
[gobby-#245] fix: plumb code vector settings into gcode contexts
joshwilhelmi May 28, 2026
4ff86da
Merge commit '96662ff5cbc3672b276a5a4e9db9ebd4b00dfca5' into dev
joshwilhelmi May 28, 2026
e61ca2e
[gobby-#243] refactor: consume gobby-core primitives
joshwilhelmi May 28, 2026
14c5ad2
Merge commit 'e61ca2e6a97911580da18219c4bbacdf081122c1' into dev
joshwilhelmi May 28, 2026
bf6a845
[gobby-#246] feat: port graph reads to rust core
joshwilhelmi May 28, 2026
f5e1c33
Merge commit 'bf6a845f18dbe287b2db556c0bf807e1f7aed0b9' into dev
joshwilhelmi May 28, 2026
3b90383
[gobby-#240] fix: escape double quotes in typed cypher strings
joshwilhelmi May 28, 2026
b2c6345
Merge commit '3b903830e7cc68aa21cc9d254f6a184d594abf8a' into gobby/in…
joshwilhelmi May 28, 2026
a15ca22
Merge branch 'dev' into gobby/integration/235-core-boundary-and-setup
joshwilhelmi May 28, 2026
774ef88
Merge commit 'a15ca226121990727cad5e94004e8e5609f5072e' into dev
joshwilhelmi May 28, 2026
636746a
[gobby-#247] feat: wrap graph core with gcode commands
joshwilhelmi May 28, 2026
e4d4047
[gobby-#250] feat: add project graph report API
joshwilhelmi May 28, 2026
4366e0b
Merge commit '636746a19c72530fe59bfb83224084c40c804e03' into dev
joshwilhelmi May 28, 2026
901861d
Merge commit 'e4d4047d9c723486b8194176c89b34f16ab890a4' into dev
joshwilhelmi May 28, 2026
0f591ad
[gobby-#249] feat: add projection lifecycle orchestration
joshwilhelmi May 28, 2026
558cc75
Merge commit '0f591ad467c0ab2ecb09d664f5e8c6d8728d5065' into dev
joshwilhelmi May 28, 2026
c9825fe
[gobby-#251] feat: add graph report CLI
joshwilhelmi May 28, 2026
836575a
Merge commit 'c9825feaadc38fed16cb4697f3626abf3b06cce6' into dev
joshwilhelmi May 28, 2026
5abf26b
[gobby-#252] docs: document daemon migration contracts
joshwilhelmi May 28, 2026
1f02882
Merge commit '5abf26babb785e952631b014952a503bfd70baab' into dev
joshwilhelmi May 28, 2026
23c8303
[gobby-#267] feat: add standalone gcore bootstrap provisioning
joshwilhelmi May 28, 2026
850c3b9
[gobby-#268] feat: add overwrite code-index reset
joshwilhelmi May 28, 2026
cfbacc5
[gobby-#269] chore: release gcore 0.2.0 and gcode 0.9.0
joshwilhelmi May 28, 2026
852af86
[gobby-cli-#270] feat: release gcode graph fixes
joshwilhelmi May 28, 2026
9ed1887
[gobby-cli-#271] feat: release gcode 0.9.2 daemon parity fixes
joshwilhelmi May 28, 2026
8f8af11
[gobby-cli-#271] test: fix project-id context assertion
joshwilhelmi May 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
808 changes: 672 additions & 136 deletions .gobby/plans/gcode-graph-enhancements.md

Large diffs are not rendered by default.

1,396 changes: 1,269 additions & 127 deletions .gobby/plans/gcore-rust-foundation.md

Large diffs are not rendered by default.

110 changes: 110 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,116 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.9.2] — gcode

### Added

#### gcode

- **Project-id graph clear** — `gcode graph clear --project-id <PROJECT_ID>`
now clears a code graph projection by explicit project id before normal
project-root resolution. This is the daemon stale-project cleanup path and can
run from any cwd without `.gobby/project.json`.

### Fixed

#### gcode

- **Deleted-file projection cleanup** — `gcode index` now removes FalkorDB code
graph nodes/edges and Qdrant code-symbol vectors for deleted files before
deleting PostgreSQL hub facts. This covers missing explicit
`--files <deleted-file>` inputs and whole-project stale/orphan cleanup without
relying on daemon reconciliation.
- **Projection ownership boundary** — code graph clears remain scoped to
code-index FalkorDB labels, and code vector clears remain scoped to
`code_symbols_{project_id}`. Memory graph nodes and memory vector collections
are not targeted by these lifecycle paths.

## [0.9.1] — gcode

### Added

#### gcode

- **Overview graph limit** — `gcode graph overview` now accepts `--limit N`
to cap the number of files included in the overview graph, matching the
daemon's graph overview limit contract.

### Fixed

#### gcode

- **File graph read aliases** — `gcode graph file` now keeps node file paths
and edge metadata file paths under distinct FalkorDB result aliases, fixing
duplicate-column failures when returning JSON graph payloads.

## [0.9.0] — gcode

### Added

#### gcode

- **Standalone setup reset boundary** — `gcode setup --standalone` now fails
safely when it detects incompatible existing code-index PostgreSQL state and
prints guidance to rerun with `--overwrite-code-index` only when a full
code-index reset is intended.
- **Advanced full code-index overwrite** —
`gcode setup --standalone --overwrite-code-index` drops/recreates only
allowlisted gcode code-index PostgreSQL relations and BM25 indexes, clears
code-index graph nodes in FalkorDB, and deletes Qdrant collections with the
`code_symbols_` prefix. Gobby project files, config, secrets, tasks,
sessions, memory, and daemon-owned data stay untouched.
- **Rust graph/vector projection lifecycle** — graph reads, graph reports,
vector projection sync, and graph/vector lifecycle operations now route
through the Rust `gobby-code` library boundary for daemon adoption.

### Changed

#### gcode

- **Project-scoped invalidation** — `gcode invalidate` remains the normal
project reset. PostgreSQL deletes stay filtered to the current project, and
configured standalone FalkorDB/Qdrant projections are cleaned only for that
project.
- **Shared foundation dependency** — `gobby-code` now consumes
`gobby-core 0.2`.

## [0.2.0] — gobby-core

### Added

#### gobby-core

- **Expanded shared foundation** — added reusable context/config contracts,
attached/standalone setup contracts, PostgreSQL hub helpers, FalkorDB and
Qdrant adapters, standalone service provisioning helpers, indexing
primitives, search-fusion primitives, and degradation vocabulary for Rust
Gobby CLI consumers.

### Changed

#### gobby-core

- **Consumer dependency line** — workspace consumers now target the
`gobby-core 0.2` minor line.

## [0.8.7] — gcode

### Fixed

#### gcode

- **Project identity resolution** — self-referential
`parent_project_path` / `parent_project_id` markers now keep the owning
`.gobby/project.json` ID, while linked worktrees and isolated roots keep
filesystem-scoped code index IDs.
- **Source `build` package indexing** — root generated `build` / `dist`
directories stay excluded, while source directories such as
`src/gobby/build/` are indexed.
- **Duplicate-root pruning** — `gcode prune` now marks stale duplicate project
entries for an existing root when they differ from that root's resolved
project ID.

## [0.4.4] — gsqz

### Fixed
Expand Down
13 changes: 11 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

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

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

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.

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

## Documentation

Expand Down Expand Up @@ -100,6 +103,17 @@ Bootstrap fallback is valid only when `hub_backend: postgres` and bootstrap
contains an inline `database_url`. Bootstrap `database_url_ref` is rejected
during bootstrap validation; it is never resolved or used to restart the
fallback chain.

For daemon-independent service provisioning, use `gcode setup --standalone`.
The default setup path is non-destructive. If incompatible code-index state is
already present, rerun with `gcode setup --standalone --overwrite-code-index`
only when you intend to reset all gcode-owned code-index PostgreSQL,
FalkorDB, and Qdrant projection state.

Graph/vector lifecycle is code-index scoped. FalkorDB clears target only
code-index labels, and Qdrant clears target only `code_symbols_{project_id}`;
Gobby memory graph and memory vector collections stay outside this boundary.

Installing from source or crates.io requires Rust 1.88+.

### From source
Expand Down
8 changes: 6 additions & 2 deletions crates/gcode/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "gobby-code"
version = "0.8.6"
version = "0.9.2"
edition = "2024"
rust-version = "1.88"
authors = ["Josh Wilhelmi <hello@gobby.ai>"]
Expand All @@ -12,13 +12,17 @@ readme = "README.md"
keywords = ["code-search", "ast", "code-index", "developer-tools", "gobby"]
categories = ["command-line-utilities", "development-tools"]

[lib]
name = "gobby_code"
path = "src/lib.rs"

[[bin]]
name = "gcode"
path = "src/main.rs"

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

# CLI
clap = { version = "4", features = ["derive"] }
Expand Down
17 changes: 11 additions & 6 deletions crates/gcode/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,18 +136,21 @@ gcode symbols <id1> <id2> ... # Batch retrieve
gcode tree # File tree with symbol counts

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

# Graph lifecycle (requires Gobby daemon)
# Graph lifecycle (requires FalkorDB)
gcode graph clear # Clear current project's graph projection
gcode graph clear --project-id <id> # Clear graph projection by explicit project id
gcode graph rebuild # Rebuild current project's graph projection

# Project management
gcode status # Index stats
gcode projects # List all indexed projects
gcode setup --standalone # Provision daemon-independent services
gcode index # Re-index (incremental)
gcode invalidate # Clear index, force full re-index

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

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

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

## Language Support

Expand Down
Loading
Loading