Sangeetha-Grantha

Metadata Value
Status Active
Version 1.3.0
Last Updated 2026-09-10
Author Codex
Document Type Evidence record

TRACK-064 Key-Collision Milestone Handover (2026-02-13)


[!NOTE] Historical evidence: results, counts, commands, and observations below belong to the original work described here. The editorial update date is not a new test or corpus verification. For present behavior, use current feature map.

Purpose

This handover captures the milestone reached in the current session:

Use this document with the follow-up review notes in TRACK-064 Code Review (2026-02-13) as the starting point for the next step.


Milestone Summary


Review-Driven Corrections (Applied to Next Plan)

Follow-up Validation (2026-02-13)


Hypothesis Validation Recap

User hypothesis

For same-composer krithis, uniqueness should generally hold with: (first 10 characters of krithi title, raga, tala).

Validated examples (requested)

For the three Abhayamba items:

Even where title prefix overlaps (abhayambik...), raga/tala disambiguates.

Outlier policy agreed in session


Code Changes Completed

1) CLI scenario + args for collision scans

File: tools/sangita-cli/src/commands/test.rs

2) A-series convergence flow hardened

File: tools/sangita-cli/src/commands/test.rs

3) Shared helpers for identity-key scan

File: tools/sangita-cli/src/commands/test.rs

4) CLI docs update

File: tools/sangita-cli/README.md


Verification of Code Health


Large-Set Run Executed (Current Session)

Command

cargo run --manifest-path /Users/seshadri/project/sangeetha-grantha/tools/sangita-cli/Cargo.toml -- \
  test extraction-e2e \
  --scenario dikshitar-key-collision \
  --csv-path /Users/seshadri/project/sangeetha-grantha/database/for_import/Dikshitar-Krithi-For-Import.csv \
  --max-rows 200 \
  --skip-migrations \
  --skip-extraction-start \
  --timeout-seconds 600

Final summary (from run output)

Collision groups detected

  1. abhayamban|kedragaua|adi
    • abhayAmbA nAyaka hari sAyaka
    • abhayAmbA nAyaka vara dAyaka
  2. brhadisvar|nagadhvani|adi
    • bRhadISvaraM bhaja
    • bRhadISvarIM bhaja
  3. govindaraj|surai|rupakam
    • gOvinda rAjAya
    • gOvinda rAjEna
  4. himagiriku|amrtavarshini|adi
    • hima giri kumAri ISa Priya
    • hima giri kumAri ISvari

Failed row


Operational Interpretation


  1. Re-run failed row(s) only for operational cleanup.
    • Optional targeted re-run if required for clean pass accounting.
  2. Run full-file collision scan (all Dikshitar rows).
    • Same command, remove --max-rows 200.
  3. Export/store collision report artifact for manual curation workflow.
    • Keep collision key + row list for UI/manual krithi variant handling.
  4. Decide strict policy for CI/regression:
    • Keep default non-blocking mode in dev.
    • Use --fail-on-collision in strict audit jobs only.
  5. Feed results into Phase 2 planning in TRACK-064: Unified Extraction Engine (UEE) Migration.
    • Use corrected metadata coverage numbers as baseline for heuristic-consolidation regression gates.

Useful Commands

Full-set run

cargo run --manifest-path /Users/seshadri/project/sangeetha-grantha/tools/sangita-cli/Cargo.toml -- \
  test extraction-e2e \
  --scenario dikshitar-key-collision \
  --csv-path /Users/seshadri/project/sangeetha-grantha/database/for_import/Dikshitar-Krithi-For-Import.csv \
  --skip-migrations \
  --skip-extraction-start \
  --timeout-seconds 600

Strict mode (optional)

cargo run --manifest-path /Users/seshadri/project/sangeetha-grantha/tools/sangita-cli/Cargo.toml -- \
  test extraction-e2e \
  --scenario dikshitar-key-collision \
  --csv-path /Users/seshadri/project/sangeetha-grantha/database/for_import/Dikshitar-Krithi-For-Import.csv \
  --skip-migrations \
  --skip-extraction-start \
  --timeout-seconds 600 \
  --fail-on-collision

Files Touched in This Session


Section index · Documentation home · Feature status