Commit Graph
4481 Commits
Author SHA1 Message Date
Martin Vogel 282f0e6412 fix(ci): post the PR acknowledgement without its hidden maintainer note
The template opens with an HTML-comment note for maintainers, and the
workflow posted the file verbatim, so every acknowledgement comment
carried text a contributor cannot see but a tool reads. Our own PR
screening holds every comment with such hidden text, which parked nine
contributor PRs on a note we wrote ourselves.

Strip HTML comments (an unterminated one runs to the end, as GitHub
renders it) into a temporary body file and post that. The posted text is
byte-identical to what rendered before. A template whose only content is
the note now counts as blank, which is the documented off switch.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-25 18:40:50 +01:00
Martin Vogel 869fc2b54c Merge pull request #2757 from DeusData/codex/codeql-main-alerts
fix: preserve literal input and static asset boundaries
2026-10-25 18:39:47 +01:00
Martin Vogel 10ab613de3 Merge pull request #1766 from Yyunozor/fix/1355-external-import-shadow
fix(registry): stop external package imports binding to project homonyms
2026-10-22 02:54:58 +02:00
Martin Vogel a3d266d705 Merge pull request #2739 from DeusData/codex/dependabot-alerts-41-44
fix(deps): patch Vite and certifi security advisories
2026-10-22 02:36:35 +02:00
Martin Vogel ff28841eed Merge pull request #2753 from DeusData/codex/fix-ui-reader-focus-loading
fix(ui): hide stale focus warning while arranging graph
2026-10-22 02:11:50 +02:00
Martin Vogel e30dd59fde fix: match architecture handtest identifiers literally
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-22 00:51:41 +02:00
Martin Vogel 8c4747666c fix: preserve literal input and static asset boundaries
Escape project names before building hand-test patterns, compare transport
identifiers as literal tokens, preserve boundaries when extracting prose
and XML facts, and require canonical containment for smoke static assets.
Add regression coverage for metacharacters, dollar identifiers, markup
joining, traversal, symlinks, and malformed URL encoding.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 23:12:06 +02:00
Martin Vogel f309fd8425 Merge shared CI baseline fixes into dependency updates
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 22:18:02 +02:00
Martin Vogel 01368e65a2 Merge shared CI baseline fixes into external import shadow fix
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 22:17:52 +02:00
Martin Vogel 884bf9917d Merge main into external import shadow fix
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 22:17:52 +02:00
Martin Vogel 1a0afcdc05 Merge main after shared CI baseline repair
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 22:01:53 +02:00
Martin Vogel 72c36044a4 Merge pull request #2732 from DeusData/fix/language-count-surfaces-after-2729
fix(ci): repair language count and Windows CodeQL retrace contracts
2026-10-21 22:00:49 +02:00
Martin Vogel 72e8be9089 Merge commit '3457b21b0a3d75960c07ed3ec666a9e684985ef9' into HEAD
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 20:05:10 +02:00
Martin Vogel 7890796662 fix(ci): normalize Windows paths in CodeQL retracing
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 20:04:54 +02:00
Martin Vogel 0799f74afa fix(ui): hide stale focus warning while arranging graph
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 20:03:07 +02:00
Martin Vogel 3457b21b0a Merge pull request #2502 from lorenzozanee/fix/query-graph-where-not-target
fix(cypher): early WHERE pass waits for function-argument aliases; #2250 regression tests
2026-10-21 03:44:39 +02:00
Martin Vogel 37e535ebea Merge pull request #2457 from Zhuoxi2000/fix-haskell-infix-def-name
fix(haskell): name infix-form definitions after the operator
2026-10-21 03:30:55 +02:00
Martin Vogel 402cc818f7 Merge pull request #2639 from H4M4CHi-ttr/fix/windows-utf8-watcher-paths
Thank you for the Windows path fix and the careful pre-fix investigation. This uses the existing UTF-8 filesystem helpers so valid repository roots and cached graph databases are not mistaken for missing paths.

