Skip to content

Anchor config globs at their config file - #1363

Merged
thekevinbot merged 14 commits into
mainfrom
claude/1232-config-anchor
Oct 6, 2026
Merged

thekevinbot merged 14 commits into
mainfrom
claude/1232-config-anchor

Conversation

@thekevinbot

@thekevinbot thekevinbot commented Oct 6, 2026 •

Copy link
Copy Markdown
Collaborator

Part of #1232. Step 3 of 4. Stacked on #1360 (base claude/1232-multi-watch); PR 4 stacks on this.

A config [[table]] glob anchors at its config file's directory. A /, ~/ or ../ glob uses the path-table prefix grammar and anchors at its literal prefix. {root} is the table's anchor; a config's ignore applies to its own tables only (not path-tables, not other configs). The index root is unchanged. Flips the #540 tests that asserted the old rule; the fixture plugin's fragment now names its data directory.

Red commit: ecc992a, CI run 37403920532 (config_anchor: relative glob returned the index root's decoy.txt, absolute glob returned [], ignore returned []).

Changelog / Migrations

  • Changelog fragment added under packages/{rust,python,ts}/changelog.d/
  • Migration fragment with the same slug added under packages/{rust,python,ts}/migrations.d/

E2E Verification

  • Python SDK e2e: pass after merging main. Impacted files only (every e2e file that loads a config, since config globs now anchor at the config's directory): fanout, capture_collision, declared_table_name, extension_package, plugin_discovery, use_case_notebook, on_file_query, use_case_transcripts, plugin_extension_discovery, use_case_join, use_case_dossier, sigint_interrupt, query_contract -- 32 passed. Command: testing-conventions e2e attest 'uv run python -m pytest tests/e2e/<impacted files> -x -q'
  • TypeScript: just e2e-attest-ts: pass
  • Rust: cargo test -p dirsql --features cli -- --test-threads=1 with ulimit -n 65536: pass; Python binding tests 137 passed; TS pnpm test:binding 120 passed
  • Receipts packages/ts/e2e-attestations/claude-1232-config-anchor.json and packages/python/e2e-attestations/claude-1232-config-anchor.json written

A config table's glob resolves against the directory of the config that wrote
it, with the path-table prefix grammar for absolute, ~ and .. globs. {root} is
the table's anchor, and a config's ignore applies to its own tables.
skip-changelog: docstring only, covered by the SDK reference
Base automatically changed from claude/1232-multi-watch to main October 6, 2026 16:37
@thekevinbot
thekevinbot enabled auto-merge October 6, 2026 16:38
@thekevinbot
thekevinbot merged commit 5e7abd2 into main Oct 6, 2026
84 checks passed
@thekevinbot
thekevinbot deleted the claude/1232-config-anchor branch October 6, 2026 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant