Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
db04ebf
feat: add ask command, support token usage tracking and max_tokens in…
joshwilhelmi Jun 3, 2026
52d2167
[gobby-#15575] fix: close gwiki research contract gaps
joshwilhelmi Jun 3, 2026
5acfa18
[gobby-cli-#444] fix: apply remaining CodeRabbit triage
joshwilhelmi Jun 3, 2026
511c235
[gobby-cli-#460] fix: lock-free read-time freshness pre-gate in gcode
joshwilhelmi Jun 3, 2026
f22920b
[gobby-cli-#461] chore: prep multi-crate release (gwiki 0.2.0, gloc d…
joshwilhelmi Jun 3, 2026
4dbc3c2
[gobby-cli-#461] docs: push release tags individually (GitHub >3-tag …
joshwilhelmi Jun 3, 2026
828ccc2
[gobby-cli-#461] fix: drop Windows targets from gwiki release matrix
joshwilhelmi Jun 3, 2026
40b86ac
[gobby-cli-#464] chore: publish per-asset SHA-256 checksums in helper…
joshwilhelmi Jun 3, 2026
da9bcd8
[gobby-cli-#466] fix: stop gwiki research on genuine write conflict
joshwilhelmi Jun 3, 2026
62d23ff
[gobby-cli-#467] feat: echo all five research budget limits in JSON
joshwilhelmi Jun 3, 2026
942a856
[gobby-cli-#465] fix: make gwiki release publish step idempotent
joshwilhelmi Jun 3, 2026
61b3155
[gobby-cli-#446] refactor: split codewiki.rs into codewiki/ modules u…
joshwilhelmi Jun 3, 2026
8a0a409
[gobby-cli-#447] refactor: split ingest/video.rs into video/ modules …
joshwilhelmi Jun 3, 2026
fd28d63
[gobby-cli-#468] feat: restore Windows release builds for gwiki, add …
joshwilhelmi Jun 3, 2026
13640f6
[gobby-cli-#448] refactor: split provisioning.rs into provisioning/ m…
joshwilhelmi Jun 3, 2026
8d89fe4
[gobby-cli-#469] test: pin release workflow checksums
joshwilhelmi Jun 3, 2026
b2365bb
[gobby-cli-#449] refactor: split research.rs into research/ modules u…
joshwilhelmi Jun 3, 2026
7dbaa33
[gobby-cli-#450] refactor: split config.rs into config/ modules under…
joshwilhelmi Jun 3, 2026
8424331
[gobby-cli-#451] refactor: split commands/refresh.rs into refresh/ mo…
joshwilhelmi Jun 3, 2026
65ed065
[gobby-cli-#452] refactor: split ingest/document.rs into document/ mo…
joshwilhelmi Jun 3, 2026
6f560d8
[gobby-cli-#470] chore: update coderabbit path filters
joshwilhelmi Jun 3, 2026
32e8fae
[gobby-cli-#453] refactor: split compile.rs into compile/ modules und…
joshwilhelmi Jun 3, 2026
30d4de5
chore: remove stale TDD evidence files for completed tasks
joshwilhelmi Jun 3, 2026
4b23a45
[gobby-cli-#454] refactor: split cli_smoke.rs into cli_smoke/ test mo…
joshwilhelmi Jun 3, 2026
c08fa2b
[gobby-cli-#455] refactor: split db.rs into db/ modules under 1,000 l…
joshwilhelmi Jun 3, 2026
9fb0658
[gobby-cli-#456] refactor: split import_resolution/parser.rs into par…
joshwilhelmi Jun 3, 2026
74f3756
[gobby-cli-#471] feat: add grep word matching and UUID graph lookup
joshwilhelmi Jun 3, 2026
3975d2b
[gobby-cli-#457] refactor: split sources.rs into sources/ modules und…
joshwilhelmi Jun 3, 2026
43d1698
[gobby-cli-#458] refactor: split ingest/pdf.rs into pdf/ modules unde…
joshwilhelmi Jun 4, 2026
9e703c4
[gobby-cli-#459] refactor: split research_loop.rs into research_loop/…
joshwilhelmi Jun 4, 2026
bf6e662
[gobby-cli-#463] fix: enable gwiki windows pdfium release builds
joshwilhelmi Jun 4, 2026
2b19d08
[gobby-cli-#472] feat: add nextest CI foundation
joshwilhelmi Jun 4, 2026
df61c26
[gobby-cli-#476] fix: address coderabbit findings
joshwilhelmi Jun 4, 2026
5e96800
[gobby-cli-#477] fix: address coderabbit triage findings
joshwilhelmi Jun 4, 2026
646889b
[gobby-cli-#473] refactor: modernize gwiki CLI fixtures
joshwilhelmi Jun 4, 2026
7fad8b1
[gobby-cli-#475] chore: align release tests with nextest
joshwilhelmi Jun 4, 2026
6e717b0
[gobby-cli-#474] test: add gcode snapshot and property coverage
joshwilhelmi Jun 4, 2026
e4cebdd
[gobby-cli-#478] fix: apply CodeRabbit findings
joshwilhelmi Jun 4, 2026
f03031d
[gobby-cli-#479] bug: apply CodeRabbit triage fixes
joshwilhelmi Jun 4, 2026
d0e1bcf
[gobby-cli-#481] docs: add gwiki user guide and fix compile contract …
joshwilhelmi Jun 4, 2026
f1420e6
[gobby-cli-#480] fix: address coderabbit findings
joshwilhelmi Jun 4, 2026
bcddc14
[gobby-cli-#484] fix: align gwiki compile contract keys
joshwilhelmi Jun 4, 2026
a35f262
[gobby-cli-#483] fix: address coderabbit triage
joshwilhelmi Jun 4, 2026
02937e4
[gobby-cli-#485] fix: restore gwiki default-feature build
joshwilhelmi Jun 4, 2026
007921e
[gobby-cli-#486] fix: address CodeRabbit findings
joshwilhelmi Jun 4, 2026
b1ce90e
[gobby-cli-#487] fix: address coderabbit triage findings
joshwilhelmi Jun 4, 2026
a296637
[gobby-cli-#488] Fix CodeRabbit batch findings
joshwilhelmi Jun 4, 2026
9636f61
[gobby-cli-#489] Enforce gwiki datastore contract
joshwilhelmi Jun 5, 2026
5324fc3
[gobby-cli-#482] test: add workflow action pinning guardrail
joshwilhelmi Jun 5, 2026
387f835
[gobby-cli-#490] docs: clarify gcode grep literals
joshwilhelmi Jun 5, 2026
03e0137
[gobby-cli-#491] fix: use pdb score for gcode bm25
joshwilhelmi Jun 5, 2026
72174fc
[gobby-cli-#492] refactor: consolidate BM25 score primitives
joshwilhelmi Jun 5, 2026
ab2e951
[gobby-cli-#494] feat: add symbol-at lookup
joshwilhelmi Jun 5, 2026
4794485
[gobby-cli-#495] fix: address coderabbit batch findings
joshwilhelmi Jun 5, 2026
d1173cc
[gobby-#496] fix: skip unused gcode service resolution
joshwilhelmi Jun 5, 2026
7410870
[gobby-cli-#497] Apply CodeRabbit batch fixes
joshwilhelmi Jun 5, 2026
5bb9f26
[gobby-cli-#498] fix: apply CodeRabbit batch fixes
joshwilhelmi Jun 5, 2026
8068b0b
[gobby-cli-#499] fix: address CodeRabbit triage batch
joshwilhelmi Jun 5, 2026
4f11798
[gobby-cli-#502] fix: satisfy clippy in codewiki tests
joshwilhelmi Jun 5, 2026
9c503c6
[gobby-cli-#500] refactor: split import resolution tests
joshwilhelmi Jun 5, 2026
21fc6fe
[gobby-cli-#501] fix: address coderabbit triage batch
joshwilhelmi Jun 5, 2026
3d010fe
[gobby-cli-#503] fix: address CodeRabbit batch findings
joshwilhelmi Jun 5, 2026
4c8dd18
refactor: remove legacy compatibility surfaces
joshwilhelmi Jun 5, 2026
6315a68
docs: add new-release plan for coordinated tagged release
joshwilhelmi Jun 5, 2026
b9add20
[gobby-cli-#505] release: gcode 1.0.0, gwiki 0.3.0, gcore 0.4.0, patc…
joshwilhelmi Jun 6, 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
3 changes: 3 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ inheritance: true

reviews:
profile: assertive
path_filters:
- "!.gobby/plans/completed/**"
- "!docs/plans/completed/**"
19 changes: 19 additions & 0 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
nextest-version = { required = "0.9.133" }

[profile.default]
fail-fast = false

[profile.ci]
inherits = "default"
fail-fast = false

[test-groups]
serial-db = { max-threads = 1 }

[[profile.default.overrides]]
filter = 'package(gobby-code) & (test(::serial_db::) | test(serial_db::))'
test-group = 'serial-db'

[[profile.default.overrides]]
filter = 'package(gobby-wiki) & (test(::serial_db::) | test(serial_db::))'
test-group = 'serial-db'
89 changes: 76 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,23 @@ jobs:
name: Check & Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
with:
persist-credentials: false

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8
with:
toolchain: stable
components: clippy, rustfmt

- name: Install cargo-nextest
uses: taiki-e/install-action@f5b277aa8941a90c16bc1cd6ab9363e0502b7d31
with:
tool: nextest

- name: Cache cargo registry & build
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830
with:
path: |
~/.cargo/registry
Expand All @@ -39,23 +47,23 @@ jobs:
run: cargo clippy -p gobby-core --all-targets -- -D warnings

- name: Test (gobby-core)
run: cargo test -p gobby-core
run: cargo nextest run --profile ci -p gobby-core

- name: Clippy (gobby-core, ai)
run: cargo clippy -p gobby-core --features ai --all-targets -- -D warnings

- name: Test (gobby-core, ai)
run: cargo test -p gobby-core --features ai
run: cargo nextest run --profile ci -p gobby-core --features ai

# ghook: full clippy + tests
- name: Clippy (ghook)
run: cargo clippy -p gobby-hooks --all-targets -- -D warnings

- name: Test (ghook)
run: cargo test -p gobby-hooks
run: cargo nextest run --profile ci -p gobby-hooks

- name: Test (ghook, no default features)
run: cargo test -p gobby-hooks --no-default-features
run: cargo nextest run --profile ci -p gobby-hooks --no-default-features

- name: Clippy (ghook, no default features)
run: cargo clippy -p gobby-hooks --all-targets --no-default-features -- -D warnings
Expand All @@ -65,37 +73,92 @@ jobs:
run: cargo clippy -p gobby-squeeze -- -D warnings

- name: Test (gsqz)
run: cargo test -p gobby-squeeze
run: cargo nextest run --profile ci -p gobby-squeeze

# gloc: full clippy + tests
- name: Clippy (gloc)
run: cargo clippy -p gobby-local -- -D warnings

- name: Test (gloc)
run: cargo test -p gobby-local
run: cargo nextest run --profile ci -p gobby-local

# gwiki: default checks include documents/pdfium; no-default-features covers degraded storage path
- name: Clippy (gwiki)
run: cargo clippy -p gobby-wiki --all-targets -- -D warnings

- name: Test (gwiki)
run: cargo test -p gobby-wiki
run: cargo nextest run --profile ci -p gobby-wiki

- name: Clippy (gwiki, no default features)
run: cargo clippy -p gobby-wiki --all-targets --no-default-features -- -D warnings

- name: Test (gwiki, no default features)
run: cargo test -p gobby-wiki --no-default-features
run: cargo nextest run --profile ci -p gobby-wiki --no-default-features

# gcode: clippy + tests without embeddings (Linux CI has no cmake/Metal)
- name: Clippy (gcode, no embeddings)
run: cargo clippy -p gobby-code --all-targets --no-default-features -- -D warnings

- name: Test (gcode, no embeddings)
run: cargo test -p gobby-code --no-default-features
run: cargo nextest run --profile ci -p gobby-code --no-default-features

- name: Test codewiki (gcode, no embeddings)
run: cargo test -p gobby-code --no-default-features codewiki
run: cargo nextest run --profile ci -p gobby-code --no-default-features -E 'test(codewiki)'

- name: Test workspace (no default features)
run: cargo nextest run --profile ci --workspace --no-default-features

- name: Test doctests (workspace, no default features)
run: cargo test --doc --workspace --no-default-features

- name: Build workspace (without embeddings)
run: cargo build --workspace --no-default-features

coverage:
name: Coverage (report only)
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
with:
persist-credentials: false

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8
with:
toolchain: stable
components: llvm-tools-preview

- name: Install cargo-llvm-cov
uses: taiki-e/install-action@f5b277aa8941a90c16bc1cd6ab9363e0502b7d31
with:
tool: cargo-llvm-cov

- name: Install cargo-nextest
uses: taiki-e/install-action@f5b277aa8941a90c16bc1cd6ab9363e0502b7d31
with:
tool: nextest

- name: Cache cargo registry & build
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-coverage-cargo-${{ hashFiles('Cargo.lock') }}
restore-keys: ${{ runner.os }}-coverage-cargo-

- name: Generate LCOV report
run: |
cargo llvm-cov clean --workspace
cargo llvm-cov --no-report nextest --workspace --no-default-features --profile ci
cargo llvm-cov report --lcov --output-path lcov.info

- name: Upload LCOV artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
if: always()
with:
name: lcov
path: lcov.info
if-no-files-found: ignore
53 changes: 43 additions & 10 deletions .github/workflows/release-gcode.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,21 @@ jobs:
name: Test before release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
with:
persist-credentials: false

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8
with:
toolchain: stable
components: clippy

- name: Install cargo-nextest
uses: taiki-e/install-action@f5b277aa8941a90c16bc1cd6ab9363e0502b7d31
with:
tool: nextest

- name: Verify tag matches Cargo.toml version
# Guards against tag/crate/release drift: installers resolve a version
# from crates.io and then look for a matching gcode-v{version} GitHub
Expand All @@ -46,10 +54,16 @@ jobs:
run: cargo clippy -p gobby-code --no-default-features -- -D warnings

- name: Run tests
run: cargo test -p gobby-code
run: cargo nextest run --profile ci -p gobby-code

- name: Run doctests
run: cargo test --doc -p gobby-code

- name: Run tests without default features
run: cargo test -p gobby-code --no-default-features
run: cargo nextest run --profile ci -p gobby-code --no-default-features

- name: Run doctests without default features
run: cargo test --doc -p gobby-code --no-default-features

build:
needs: test
Expand Down Expand Up @@ -80,11 +94,14 @@ jobs:
name: ${{ matrix.target }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
with:
persist-credentials: false

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8
with:
toolchain: stable
targets: ${{ matrix.target }}

- name: Install cross-compilation tools (Linux ARM)
Expand Down Expand Up @@ -136,10 +153,14 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
with:
persist-credentials: false

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8
with:
toolchain: stable

- name: Publish gobby-code to crates.io
run: cargo publish -p gobby-code
Expand All @@ -152,14 +173,26 @@ jobs:

steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
with:
merge-multiple: true

- name: Generate SHA-256 checksums
# Installers fetch <asset>.sha256 and verify the archive before
# chmod/PATH placement (fail-closed on missing/mismatched checksum).
shell: bash
run: |
set -euo pipefail
shopt -s nullglob
for asset in gcode-*.tar.gz gcode-*.zip; do
sha256sum "$asset" > "$asset.sha256"
done

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@3bb12739c298aeb8a4eeaf626c5b8d85266b0e65
with:
files: |
gcode-*.tar.gz
gcode-*.zip
gcode-*.sha256
generate_release_notes: true
32 changes: 27 additions & 5 deletions .github/workflows/release-gcore.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,50 @@ jobs:
name: Test before release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
with:
persist-credentials: false

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8
with:
toolchain: stable
components: clippy

- name: Install cargo-nextest
uses: taiki-e/install-action@f5b277aa8941a90c16bc1cd6ab9363e0502b7d31
with:
tool: nextest

- name: Clippy
run: cargo clippy -p gobby-core --all-targets -- -D warnings

- name: Run tests
run: cargo test -p gobby-core
run: cargo nextest run --profile ci --workspace

- name: Run tests without default features
run: cargo nextest run --profile ci --workspace --no-default-features

- name: Run doctests
run: cargo test --doc --workspace

- name: Run doctests without default features
run: cargo test --doc --workspace --no-default-features

publish:
name: Publish
needs: test
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
with:
persist-credentials: false

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8
with:
toolchain: stable

- name: Publish gobby-core to crates.io
run: cargo publish -p gobby-core
Expand Down
Loading
Loading