Contributor history and DCO are preserved.
2026-10-21 02:03:00 +02:00
Martin Vogel 49130a3d8f fix(deps): patch Vite and certifi security advisories
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 00:48:24 +02:00
Martin Vogel d2e00366c0 test(contract): drop the language-count surfaces #2729 stopped claiming
The #2729 messaging refresh removed the language count from docs/index.html, docs/llms.txt, pkg/npm/README.md, scripts/package-release.sh and server.json, so Step 0w (tests/test_language_count_contract.sh) failed on main for every PR: each of those files was still registered as a surface but stated no count. They leave SURFACES; README.md and the Chocolatey nuspec still carry the count and stay gated. Section 4 still fails if any dropped file states a count again without being registered (checked by re-adding one).

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 00:33:40 +02:00
Martin Vogel d5bb016a37 Break-glass merge PR #2734 2026-10-21 00:30:54 +02:00
Martin Vogel 6a61538f97 fix(ci): retrace changed vendor families and wrappers
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-21 00:07:51 +02:00
Martin Vogel a22c89bd9c Merge pull request #2735: improve Lens demo clarity and correct README claims
Thank you to the community for the feedback that helped improve the README and website demonstrations.
2026-10-20 23:27:11 +02:00
Martin Vogel 2f10540b3a ci(codeql): make codeql-retrace-vendored.sh executable
codeql.yml runs it directly; the file was added without the exec bit.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-20 23:09:26 +02:00
Martin Vogel 453b21e680 ci(codeql): PR scan per language inside PR CI, full scan on main
Bring CodeQL back to pull requests as jobs of PR CI itself (needed by
ci-ok, no polling), narrowed to first-party code, while push to main,
the weekly run, the dry run and the release keep the full scan.

- codeql.yml: one leg per language (c-cpp, javascript-typescript,
  python, actions), scope in .github/codeql/codeql-config.yml. The full
  scan traces the whole build, vendored C included. The PR scan
  (light: true) analyses each selected language's whole first-party
  scope; c-cpp compiles the third-party objects before tracing
  (scripts/build.sh --vendored-only) and then traces the first-party
  build plus the vendored files the PR changes (--reuse-vendored
  --retrace-from, make -W). Diff-informed analysis (codeql-action
  v4.38.1, forced on for PR calls) only restricts reported alerts.
  The alert check moves into each leg and reads the analysed ref.
  Push and PR runs cancel superseded runs per language; dispatched
  runs never cancel. Compiler cache off so every compile is traced.
- pr.yml: a codeql job runs the legs of the selected codeql-* lanes;
  ci-ok needs it.
