4.3 KiB
id, type, title, domain, repo, status, owner, topic_slug, planning_priority, planning_order, created, updated, state_hub_workstream_id
| id | type | title | domain | repo | status | owner | topic_slug | planning_priority | planning_order | created | updated | state_hub_workstream_id |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RAIL-FAB-WP-0013 | workplan | Path Scoped Duplicate Identity | railiance | railiance-fabric | finished | codex | railiance | high | 13 | 2026-05-20 | 2026-05-20 | bf80900b-606c-442c-aa15-d6272d73a8d6 |
RAIL-FAB-WP-0013 - Path Scoped Duplicate Identity
Goal
Refine discovery reconciliation so path-scoped nodes, starting with Lockfile
candidates, are not marked as duplicate entities solely because they share the
same display label.
This unblocks broad local-repo rollout by making rescan review output point to
real identity concerns instead of expected repeated files such as uv.lock and
package-lock.json across different checkouts.
Background
RAIL-FAB-WP-0012 ingested a controlled three-repo baseline into the local
Fabric registry. The only review-required repo was repo-scoping; all seven
conflicted candidates were Lockfile nodes with labels uv.lock or
package-lock.json under distinct var/checkouts/... paths.
The current duplicate detector compares node kind plus normalized label/alias. That is useful for semantic declaration nodes, but too broad for file-backed path-scoped evidence.
Design Principles
- Keep semantic duplicate detection intact for declaration-like nodes.
- For path-scoped node kinds, require matching source path identity before treating same-label nodes as possible duplicates.
- Preserve conservative behavior when source path evidence is missing.
- Add a regression test that mirrors the
repo-scopingfalse-positive shape. - Rerun the controlled baseline before recommending broad rollout.
Tasks
T01 - Add Path-Scoped Reconciliation Coverage
id: RAIL-FAB-WP-0013-T01
status: done
priority: high
state_hub_task_id: "8d9cb1c2-77f7-45da-b942-a8d68454477a"
Add tests proving that same-label Lockfile nodes at different source paths do
not raise possible_duplicate_node, while same-label semantic nodes still do.
T02 - Implement Path-Aware Duplicate Detection
id: RAIL-FAB-WP-0013-T02
status: done
priority: high
state_hub_task_id: "7d4d439d-4f7f-4bdd-bc5f-b02524a10684"
Update reconciliation duplicate detection so path-scoped node kinds compare source anchors before emitting duplicate conflicts.
T03 - Verify Controlled Rescan
id: RAIL-FAB-WP-0013-T03
status: done
priority: high
state_hub_task_id: "0d6cad1d-16f8-4ac7-b8d3-b62a2f8e4549"
Rerun the three-repo controlled rescan against the local registry and confirm
that repo-scoping no longer reports the seven lockfile duplicate conflicts.
Verification result:
- Command:
registry scan-manifest registry/local-repos.yaml --repo-slug repo-scoping --repo-slug llm-connect --repo-slug railiance-fabric --previous-from-registry --ingest --no-lock. - Report:
registry/.fabric-discovery/reports/2026-05-20t214250z-deterministic.rescan-report.json. - Result: 3 scanned, 1 unchanged, 2 changed, 0 retired, 0 conflicted, 0 review required.
repo-scopingsnapshot5still reports 7 changed lockfile candidates, but none are conflicted; the previous falsepossible_duplicate_nodewarnings are gone.registry rescan-status --review-only --jsonshows 0 review-required repos.
T04 - Rollout Recommendation
id: RAIL-FAB-WP-0013-T04
status: done
priority: medium
state_hub_task_id: "4be31147-b060-4b47-9589-8d3d8024879d"
Record whether broad all-local-repo baseline ingestion is ready after the identity refinement, or whether another targeted blocker remains.
Recommendation:
- Broad all-local-repo baseline ingestion is ready to attempt as an ingest-only operational run.
- Keep
--previous-from-registry,--ingest, and no--acceptfor the broad pass; reviewregistry rescan-status --review-onlybefore any projection. - Use safe projection only for clean repos with accepted repo-declaration candidates. Do not project candidate-only repositories until their discoveries are reviewed or explicitly accepted.
Close Criteria
- Unit tests cover path-scoped duplicate identity.
- Reconciliation keeps semantic duplicate warnings intact.
- Controlled rescan no longer flags distinct lockfiles as duplicates.
- State Hub and this workplan capture the updated rollout recommendation.