Skip to content

feat: add pinned types decorator parity#46

Merged
konard merged 6 commits intomainfrom
issue-22-889744b4
Apr 30, 2026
Merged

feat: add pinned types decorator parity#46
konard merged 6 commits intomainfrom
issue-22-889744b4

Conversation

@konard
Copy link
Copy Markdown
Member

@konard konard commented Sep 10, 2025

Summary

Adds universal pinned type decorator support for issue #22 and composes it into the named type decorators added on main.

Changes

  • Added C# IPinnedTypes<TLinkAddress> and PinnedTypesDecorator<TLinkAddress>.
  • Updated C# NamedTypesDecorator<TLinkAddress> to receive/use PinnedTypesDecorator<TLinkAddress> and implement IPinnedTypes<TLinkAddress> in addition to ILinks and INamedTypes.
  • Added Rust PinnedTypesAccess and PinnedTypesDecorator parity over LinkStorage.
  • Updated Rust NamedTypesDecorator to delegate link operations through PinnedTypesDecorator and expose pinned type access.
  • Added C# and Rust tests covering decorator composition, pinned type enumeration/deconstruction, and invalid reserved-link validation.
  • Added C# changeset and Rust changelog fragments.

Verification

  • dotnet test csharp/Foundation.Data.Doublets.Cli.sln --configuration Release
  • cargo fmt --all -- --check
  • RUSTFLAGS=-Dwarnings cargo clippy --all-targets --all-features
  • cargo test --all-features --verbose
  • cargo test --doc --verbose
  • node scripts/check-file-size.mjs --lang rust

Fixes #22

Adding CLAUDE.md with task information for AI processing.
This file will be removed when the task is complete.

Issue: #22
@konard konard self-assigned this Sep 10, 2025
konard and others added 3 commits September 10, 2025 16:51
- Created IPinnedTypes<TLinkAddress> interface that extends IEnumerable<TLinkAddress> with deconstruction support
- Updated PinnedTypes<TLinkAddress> class to implement IPinnedTypes interface
- Added Deconstruct method to PinnedTypes for tuple-like destructuring
- Implemented PinnedTypesDecorator<TLinkAddress> that implements both ILinks<TLinkAddress> and IPinnedTypes<TLinkAddress>
- Added comprehensive unit tests for the PinnedTypesDecorator functionality
- Decorator follows existing patterns in the codebase (LinksDecoratorBase inheritance)

Resolves issue #22: PinnedTypesDecorator provides universal access to both ILinks operations and IPinnedTypes functionality.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Enhanced PinnedTypes to implement IPinnedTypes interface
- Added PinnedTypesDecorator that extends LinksDecoratorBase and implements IPinnedTypes
- Decorator provides seamless integration of pinned types functionality with ILinks operations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@konard konard changed the title [WIP] Add implementation of universal PinnedTypes decorator for ILinks Add implementation of universal PinnedTypes decorator for ILinks Sep 10, 2025
@konard konard marked this pull request as ready for review September 10, 2025 14:07
@konard
Copy link
Copy Markdown
Member Author

konard commented Apr 30, 2026

Get latest changes from default branch.

Also NamedTypesDecorator should automatically include PinnedTypesDecorator (receive in constructor), so we deduplicate logic, and make each abstraction responsible for its own features.

Also we need to mirror all the same to Rust 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.

@konard konard marked this pull request as draft April 30, 2026 07:30
@konard
Copy link
Copy Markdown
Member Author

konard commented Apr 30, 2026

🤖 AI Work Session Started

Starting automated work session at 2026-04-30T07:30:10.304Z

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.

@konard konard changed the title Add implementation of universal PinnedTypes decorator for ILinks feat: add pinned types decorator parity Apr 30, 2026
@konard konard marked this pull request as ready for review April 30, 2026 07:42
@konard
Copy link
Copy Markdown
Member Author

konard commented Apr 30, 2026

Solution summary

PR 46 is finalized: #46

Resolved the merge conflicts by merging latest origin/main, pushed d9d1ae2 to issue-22-889744b4, updated the PR title/body, and marked it ready for review. The PR is now MERGEABLE with merge state CLEAN.

Verification:

  • Local C# tests passed: 165 tests
  • Rust fmt, clippy, tests, doc tests, and file-size check passed
  • Fresh GitHub CI passed for both C# and Rust pipelines on commit d9d1ae2
  • Working tree is clean and synced with origin/issue-22-889744b4

This summary was automatically extracted from the AI working session output.

@konard
Copy link
Copy Markdown
Member Author

konard commented Apr 30, 2026

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Model: GPT-5.5
  • Provider: OpenAI
  • Public pricing estimate: $15.853069

📊 Context and tokens usage:

  • 12.7M / 1.1M (1210%) input tokens, 33.8K / 128K (26%) output tokens

Total: (180.4K + 12.5M cached) input tokens, 33.8K output tokens, $15.853069 cost

🤖 Models used:

  • Tool: OpenAI Codex
  • Requested: gpt-5.5
  • Model: GPT-5.5 (gpt-5.5)

📎 Log file uploaded as Repository (42514KB)


Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard
Copy link
Copy Markdown
Member Author

konard commented Apr 30, 2026

✅ Ready to merge

This pull request is now ready to be merged:

  • All CI checks have passed
  • No merge conflicts
  • No pending changes

Monitored by hive-mind with --auto-restart-until-mergeable flag

@konard konard merged commit 45adac6 into main Apr 30, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add implementation of universal PinnedTypes decorator for ILinks

1 participant