Conversation
Adding CLAUDE.md with task information for AI processing. This file will be removed when the task is complete. Issue: #11
- Enhanced TryParseLinkId to support string aliases alongside numeric IDs - Added overloaded version that uses NamedLinksDecorator for alias resolution - Updated all parser calls to use new string-aware ID parsing - String IDs are automatically mapped to numeric IDs when creating new links - Output formatting already converts numeric IDs back to string aliases - All 124 existing tests pass, confirming backward compatibility This implements the key-value store functionality requested in issue #11, where string aliases serve as keys that map to link IDs. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
We need to get latest changes from default branch. Now we need to make sure our codebase uses newly added NamedTypes decorator that uses PinnedTypes decorator inside it. So we should simplify our code, make it shorter and make sure it helps for code deduplication, easy configuration and reuse. We need to ensure all changes are correct, consistent, validated, tested, logged and fully meet each and all discussed requirements in widest possible sense (check issue description and all comments in issue and in pull request, make sure each and every requirement listed before actually checking if they were addressed). Ensure all CI/CD checks pass. Please plan and execute everything in a single pull request, you have unlimited time and context, as context autocompacts and you can continue indefinetely, do as much as possible in one go, until it is each and every requirement fully addressed, and everything is totally done. |
|
🤖 AI Work Session Started Starting automated work session at 2026-04-30T08:27:36.474Z The PR has been converted to draft mode while work is in progress. This comment marks the beginning of an AI work session. Please wait for the session to finish, and provide your feedback. |
Solution summaryImplemented and pushed the fix to PR 53: #53 What changed:
Verification:
This summary was automatically extracted from the AI working session output. |
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
📊 Context and tokens usage:
Total: (156.7K + 5.4M cached) input tokens, 21.2K output tokens, $7.929695 cost 🤖 Models used:
📎 Log file uploaded as Gist (21606KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
✅ Ready to mergeThis pull request is now ready to be merged:
Monitored by hive-mind with --auto-restart-until-mergeable flag |
|
Double check for all the same for Rust, all Rust code should be in sync with C# code. We need to ensure all changes are correct, consistent, validated, tested, logged and fully meet each and all discussed requirements in widest possible sense (check issue description and all comments in issue and in pull request, make sure each and every requirement listed before actually checking if they were addressed). Ensure all CI/CD checks pass. Please plan and execute everything in a single pull request, you have unlimited time and context, as context autocompacts and you can continue indefinetely, do as much as possible in one go, until it is each and every requirement fully addressed, and everything is totally done. |
|
🤖 AI Work Session Started Starting automated work session at 2026-04-30T10:22:18.178Z The PR has been converted to draft mode while work is in progress. This comment marks the beginning of an AI work session. Please wait for the session to finish, and provide your feedback. |
Working session summaryImplemented and pushed the Rust sync for full string ID aliases, keeping it aligned with the C# named-types design. PR: #53 What changed:
Verification:
Working tree is clean. This summary was automatically extracted from the AI working session output. |
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
📊 Context and tokens usage:
Total: (399.5K + 11.7M cached) input tokens, 41.0K output tokens, $17.548926 cost 🤖 Models used:
📎 Log file uploaded as Repository (64069KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
✅ Ready to mergeThis pull request is now ready to be merged:
Monitored by hive-mind with --auto-restart-until-mergeable flag |
Summary
Fixes #11.
This PR adds full string ID alias support for advanced LiNo queries in both C# and Rust, and updates the branch to the latest
mainhistory. The C# CLI now constructsNamedTypesDecorator<uint>, while the Rust CLI now constructsNamedTypesDecoratorso aliases are resolved from the separate names database instead of being stored inline with primary links.Implementation
INamedTypesLinks<TLinkAddress>on the C# side so advanced query processing and LiNo output work against links that also expose name lookup APIs.NamedTypeLinkson the Rust side so query processing, reference validation, LiNo output, and CLI operations can run againstNamedTypesDecorator.Reproduction
Before this fix, named IDs inside variable restrictions could behave like unconstrained wildcards during matching. The regression tests create named links and update only links matching
father -> mother:The tests verify
fatherandmotherremain self-referential and onlychildchanges tomother -> father.Rust also has a CLI regression test that runs:
clink --db /tmp/string-ids.links --auto-create-missing-references '() ((child: father mother))' --afterand verifies
father,mother, andchildare printed as aliases while the primary.linksfile contains no alias text; the aliases are stored in the generated.names.linksdatabase.Verification
dotnet test csharp/Foundation.Data.Doublets.Cli.slndotnet restorefromcsharp/dotnet build --no-restore --configuration Releasefromcsharp/dotnet test --no-build --configuration Release --verbosity normalfromcsharp/cargo fmt --all -- --checkfromrust/RUSTFLAGS=-Dwarnings cargo clippy --all-targets --all-featuresfromrust/cargo test --all-features --verbosefromrust/cargo test --doc --verbosefromrust/cargo build --release --verbosefromrust/node scripts/check-file-size.mjs --lang rust9f7076fon 2026-04-30.dotnet run --project csharp/Foundation.Data.Doublets.Cli --configuration Release -- --db /tmp/string-ids/db.links --auto-create-missing-references '() ((person: name john))' --afterOutput: