Bump github.com/fsnotify/fsnotify from 1.7.0 to 1.9.0 in /cli - #3
Bump github.com/fsnotify/fsnotify from 1.7.0 to 1.9.0 in /cli#3dependabot[bot] wants to merge 1 commit into
Conversation
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
Bumps [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify) from 1.7.0 to 1.9.0. - [Release notes](https://github.com/fsnotify/fsnotify/releases) - [Changelog](https://github.com/fsnotify/fsnotify/blob/main/CHANGELOG.md) - [Commits](fsnotify/fsnotify@v1.7.0...v1.9.0) --- updated-dependencies: - dependency-name: github.com/fsnotify/fsnotify dependency-version: 1.9.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
0abc8d0 to
e6005bc
Compare
|
Closing: fsnotify 1.9.0 is already included in the viper 1.21.0 upgrade (PR #1). Merging separately would create a conflict. |
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
…s inside Changes the unit of search output from "chunk" to "file". Inspired by how grep groups hits per file but with AST-aware match boundaries and embedding-driven ranking. Old wire shape: a flat list of chunks. A file with three matching chunks ate three slots out of the user's --limit budget, scattered across the result list, often with the file appearing at positions #3 and #10 simultaneously. New wire shape: results: [ { file_path, language, best_score, matches: [ { start_line, end_line, score, content, chunk_type, symbol_name, nested_hits }, ... ] } ] total: <distinct files> Ranking: * Files ordered by best_score (the highest match score in the group) descending. * Inside each file, matches ordered by start_line ascending — natural reading order top-to-bottom. * No per-file cap on matches. The only intra-file filter is min_score. A file with 50 matches above threshold shows all 50. Window loop now targets distinct files, not chunks: factor 2..16, stops when len(file_groups) >= limit, when the vector store returns fewer rows than asked, or when the cap is hit. mergeOverlappingHits still runs FIRST (collapses nested H1⊋H2⊋H3 etc. into one match with nested_hits inside), then groupByFile lifts the survivors into file-grouped output. So a markdown file with three nested sections still produces ONE match (not one file with three), and a Go file with class+method overlap still produces a clean class match with the method as a nested hit. CLI render redesigned around the new shape: 1. /path/to/file.go [best 0.85] 4 matches · go -- [0.85] lines 61-195 (function run) ```go ... ``` + 1 more match inside: · [0.50] line 80 (function init) -- [0.42] lines 250-280 (type Server) ```go ... ``` Tests: * groupByFile: sort-by-best-score, sort-matches-by-line, preserves nested_hits, empty input. * TestSemanticSearch_NestedMarkdownMerge updated for the new shape — still asserts the H1 absorbs the two H2 sub-sections (now visible as group.Matches[0].NestedHits). * CLI search_test fixture updated to new wire shape. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…s inside Changes the unit of search output from "chunk" to "file". Inspired by how grep groups hits per file but with AST-aware match boundaries and embedding-driven ranking. Old wire shape: a flat list of chunks. A file with three matching chunks ate three slots out of the user's --limit budget, scattered across the result list, often with the file appearing at positions #3 and #10 simultaneously. New wire shape: results: [ { file_path, language, best_score, matches: [ { start_line, end_line, score, content, chunk_type, symbol_name, nested_hits }, ... ] } ] total: <distinct files> Ranking: * Files ordered by best_score (the highest match score in the group) descending. * Inside each file, matches ordered by start_line ascending — natural reading order top-to-bottom. * No per-file cap on matches. The only intra-file filter is min_score. A file with 50 matches above threshold shows all 50. Window loop now targets distinct files, not chunks: factor 2..16, stops when len(file_groups) >= limit, when the vector store returns fewer rows than asked, or when the cap is hit. mergeOverlappingHits still runs FIRST (collapses nested H1⊋H2⊋H3 etc. into one match with nested_hits inside), then groupByFile lifts the survivors into file-grouped output. So a markdown file with three nested sections still produces ONE match (not one file with three), and a Go file with class+method overlap still produces a clean class match with the method as a nested hit. CLI render redesigned around the new shape: 1. /path/to/file.go [best 0.85] 4 matches · go -- [0.85] lines 61-195 (function run) ```go ... ``` + 1 more match inside: · [0.50] line 80 (function init) -- [0.42] lines 250-280 (type Server) ```go ... ``` Tests: * groupByFile: sort-by-best-score, sort-matches-by-line, preserves nested_hits, empty input. * TestSemanticSearch_NestedMarkdownMerge updated for the new shape — still asserts the H1 absorbs the two H2 sub-sections (now visible as group.Matches[0].NestedHits). * CLI search_test fixture updated to new wire shape. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…s inside Changes the unit of search output from "chunk" to "file". Inspired by how grep groups hits per file but with AST-aware match boundaries and embedding-driven ranking. Old wire shape: a flat list of chunks. A file with three matching chunks ate three slots out of the user's --limit budget, scattered across the result list, often with the file appearing at positions #3 and #10 simultaneously. New wire shape: results: [ { file_path, language, best_score, matches: [ { start_line, end_line, score, content, chunk_type, symbol_name, nested_hits }, ... ] } ] total: <distinct files> Ranking: * Files ordered by best_score (the highest match score in the group) descending. * Inside each file, matches ordered by start_line ascending — natural reading order top-to-bottom. * No per-file cap on matches. The only intra-file filter is min_score. A file with 50 matches above threshold shows all 50. Window loop now targets distinct files, not chunks: factor 2..16, stops when len(file_groups) >= limit, when the vector store returns fewer rows than asked, or when the cap is hit. mergeOverlappingHits still runs FIRST (collapses nested H1⊋H2⊋H3 etc. into one match with nested_hits inside), then groupByFile lifts the survivors into file-grouped output. So a markdown file with three nested sections still produces ONE match (not one file with three), and a Go file with class+method overlap still produces a clean class match with the method as a nested hit. CLI render redesigned around the new shape: 1. /path/to/file.go [best 0.85] 4 matches · go -- [0.85] lines 61-195 (function run) ```go ... ``` + 1 more match inside: · [0.50] line 80 (function init) -- [0.42] lines 250-280 (type Server) ```go ... ``` Tests: * groupByFile: sort-by-best-score, sort-matches-by-line, preserves nested_hits, empty input. * TestSemanticSearch_NestedMarkdownMerge updated for the new shape — still asserts the H1 absorbs the two H2 sub-sections (now visible as group.Matches[0].NestedHits). * CLI search_test fixture updated to new wire shape. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…s inside Changes the unit of search output from "chunk" to "file". Inspired by how grep groups hits per file but with AST-aware match boundaries and embedding-driven ranking. Old wire shape: a flat list of chunks. A file with three matching chunks ate three slots out of the user's --limit budget, scattered across the result list, often with the file appearing at positions #3 and #10 simultaneously. New wire shape: results: [ { file_path, language, best_score, matches: [ { start_line, end_line, score, content, chunk_type, symbol_name, nested_hits }, ... ] } ] total: <distinct files> Ranking: * Files ordered by best_score (the highest match score in the group) descending. * Inside each file, matches ordered by start_line ascending — natural reading order top-to-bottom. * No per-file cap on matches. The only intra-file filter is min_score. A file with 50 matches above threshold shows all 50. Window loop now targets distinct files, not chunks: factor 2..16, stops when len(file_groups) >= limit, when the vector store returns fewer rows than asked, or when the cap is hit. mergeOverlappingHits still runs FIRST (collapses nested H1⊋H2⊋H3 etc. into one match with nested_hits inside), then groupByFile lifts the survivors into file-grouped output. So a markdown file with three nested sections still produces ONE match (not one file with three), and a Go file with class+method overlap still produces a clean class match with the method as a nested hit. CLI render redesigned around the new shape: 1. /path/to/file.go [best 0.85] 4 matches · go -- [0.85] lines 61-195 (function run) ```go ... ``` + 1 more match inside: · [0.50] line 80 (function init) -- [0.42] lines 250-280 (type Server) ```go ... ``` Tests: * groupByFile: sort-by-best-score, sort-matches-by-line, preserves nested_hits, empty input. * TestSemanticSearch_NestedMarkdownMerge updated for the new shape — still asserts the H1 absorbs the two H2 sub-sections (now visible as group.Matches[0].NestedHits). * CLI search_test fixture updated to new wire shape. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…dule Previous backoff streak retried indefinitely with delay capped at 30m, which meant a permanent GitHub outage produced ~48 polls per day per server. Now a streak gives up after MaxBackoffAttempts (default 5) and the next attempt is anchored to streakStart + Interval — i.e. the regular 6h grid resumes from the FIRST attempt of the failed streak, not from "now". Worst case progression with defaults (Interval=6h, Initial=1m, Max=30m): attempt #1 fails T = 0 attempt #2 fails (wait ~1m) T = +1m attempt #3 fails (wait ~2m) T = +3m attempt #4 fails (wait ~4m) T = +7m attempt #5 fails (wait ~8m) T = +15m → exhaust attempt #6 fires T = T0 + 6h (anchor) Successful poll mid-streak resets attempt counter and wait reverts to Interval. The "anchor from first attempt" choice keeps the long-term schedule on its grid even when a streak ate up to ~30m of it; an absurdly long streak (rare; needs Interval < BackoffMax × N) collapses the wait to 0 and fires immediately, which is the only sensible behaviour when we already overshot. - MaxBackoffAttempts surfaced on Config (default 5). - TestRunStreakExhaustedAnchorsToInterval covers the exhaust path: 3 fails → anchored sleep → #4 fires near streakStart+Interval. - Existing TestRunBacksOffOnFailureThenResets unchanged (recovers after 2 fails, well below the cap). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two related migration-safety fixes:
1. migrateSplitWorkspaceRepos used to commit the DB tx first and
then rename clone dirs — a kill -9 in that window left old
{workspace_repos.id} dirs orphaned and forced a re-clone. Now
the rename runs BEFORE the transaction and an error aborts the
migration (leaves workspace_repos in place so the next run
retries). Counters for renamed / skipped_missing_source /
skipped_target_exists / failed are logged on completion.
2. Add schema_migrations(version, name, applied_at). Open() reads
MAX(version) and skips already-applied migrations. Existing
prod DBs bootstrap by detecting which legacy tables are present.
3. Migration test suite expanded with subtests covering partial
rename, pre-existing target, missing source dir, duplicate
project_path rows, and idempotent re-runs.
Resolves Fix #3, #7, #14.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two related migration-safety fixes:
1. migrateSplitWorkspaceRepos used to commit the DB tx first and
then rename clone dirs — a kill -9 in that window left old
{workspace_repos.id} dirs orphaned and forced a re-clone. Now
the rename runs BEFORE the transaction and an error aborts the
migration (leaves workspace_repos in place so the next run
retries). Counters for renamed / skipped_missing_source /
skipped_target_exists / failed are logged on completion.
2. Add schema_migrations(version, name, applied_at). Open() reads
MAX(version) and skips already-applied migrations. Existing
prod DBs bootstrap by detecting which legacy tables are present.
3. Migration test suite expanded with subtests covering partial
rename, pre-existing target, missing source dir, duplicate
project_path rows, and idempotent re-runs.
Resolves Fix #3, #7, #14.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Bumps github.com/fsnotify/fsnotify from 1.7.0 to 1.9.0.
Release notes
Sourced from github.com/fsnotify/fsnotify's releases.
Changelog
Sourced from github.com/fsnotify/fsnotify's changelog.
... (truncated)
Commits
ae0e792Release 1.9.0644fbb6Add test to ensure Add()/Remove() works when not reading eventse7ec5f7Fix staticcheck in CId321760Update changelogdbe0717Remove AIX/AHFS from README2d897caSimplify inotify backend locking868a000Test gccgo in CI8f6d48bMove some shared code to a shared structe48b91aAdd timeout-minutes in GitHub actionsc9507a5Correctly mark pre-existing entries when watching a link to a dir on kqueueDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)