| Metadata | Value |
|---|---|
| Status | Active |
| Version | 1.3.0 |
| Last Updated | 2026-09-10 |
| Author | Codex |
| Document Type | Evidence record |
[!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.
This handover captures the milestone reached in the current session:
(first 10 chars of krithi, raga, tala) identity key behavior.--max-rows 200) with concrete collision outcomes.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.
--fail-on-collision).CanonicalExtraction schema:
raga scalar accessor is incorrect for canonical payloads.raw_extraction::jsonb->'ragas'->0->>'name'.metadataMissingRows=4 in the 200-row run is likely inflated by this accessor mismatch.raw_extraction::jsonb->'ragas'->0->>'name').total_rows=200keyed_rows=200metadata_missing_rows=0For same-composer krithis, uniqueness should generally hold with:
(first 10 characters of krithi title, raga, tala).
For the three Abhayamba items:
abhayAmbAyAM bhaktiM -> sahAna, tripuTaabhayAmbikAyAH anyaM -> kEdAra gauLa, jhampaabhayAmbikAyai aSva -> yadukula kAmbhOji, rUpakamEven where title prefix overlaps (abhayambik...), raga/tala disambiguates.
parimaLa ranga nAthaM1/2 treated as accepted outlier/manual variant handling.File: tools/sangita-cli/src/commands/test.rs
dikshitar-key-collision.--title-prefix--max-rows--fail-on-collisionFile: tools/sangita-cli/src/commands/test.rs
--fail-on-collision.File: tools/sangita-cli/src/commands/test.rs
raga, tala) from raw_extraction with DB fallback.
ragas[] payload.File: tools/sangita-cli/README.md
dikshitar-key-collision.cargo fmt --manifest-path tools/sangita-cli/Cargo.toml -> passed.cargo check --manifest-path tools/sangita-cli/Cargo.toml -> passed.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
totalRows=200successfulRows=199failedRows=1keyedRows=195metadataMissingRows=4collisionGroups=4collisionRows=8abhayamban|kedragaua|adi
abhayAmbA nAyaka hari sAyakaabhayAmbA nAyaka vara dAyakabrhadisvar|nagadhvani|adi
bRhadISvaraM bhajabRhadISvarIM bhajagovindaraj|surai|rupakam
gOvinda rAjAyagOvinda rAjEnahimagiriku|amrtavarshini|adi
hima giri kumAri ISa Priyahima giri kumAri ISvarirow 38 (bhArati, csvRaga=dEva manOhari)httpx.ConnectError: [Errno 111] Connection refused).--max-rows 200.--fail-on-collision in strict audit jobs only.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
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
tools/sangita-cli/src/commands/test.rstools/sangita-cli/README.mdapplication_documentation/11-retrospective/track-064-key-collision-handover-2026-02-13.md