- select-lanes.sh: codeql-cpp/-js/-py/-actions lanes, selected by a
  change in their scope (any C/C++ incl. vendored; JS/TS, Python and
  workflows inside the config's paths minus paths-ignore) and by every
  full run (undeterminable diff, workflows, build, CodeQL machinery).
  --codeql-scope LANGUAGE prints a list's in-scope paths.
- codeql-retrace-vendored.sh: the vendored C files a PR changes (empty,
  never narrowing, when the diff cannot be determined).
- Makefile.cbm: cbm-third-party builds the vendored prod objects only.
- tests: the gate contract pins the new layout; the selector contract
  pins that a C change always selects the C scan, an undeterminable
  diff selects every language, and a vendored-only change retraces
  exactly the changed vendored files. Selector fixtures, ci-ok's job
  map, the replay's codeql-action failures (lane codeql-cpp) and the
  interface probes follow.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-20 23:09:09 +02:00
Martin Vogel 13c38feeff docs: refresh Lens recordings and correct README claims
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-20 22:39:10 +02:00
Martin Vogel 5afdfcaac9 ci(codeql): run CodeQL on main, dry run and release, not per PR
CodeQL ran on every pull_request push, and PR CI's security / codeql-gate
job polled up to 150 min for that run before ci-ok could pass. With ~30 PRs
pushed at once, the gate jobs held runners while the CodeQL runs they waited
for queued behind them, and PR CI starved for hours.

- codeql.yml: triggers are push to main, a weekly schedule, workflow_call
  and workflow_dispatch; pull_request is gone. The open-alert check moves
  here, unchanged and still fail-closed, as the `alerts` job (needs
  analyze), so every main push and every weekly run fails while any
  code-scanning alert is open. Push runs keep cancel-in-progress; called and
  scheduled runs get a group of their own. The analysis key is pinned to the
  push configuration so dry-run/release uploads do not open configurations
  of their own on main.
- _security.yml: codeql-gate removed; callers grant contents: read only.
- dry-run.yml, release.yml: a `codeql` job calls codeql.yml on the
  dispatched commit; release verify needs it and requires success.
- select-lanes.sh, require-all-green.sh: the codeql-gate lane is gone from
  the selector universe and from ci-ok's job map; no other lane changes.
- tests: the fail-closed contract follows the check to codeql.yml and now
  also pins the triggers, the derived callers' grants and release verify;
  lane fixtures drop codeql-gate.
- SECURITY.md, MAINTAINERS.md: say where CodeQL runs now.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-20 22:37:22 +02:00
Martin Vogel 4cf44147e6 Merge pull request #2729: sharpen MCP positioning and refresh website discovery
Thank you to the community for the feedback that helped improve the MCP presentation and website.
2026-10-20 20:25:10 +02:00
Martin Vogel 137996c43d docs: integrate community controls into the website navigation
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-20 20:12:04 +02:00
Martin Vogel 1d2c9bcf89 docs: place community badges in the website header
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-20 20:05:19 +02:00
Martin Vogel e81b6599a8 docs: center the MCP server while keeping Lens visuals up front
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-20 20:02:47 +02:00
Martin Vogel 912dae61c9 docs: add Lens walkthroughs and restore GitHub star badge
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-20 19:57:57 +02:00
Martin Vogel e77b494b3e docs: improve site discovery and invite the Discord community
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-20 19:53:16 +02:00
Martin Vogel fceb25d811 Merge pull request #2579 from lorenzozanee/fix/tsx-arrow-jsx-calls
fix(ts-lsp): resolve JSX calls from top-level arrow components
2026-10-20 19:39:38 +02:00
Martin Vogel 424ab76cb5 Merge pull request #2595 from lorenzozanee/fix/relative-non-code-imports
fix(pipeline): resolve parent-relative Astro and CSS imports
2026-10-20 19:39:32 +02:00
Martin Vogel 8fafd8aa2a Merge pull request #2568 from Totopo27/fix/gh-2563-extra-extensions-jinja2
fix(discover): map jinja and jinja2 in userconfig language table
2026-10-20 19:39:26 +02:00
Martin Vogel 94f952d8d6 Merge pull request #2599 from pcristin/fix/windows-local-transition-cleanup
fix(daemon): wait out Windows local teardown contention
2026-10-20 19:39:21 +02:00
Martin Vogel 205343e8db Merge pull request #2694 from woodsonl/fix/opencode-augment-timeout
fix(cli): bound emitted OpenCode augment() with SIGKILL timeout and stdin guard
2026-10-20 19:39:16 +02:00
Martin Vogel 8c7b3bd76e Merge pull request #1786 from umi008/fix/issue-1718-approve-sensitive-separators
fix(workspace): treat '/' and '\' as the same separator in root matching (#1718)
2026-10-20 19:39:11 +02:00
Martin Vogel 9c89041a56 Merge pull request #2556 from mvanhorn/fix/2433-server-discover-probe-log
fix(mcp): log the server/discover connect probe as info, not an error
2026-10-20 19:39:06 +02:00
Martin Vogel c99fe11c36 Merge pull request #2512 from lorenzozanee/fix/issue-2481-tsx-ampersand
test(parse): cover the reported TSX ampersand fragment (#2481)
2026-10-20 19:39:01 +02:00
Martin Vogel 27dea228f0 Merge pull request #2720 from DeusData/carry/1803-symlink-bounded-count
fix(discover): a symlink must not abort a bounded count (carries #1803, fixes #2701)
2026-10-20 19:38:55 +02:00
Martin Vogel 172c36191d Merge pull request #2623 from dianshu/fix/ts-bounded-lookup-main-20261013
fix(ts): bound recursive member and method lookup
2026-10-20 19:38:38 +02:00
Martin Vogel 9a2d1d60c3 Merge pull request #2710 from wazum/fix/606-php-unindexed-receiver
fix(php): drop the name guess when the receiver's class is not indexed
2026-10-20 19:34:05 +02:00
Martin Vogel 3fa75481dc Merge pull request #2726: refresh project messaging and CBM Lens website 2026-10-20 19:25:48 +02:00
Martin Vogel 954350d590 Merge origin/main into fix-haskell-infix-def-name
Maintainer refresh of #2457 (Haskell infix-form definition names,
#2440) onto main a2227157. The branch point 0f52d30c was 1061 commits
behind main.

No textual conflicts. No semantic conflicts:

- resolve_haskell_func_name is unchanged on main since the branch
  point, so the new infix-head branch still sits in front of the
  first-child fallback it replaces.

- cbm_func_name_node_text gained an early return for C keywords on
  main (44efa628). It applies to C-family languages only; the new
  Haskell operator branch is independent of it.

- The new test keeps its place beside haskell_function in the
  extraction suite.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-20 19:25:31 +02:00
Martin Vogelandlorenzozanee 6d2d30c3ea fix(cypher): the early WHERE pass waits for every alias a condition reads
eval_condition_partial (from #2253) answers UNKNOWN for a condition whose
alias is not bound yet, but it only looked at c->variable. A function
condition is filed under its first argument's alias, so in

    MATCH (a)-[:CALLS]->(b) WHERE coalesce(a.no_such_prop, b.name) = 'x'

the seed row saw a bound a, read coalesce(NULL, <unbound b>) as a
definite mismatch and pruned every row before CALLS expansion: zero rows,
while the same predicate after WITH returned the right ones.

Check every function argument's alias as well, the way this branch's
original fix did (condition_bindings_available), inside main's
three-valued leaf.

RED before: cypher_exec_where_func_arg_on_unbound_target, row_count 0,
expected 1. GREEN after; cypher suite 237 passed.

Co-authored-by: lorenzozanee <wyz0707@proton.me>
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-20 19:23:17 +02:00
Martin Vogel 146daa976e Merge origin/main into fix/query-graph-where-not-target
Conflict in tests/test_cypher.c: both sides added WHERE NOT regression
tests right after cypher_exec_where_not. Kept both sets, main's four
#2253 tests first, then this branch's four, with their RUN_TEST lines in
the same order. src/cypher/cypher.c merged cleanly to main's version.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-20 19:23:16 +02:00
Martin Vogel 43a7e59202 revert(cypher): drop the early-WHERE deferral that #2253 superseded
The early WHERE pass in execute_single runs on seed rows where only the
first alias is bound, so a NOT on the target node or the relationship
pruned every row (#2250). This branch fixed that by skipping the early
pass until every alias the WHERE reads was bound.

While it waited for review, #2253 (8ab555ee) landed the same fix on
main as a three-valued early pass: an unbound alias is UNKNOWN, NOT
keeps it UNKNOWN, and only a definite FALSE prunes. This branch's
regression tests pass on main's production code unchanged, so restore
src/cypher/cypher.c to the branch's base and keep the tests; the merge
of main that follows takes main's implementation.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-20 19:23:03 +02:00
Martin Vogel dd357a7c97 docs: refresh project messaging and Lens website
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-10-20 19:08:27 +02:00