Commit graph

2252 commits

Author SHA1 Message Date
Mick Cooney
37efc888fc fix(r): flag an unreadable DESCRIPTION as truncated and tighten three R test assertions
An unreadable DESCRIPTION left RPackageConfig.truncated false, so a
qualifier naming the package it declares was classed external and its
call site dropped. The sibling hidesUndiscoveredPackage case already
treats an unreadable DESCRIPTION as unknown; do the same here and cover
it with a test.

Tighten three weak test assertions: the escaped-bracket export pattern
now asserts its exact match results, the S4 anchors test proves each
generic is defined exactly once, and the worker owner-absence test
fails on any defined ownerId, including an empty string.
2026-10-07 15:20:38 +01:00
Mick Cooney
3b478e4c46 fix(r): attach S4 slots to the Class argument instead of the first string argument
extractS4Fields and getRTopLevelPropertyOwnerName named the owner of a
setClass/setRefClass slot from the first string-valued argument, so
setClass(contains = "Base", Class = "A", representation(x = "numeric"))
attached slot x to Base. Select the owner with isRNamingArgument(arg, 'Class'),
the same choice the scope query and definition hook make.

Both owner paths share one helper so the field metadata and the ownerNameHint
agree.
2026-10-07 15:19:30 +01:00
Mick Cooney
a979b9d1ee docs: record the R provider guide in AGENTS.md 2026-10-07 13:03:17 +01:00
Mick Cooney
e8e49d4d58 Merge branch 'g1/r-language-support-rebased' into g1/rehearsal-merge 2026-10-07 10:40:07 +01:00
Mick Cooney
6446655d8e fix(r): drop wall-clock assertions from the export-pattern budget tests 2026-10-07 10:40:02 +01:00
Mick Cooney
257f9430dc Merge remote-tracking branch 'upstream/main' into g1/rehearsal-merge 2026-10-07 10:14:08 +01:00
Mick Cooney
80a316c96d Merge branch 'g1/r-language-support-rebased' into g1/rehearsal-merge 2026-10-07 10:13:53 +01:00
Mick Cooney
5a01db947f fix(r): type-check the R test files under the new test typecheck gate 2026-10-07 10:13:46 +01:00
dependabot[bot]
37d6117181
chore(deps)(deps): bump fast-copy from 4.0.3 to 4.1.2 in /gitnexus (#3510) 2026-10-07 10:54:18 +03:00
dependabot[bot]
ee61ae39a7
chore(deps)(deps-dev): bump @vitest/coverage-v8 in /gitnexus (#3507) 2026-10-07 08:39:03 +03:00
Christian C. Berclaz
672fc72f56
fix(dart): capture package metadata portably during repository scan (#3465)
Some checks failed
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Gitleaks / gitleaks (push) Waiting to run
Publish / Classify release event (push) Waiting to run
Publish / RC guard (marker + release-PR skip) (push) Blocked by required conditions
Publish / ci (push) Blocked by required conditions
Publish / Publish to npm (push) Blocked by required conditions
Publish / Build & Push RC Docker images (push) Blocked by required conditions
Scorecard / Scorecard analysis (push) Waiting to run
Trivy Image Scan / Trivy (gitnexus-cli) (push) Waiting to run
Trivy Image Scan / Trivy (gitnexus-web) (push) Waiting to run
Skill copy sync / shipped skills drift guard (push) Has been cancelled
2026-10-06 18:23:08 +03:00
Mick Cooney
084d4f158e Merge upstream/main into R language support 2026-10-06 14:45:53 +01:00
Gergő Magyar
dd096e690c
chore(deps): consolidate open dependabot updates (#3496) 2026-10-06 07:23:35 +00:00
Younes Beriane
047354c3f0
fix(community): run Leiden in a worker so its timeout can fire (#3478) 2026-10-06 09:40:21 +03:00
Gergő Magyar
df49f90889
fix(ci): require every test to execute across the CI matrix (#3479) 2026-10-06 07:34:17 +03:00
Gergő Magyar
e8a09d067b
fix(search): reject incomplete FTS repairs and verify worktree lookup (#3475)
Some checks are pending
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Gitleaks / gitleaks (push) Waiting to run
Publish / Classify release event (push) Waiting to run
Publish / RC guard (marker + release-PR skip) (push) Blocked by required conditions
Publish / ci (push) Blocked by required conditions
Publish / Publish to npm (push) Blocked by required conditions
Publish / Build & Push RC Docker images (push) Blocked by required conditions
Scorecard / Scorecard analysis (push) Waiting to run
Trivy Image Scan / Trivy (gitnexus-cli) (push) Waiting to run
Trivy Image Scan / Trivy (gitnexus-web) (push) Waiting to run
2026-10-05 13:19:10 +00:00
Gergő Magyar
526b6f249b
test(search): guard native lookup and Unicode FTS after COPY (#3477) 2026-10-05 12:49:07 +00:00
rgb-vgx
dbcfa63d40
fix(group): match Go framework imports exactly and follow bare-block group writes (#3473) 2026-10-05 13:14:03 +01:00
Parafee41
ced9660e77
fix(augment): recover symbols missed by FTS file ranking (#3422) 2026-10-05 08:27:59 +01:00
azizur100389
10947d4b52
fix(setup): preserve existing HTTP GitNexus MCP entries (#3460) 2026-10-05 06:19:46 +01:00
Gergő Magyar
4758df1c6c
fix(ci): fail on TypeScript errors in tests (#3472) 2026-10-05 04:13:27 +00:00
Gergő Magyar
c474a811ba
fix(test): align fixtures and mocks with current types (#3471) 2026-10-05 04:47:37 +01:00
rgb-vgx
504bff7102
fix(group): join gin/echo route-group prefixes and accept method-value handlers in Go HTTP providers (#3458)
Some checks are pending
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Gitleaks / gitleaks (push) Waiting to run
Publish / Classify release event (push) Waiting to run
Publish / RC guard (marker + release-PR skip) (push) Blocked by required conditions
Publish / ci (push) Blocked by required conditions
Publish / Publish to npm (push) Blocked by required conditions
Publish / Build & Push RC Docker images (push) Blocked by required conditions
Scorecard / Scorecard analysis (push) Waiting to run
Trivy Image Scan / Trivy (gitnexus-cli) (push) Waiting to run
Trivy Image Scan / Trivy (gitnexus-web) (push) Waiting to run
2026-10-04 12:55:41 +01:00
Gergő Magyar
1a5d88391c
fix(mcp): reject corrupt impact and context identities (#3466) 2026-10-04 10:52:01 +01:00
Gergő Magyar
16d7e9477b
fix(embeddings): reuse completed vectors after interrupted analyze (#3463) 2026-10-04 09:26:02 +01:00
Mick Cooney
95eee83e54 docs(r): correct the manifest-edit staleness note and describe the export-pattern work bounds 2026-10-04 02:22:03 +01:00
Mick Cooney
7ce3ea6230 fix(r): bound total exportPattern matching work per package-config load
Each exportPattern matcher has its own work cap, but nothing bounded how many
patterns a repository may carry, so a NAMESPACE with 200 pathological patterns
cost about 77 s of analysis and one with tens of thousands of cheap patterns
cost minutes and gigabytes.

loadRPackageConfig now creates one SharedWorkBudget per call and a sub-budget
per package. Every matcher draws on its package's sub-budget and on the load's:
state visits spent matching (100M per load, 30M per package) and NFA states kept
by compiled patterns (500k per load, 100k per package). A pattern that does not
fit the state allowance is refused before its NFA is fully built, and the first
refusal closes the allowance so later patterns are refused without being parsed.
Once the matching budget is spent, refineRExportStatus and the R import resolver
stop calling the matchers. Refused and cut-short patterns take the existing
drop-and-warn path (export nothing), with at most 50 named per package and one
summary line for the rest. A hostile package can therefore not starve the
packages after it. Budgets count work units, so the outcome is deterministic.
Benign monorepos spend a negligible fraction of every budget.
2026-10-04 02:06:38 +01:00
Mick Cooney
51ed2c2a33 docs(r): move the R provider guide to docs/languages/r-provider.md 2026-10-03 23:02:40 +01:00
Gergő Magyar
5f9f95f224
Merge pull request #3461 from azizur100389/codex/embedding-checkpoint-3456
Some checks are pending
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Gitleaks / gitleaks (push) Waiting to run
Publish / Classify release event (push) Waiting to run
Publish / RC guard (marker + release-PR skip) (push) Blocked by required conditions
Publish / ci (push) Blocked by required conditions
Publish / Publish to npm (push) Blocked by required conditions
Publish / Build & Push RC Docker images (push) Blocked by required conditions
Scorecard / Scorecard analysis (push) Waiting to run
Trivy Image Scan / Trivy (gitnexus-cli) (push) Waiting to run
Trivy Image Scan / Trivy (gitnexus-web) (push) Waiting to run
fix(embeddings): defer staged checkpoint count until publication
2026-10-03 18:22:21 +01:00
Gergő Magyar
649be2c482
Merge branch 'main' into codex/embedding-checkpoint-3456 2026-10-03 17:55:00 +01:00
Gergő Magyar
c51bad71fa
docs(search): explain model-specific vector cutoff tuning (U1) (#3462) 2026-10-03 15:22:34 +00:00
azizur100389
07b5c27045 fix(embeddings): defer staged checkpoint count until publication 2026-10-03 12:09:27 +01:00
Abhishek B R
a47cd17f27
fix(config): honor nested .gitignore files during repository walks (#3440) 2026-10-03 09:55:47 +00:00
articultur
d1971cf953
fix(communities): omit memberships for filtered singleton communities (#3447) 2026-10-03 08:25:35 +00:00
Ankit Verma
4f298d0ac0
fix(staleness): detect rollback with one Git query (#3445) 2026-10-03 07:42:26 +00:00
articultur
668fac7635
fix(search): report partially missing FTS indexes in query results (#3448) 2026-10-03 07:36:27 +01:00
Gergő Magyar
f99dde8aa3
fix(mcp): discover positional SDK tool registrations (#3450)
Some checks are pending
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Gitleaks / gitleaks (push) Waiting to run
Publish / Classify release event (push) Waiting to run
Publish / RC guard (marker + release-PR skip) (push) Blocked by required conditions
Publish / ci (push) Blocked by required conditions
Publish / Publish to npm (push) Blocked by required conditions
Publish / Build & Push RC Docker images (push) Blocked by required conditions
Scorecard / Scorecard analysis (push) Waiting to run
Trivy Image Scan / Trivy (gitnexus-cli) (push) Waiting to run
Trivy Image Scan / Trivy (gitnexus-web) (push) Waiting to run
2026-10-02 22:57:23 +00:00
azizur100389
a8f18f00b9
fix(swift): avoid false calls for injected closure properties (#3434) 2026-10-02 23:31:14 +01:00
dependabot[bot]
64fd67388f
chore(deps)(deps): bump fast-xml-parser in /gitnexus (#3454) 2026-10-02 22:47:30 +01:00
Gergő Magyar
dad3b8f6f2
fix(mcp): reject invalid symbol identities before graph reads (#3451) 2026-10-02 21:39:31 +01:00
Gergő Magyar
412446408d
fix(index): guard graph integrity and fail closed on incomplete risk (#3442) 2026-10-02 15:34:26 +01:00
Mick Cooney
684cdc12b2 fix(r): select the naming argument in the scope query's import and class declarations
The R scope query took the name of a setClass/setRefClass class and of a
source/library/require import from the call's first argument. A named first
argument was taken as the name (library(lib.loc = libO, pkgP) imported libO,
setClass(contains = "Base", Class = "A") declared Base), and a comment before
the first argument hid it (the import was lost, and a class declared after a
comment had no EXTENDS edge to VIRTUAL or to its base).

Capture every candidate argument and let the scope emitter keep only the one
that names the class or import: the argument spelled with the call's first
formal (Class, package, file), otherwise the first unnamed argument, with
comments and named arguments allowed before it. The selection is the one the
S4 definition captures already use, and reads each argument list once, so cost
stays linear in the argument count; a query-level prefix that skips leading
comments would be quadratic.

The parse-cache version bump already made for the unreleased S4 definition fix
covers the changed scope captures too, so no further bump is made.
2026-10-02 09:59:54 +01:00
Mick Cooney
1f1d0ff9aa fix(r): anchor S4/RefClass definition patterns to the first string argument
The setClass/setRefClass, setGeneric and setMethod definition patterns matched
any string-valued argument of the call, so every extra string minted a node:
contains = "VIRTUAL" a Class VIRTUAL, valueClass = "numeric" a Function numeric,
and the class in setMethod("show", "Foo", ...) a Method Foo (with a
HAS_METHOD Foo -> Foo edge).

Keep only the argument that names the definition, chosen by the R provider's
shouldSkipDefinitionCapture hook: the argument spelled with the call's first
formal in any position (Class for setClass and setRefClass, name for
setGeneric, f for setMethod), otherwise the first unnamed argument, which
comments and named arguments may precede. A named formal stops a later unnamed
string from also being taken.

The choice is made in code because a query-level prefix that skips leading
comments and named arguments is quadratic in the argument count on every call
in the file. The code reads each argument list once, so cost stays linear, and
a bounded-time test guards it. The slots/fields/representation pattern is keyed
on named arguments only and is unchanged. The EXTENDS edge to VIRTUAL never
depended on the spurious node: scope resolution mints the single placeholder
Class itself.

SCHEMA_BUMP is incremented because the definitions are parse-time captures
replayed from the warm cache. Characterisation tests that pinned the spurious
Method and HAS_METHOD edge are corrected.
2026-10-02 09:37:57 +01:00
dependabot[bot]
ce79caaf86
chore(deps): bump the uv group across 1 directory with 3 updates (#3443)
Some checks failed
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run
Gitleaks / gitleaks (push) Waiting to run
Publish / Classify release event (push) Waiting to run
Publish / RC guard (marker + release-PR skip) (push) Blocked by required conditions
Publish / ci (push) Blocked by required conditions
Publish / Publish to npm (push) Blocked by required conditions
Publish / Build & Push RC Docker images (push) Blocked by required conditions
Scorecard / Scorecard analysis (push) Waiting to run
Trivy Image Scan / Trivy (gitnexus-cli) (push) Waiting to run
Trivy Image Scan / Trivy (gitnexus-web) (push) Waiting to run
Devcontainer Smoke / Build devcontainer image (push) Has been cancelled
Devcontainer Smoke / Config-transform unit tests (push) Has been cancelled
Skill copy sync / shipped skills drift guard (push) Has been cancelled
2026-10-01 22:55:13 +03:00
Gergő Magyar
702eb9326a
chore(deps): consolidate pending dependency upgrades (#3441) 2026-10-01 19:16:12 +03:00
Mick Cooney
59c6d6e058 test: include scoped grammar packages in the npm prebuild coverage check
The npm-dependency cohort was selected with /^tree-sitter-/ on the full
package name, which silently dropped @eagleoutice/tree-sitter-r. Select by
package basename and assert the enumerated set so the filter cannot regress.
2026-10-01 13:37:58 +01:00
Mick Cooney
8dd2fe170c ci: add @eagleoutice/tree-sitter-r to the tree-sitter upgrade-readiness list
The readiness report and the --assert-current ABI gate never covered the R
grammar, whose latest release declares peer tree-sitter ^0.21.0 (a blocker
for the 0.25 target). Adding the row also needs three fixes for the scoped
package name: the pinned-version lookup matched only names starting with
"tree-sitter-", and the change-detection regex (workflow and test mirror)
could not capture a scoped row. Test counts updated; new tests cover the R
row, the pin, the gate, and mirror-versus-workflow drift.
2026-10-01 13:37:58 +01:00
Mick Cooney
a7ec43dbc6 refactor(r): remove five dead patterns from R_QUERIES
The S4/R5 contains= (single and c()), R6 inherit= (namespaced and bare)
and (comment) patterns capture @heritage*, @comment, which no code
reads: such a match has no @name and no @definition.*, so the worker
discards it. Inheritance edges come from the R scope query's
@reference.inherits.

Graph nodes, relationships, properties, resolution outcomes and the raw
worker output are byte-identical over the r-* fixtures and probe repos
before and after, so no re-analyse and no SCHEMA_BUMP are needed.

Also correct the R scope query header, which described the legacy table
as having proved the heritage shapes.
2026-10-01 13:37:58 +01:00
Mick Cooney
b03684cbde fix(r): scope a roxygen @param type to a formal of the documented function
The tag name was never checked against the function's formals and the type was
bound in the scope that contains the assignment, so a documented parameter
typed that name in every function of the file. The type is now bound per
formal, inside the function that owns it, and only for a formal of the
function the roxygen block documents.

Also pin the line-start anchor with a case that fails without it, and a tag
name that merely starts with `param`.
2026-10-01 13:37:58 +01:00
Mick Cooney
e6efc24278 test(r): cover each class kind for the roxygen prose false positive
Run the prose case against both an R6 and an S4 definition of both `Data` and
`Config`, so each class-definition form is exercised with each prose word.
2026-10-01 13:37:58 +01:00