Skip to content

fix(drift): treat pipe-alternation shorthand as not a path - #221

Closed
dyk1454683243-sudo wants to merge 1 commit into
mex-memory:mainfrom
dyk1454683243-sudo:cursor/fix-alternation-shorthand-not-path-1ba9
Closed

dyk1454683243-sudo wants to merge 1 commit into
mex-memory:mainfrom
dyk1454683243-sudo:cursor/fix-alternation-shorthand-not-path-1ba9

Conversation

@dyk1454683243-sudo

@dyk1454683243-sudo dyk1454683243-sudo commented Sep 19, 2026 •

Copy link
Copy Markdown

What

Treat pipe-alternation shorthand such as `tests/grounding|traversal|edges|store.test.ts` as not a filesystem path, so it never becomes a path claim or MISSING_PATH.

isNotAPath already dropped globs with */? but not |. A token with | separating path segments or basenames is prose shorthand, not a file. Real paths without pipes stay claims: a missing tests/store.test.ts is still MISSING_PATH.

No fancy parser — the issue token is a single inline-code string containing |.

Why

Addresses #202 (bullet 4 only).

Do not treat this as Fixes #202 or Closes #202 — that would auto-close the whole mega-issue.

Remaining #202 bullets stay open:

  1. Symbol notation (src/auth/login.validateToken) — owned by fix(drift): treat qualified-name symbol notation as not a path #220
  2. Compound extensions (.d.ts) — owned by fix(drift): treat compound extensions like .d.ts as not-paths #216
  3. Hypothetical examples (./x, x.ts, x/index.ts) — owned by fix(drift): treat resolution stubs like ./x as not-paths #222
  4. Scoped-package resolve (@scope/pkg/package.json vs bare specifier) — owned by fix(drift): resolve scoped packages by bare specifier #217
  5. gitignore trailing-slash directory exemption — owned by fix(drift): honor trailing-slash gitignore rules for absent paths #218

Type of change

  • Bug fix
  • New feature
  • Refactor
  • Docs
  • CI/Tooling

How to test

  1. npx vitest run src/drift
  2. Confirm markdown that cites `tests/grounding|traversal|edges|store.test.ts` produces zero path claims and zero MISSING_PATH for that token.
  3. Confirm a real missing file such as tests/store.test.ts is still reported as MISSING_PATH.
  4. Confirm existing MISSING_PATH false positives: negation only heading-scoped, non-path tokens treated as paths, dot-dir glob blind spot #143 cases stay green.
  5. npm run typecheck

Checklist

  • Focused drift tests pass (npx vitest run src/drift — 11 passed, 1 skipped #201 version-shaped case left untouched)
  • Typecheck passes (npm run typecheck)
  • Tests pass (npm test) — full suite is not the gate for this one-filter change
  • No breaking changes (or documented below)
  • Tested locally with a real project

Code-graph changes

  • This PR targets main
  • A linked issue agrees on the bounded extractor/resolver scope
  • The change follows the frozen LanguageExtractor or FrameworkResolver interface
  • A focused fixture and assertions for the expected node/edge shape are included
  • Any new grammar WASM, extension mapping, extractor, or resolver is registered
  • No graph identity, reconciliation, schema, or drift-semantics changes are included, or a core / discuss-first issue is linked above

This is a drift claim-extraction filter only. It does not change graph identity, extractors, or the other #202 bullets. Issue #202 stays open.

isNotAPath already dropped globs with * / ? but still turned
tests/grounding|traversal|edges|store.test.ts into a MISSING_PATH
claim. Tokens with | are prose shorthand, not filesystem paths.

Co-authored-by: David <dyk1454683243-sudo@users.noreply.github.com>
@dyk1454683243-sudo

Copy link
Copy Markdown
Author

Withdrawing this PR while I clean up a high-volume open-PR backlog. Sorry for the noise — happy to come back later with a focused change if useful.

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.

2 participants