mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-09-17 23:52:36 +00:00
* feat(group-surface): impact selector pass-through + degraded links + sync hygiene
- @group impact forwards target_uid/file_path/kind through service port
and cross-impact impactParams (was dead-wired: params accepted at MCP
boundary then dropped at validation).
- crossLinks with unresolved provider symbols carry degraded: true,
derived at the persistence boundary after merge/dedupe; sync reports
'degraded links: N' and per-repo extraction failures instead of
swallowing them; bridge write failures surface as sync warnings;
contracts.json passes through dedupeContracts.
- Absolute-URL branch restores %7B/%7D around {param} after URL parsing.
- tests: consumer matrix + wildcard folding + degraded pins (261 new);
SCHEMA_BUMP pin 47 -> 48 (wildcardImports cache shape); sync.ts NUL
byte rewritten as text escape (no longer binary to git).
Co-Authored-By: Claude <noreply@anthropic.com>
* fix(group): impact selector pass-through, degraded links, sync failure hygiene
- @group impact forwards target_uid/file_path/kind through the service
port into cross-impact impactParams. These were accepted at the MCP
boundary and then dropped in validation — a dead wire: disambiguating
an ambiguous impact target never actually reached the per-member impact.
- Cross-links whose provider endpoint never resolves to a graph symbol are
marked degraded: true at the single persistence boundary (post
merge/dedupe, before re-export), counted as SyncResult.degradedLinks,
and surfaced by the sync summary ('degraded links: N') — the remedy
(re-analyze the provider repo) is documented on the field.
- Sync failure hygiene: a repo whose per-repo extraction throws records
its reason in SyncResult.failedRepos (still lands in missingRepos, so
downstream semantics are unchanged) instead of the old silent swallow
that could persist half a repo's contracts; operator warnings
accumulate in SyncResult.warnings.
Tests: cross-impact selector threading, degraded-link marking, per-repo
failure reporting.
* style: prettier
* fix(group): make degraded links, sync warnings and UID-only impact actually work
The three fixes this branch claims were wired at the type and payload level
but never at the boundary that produces the values:
- `degraded` was only ever cleared by the exported `dedupeCrossLinks`, which
the sync path does not use, so `degradedLinks` was always 0. Derivation now
lives in one exported `applyDegradedFlag` that both the sync finalize and
the post-merge re-derivation call.
- The bridge-write catch logged an operator warning and dropped it, leaving
`warnings` permanently `[]`.
- `@group impact` rejected a UID-only call before it parsed `target_uid`, so
the documented "re-call with target_uid" disambiguation loop was
unreachable in group mode even though the selectors were forwarded.
- `failedRepos[].repo` reported the registry display name while the repo
landed in `unreadableRepos` under its group path, so the two lists could
not be joined; the JSDoc also pointed at the wrong list.
- Restored the truncated `READ THE RESULT:` heading in the group_sync tool
description and documented degradedLinks / failedRepos / warnings.
Tests pin each value at the boundary that produces it, including the exact
group_sync wire shape, which previously omitted all three new fields.
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: l.cx <l.cx@winning.com.cn>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: ChunxueLi <mecoloud@users.noreply.gitee.com>
Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
|
||
|---|---|---|
| .. | ||
| bridge-db-edge.test.ts | ||
| bridge-db.test.ts | ||
| bridge-meta-swap-window.test.ts | ||
| bridge-pairing-precedes-open.test.ts | ||
| bridge-storage-tempfile.test.ts | ||
| config-parser.test.ts | ||
| cross-impact-fanout-cap.test.ts | ||
| cross-impact-incomplete-bridge.test.ts | ||
| cross-impact-phase2-timeout.test.ts | ||
| cross-impact.test.ts | ||
| cross-trace-incomplete-bridge.test.ts | ||
| cross-trace.test.ts | ||
| data-route-table.test.ts | ||
| elixir-workspace-extractor.test.ts | ||
| fastapi-composed-provider.test.ts | ||
| fixtures.ts | ||
| fs-utils.test.ts | ||
| go-workspace-extractor.test.ts | ||
| graphql-extractor.test.ts | ||
| group-path-utils.test.ts | ||
| group-service-group-mode.test.ts | ||
| group-tools.test.ts | ||
| grpc-extractor.test.ts | ||
| http-consumer-signals.test.ts | ||
| http-route-extractor.test.ts | ||
| http-route-graph-method.test.ts | ||
| http-route-multi-verb.test.ts | ||
| impact-by-uid.test.ts | ||
| include-extractor.test.ts | ||
| insecure-tempfile.test.ts | ||
| java-const-route-parity.test.ts | ||
| java-workspace-extractor.test.ts | ||
| js-http-consumer-resolution.test.ts | ||
| kotlin-const-route-fold.test.ts | ||
| manifest-extractor.test.ts | ||
| manifest-label-drift.test.ts | ||
| manifest-synthetic-impact.test.ts | ||
| matching.test.ts | ||
| nest-route-parity.test.ts | ||
| node-workspace-extractor.test.ts | ||
| php-guzzle-request-ctor.test.ts | ||
| python-workspace-extractor.test.ts | ||
| registry-suppressed-stages.test.ts | ||
| registry-unreadable-repos.test.ts | ||
| resolve-bridge-neighbors.test.ts | ||
| rust-workspace-extractor.test.ts | ||
| service-boundary-detector.test.ts | ||
| service-group-sync-payload.test.ts | ||
| service.test.ts | ||
| spring-route-parity.test.ts | ||
| storage.test.ts | ||
| sync-exact-only.test.ts | ||
| sync-partial-extraction.test.ts | ||
| sync-registry-identity.test.ts | ||
| sync-unreadable-repos.test.ts | ||
| sync-windowed-resolution.test.ts | ||
| sync.test.ts | ||
| thrift-extractor.test.ts | ||
| topic-extractor.test.ts | ||
| types.test.ts | ||