Commit 2faabb7
authored
fix: improve v2.4 setup and indexing flow (#11)
## Summary
- Reworked `gather-step init` so existing `gather-step.config.yaml`
files are respected, selected repos stay selected, and setup uses one
numbered checkbox-style repo picker.
- Added `gather-step watch N`, clearer indexing progress/logging, final
elapsed time plus index-size output, and a loader while AI Markdown
files are generated.
- Reduced noisy parser warnings for static JSON/YAML mapping files and
ambiguous sibling Python packages.
- Updated v2.4 version metadata, changelog, landing-page copy, setup
docs, CLI docs, and the CLI reference layout. Release-note drafts are
ignored.
## Context / Motivation
The setup flow was too easy to mistrust: rerunning `init` could fail on
an existing config or reintroduce repos the user had already removed,
indexing repeated repo discovery output, `watch N` was parsed as ignored
intent, and progress/log messages read like internal implementation
notes. The docs CLI reference page also had a sidebar/content overlap on
desktop.
## Key Decisions
- Treat existing config YAML as authoritative. Interactive init uses it
as the default repo selection and preserves selected repo metadata such
as custom `name`, `depth`, provider settings, and indexing rules.
- Keep the repo picker terminal-native instead of adding a TUI
dependency, so setup remains portable and script-friendly.
- Leave ambiguous sibling Python package imports unresolved instead of
choosing the first match, because an omitted edge is safer than a wrong
edge for planning context.
- Use `--force` as the explicit path for regenerating a fresh discovered
config.
## Files Changed
| Area | Files | Change |
| --- | --- | --- |
| Init/watch/generate CLI |
`crates/gather-step-cli/src/commands/init.rs`, `watch.rs`,
`generate.rs`, `mod.rs`, `tests/cli_init.rs` | Existing-config reuse,
repo picker, `watch N`, AI Markdown loader, review fixes, copy polish,
and regression coverage. |
| Indexing UX/logging | `crates/gather-step-cli/src/commands/index.rs` |
Shorter progress bar, current path display, start/finish logs, polished
finalization copy, elapsed time, and index size. |
| Parser warnings | `crates/gather-step-parser/src/tree_sitter.rs` |
Skip SWC for static mapping files and avoid warning/noisy first-match
Python package resolution. |
| Release metadata | `Cargo.toml`, crate manifests, `Cargo.lock`,
`website/package.json` | Bumped v2.4 metadata. |
| Docs/site | `website/src/**`, `.gitignore` | v2.4 changelog, landing
copy, setup/CLI docs, CLI reference layout constraints, and ignored
local release-note drafts. |
## Cross-Repo / Rollout Impact
None. This is local CLI/docs behavior in `thedoublejay/gather-step`.
Existing workspaces can keep their config. After upgrading, users should
rebuild generated state before relying on v2.4 output:
```bash
gather-step --workspace /path/to/workspace reindex
gather-step --workspace /path/to/workspace generate claude-md
gather-step --workspace /path/to/workspace generate agents-md
```
## Verification
- [x] `cargo fmt --all -- --check`
- [x] `cargo clippy -p gather-step -p gather-step-parser --all-targets
-- -D warnings`
- [x] `cargo test -p gather-step --lib`
- [x] `cargo test -p gather-step --test cli_init`
- [x] `cargo test -p gather-step
repo_config_merge_filters_allow_list_to_selected_repos --lib`
- [x] `cargo test -p gather-step
repo_config_name_match_keeps_discovered_path --lib`
- [x] `cargo test -p gather-step-parser --lib`
- [x] `cd website && bun run build`
- [x] `git diff --check`
- [x] Previewed `/reference/cli/` locally and captured a Playwright
screenshot at `1280x900` to confirm content no longer overlaps the
sidebar.
## Follow-ups
- Consider a separate generated-rules improvement pass using the
Braingent v3 cleanup plan: freshness metadata, context budgets, and
explicit retrieval/capture workflow pointers.25 files changed
Lines changed: 825 additions & 181 deletions
File tree
- crates
- gather-step-bench
- gather-step-cli
- src/commands
- tests
- gather-step-mcp
- gather-step-output
- gather-step-parser/src
- website
- src
- components/landing
- content/docs
- guides
- reference
- pages
- styles
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
31 | 34 | | |
32 | 35 | | |
33 | 36 | | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | | - | |
29 | | - | |
30 | | - | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
185 | 186 | | |
186 | 187 | | |
187 | 188 | | |
| 189 | + | |
188 | 190 | | |
189 | 191 | | |
190 | 192 | | |
| |||
196 | 198 | | |
197 | 199 | | |
198 | 200 | | |
199 | | - | |
| 201 | + | |
| 202 | + | |
200 | 203 | | |
201 | | - | |
| 204 | + | |
202 | 205 | | |
203 | 206 | | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
204 | 211 | | |
205 | 212 | | |
206 | 213 | | |
| |||
210 | 217 | | |
211 | 218 | | |
212 | 219 | | |
213 | | - | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
214 | 247 | | |
215 | 248 | | |
216 | 249 | | |
| |||
0 commit comments