Skip to content

feat(f14): recommendation lifecycle registry and event emitter - #6

Merged
TserenTserenov merged 1 commit into
mainfrom
feat/wp521-f14-recommendation-registry-v2
Oct 17, 2026
Merged

TserenTserenov merged 1 commit into
mainfrom
feat/wp521-f14-recommendation-registry-v2

Conversation

@TserenTserenov

Copy link
Copy Markdown
Contributor

Summary

  • CAS-based state machine (created -> grounding_checked -> shown -> issued | expired, failed from either blocked stage) with thread-safe transitions and idempotent delivery confirmation.
  • Covers two of the three components agreed in the WP-521 peer session (Claude+Kimi+Codex, 2026-10-17); candidate_builder is deferred pending a field-provenance audit against planner.py/source_finder.py.
  • An earlier direct push of this same content to main bypassed required-PR/status-check protection unexpectedly and was reverted (commit 1a7a9f5) -- this PR resubmits the identical content through the normal review path.

Test plan

  • pytest generator/test_recommendation_registry.py -v -- 21/21 passed, including two real multi-threaded concurrency tests (confirm-vs-confirm, confirm-vs-expire races)
  • pytest generator/ (full suite) -- 214/214 passed, no regressions
  • Independent cold-context code review completed; two High findings (thread-safety, shared :memory: default) fixed and re-verified

🤖 Generated with Claude Code

CAS-based state machine (created->grounding_checked->shown->issued|expired,
failed from either blocked stage) with thread-safe transitions and idempotent
delivery confirmation. Covers two of the three components agreed in the
WP-521 peer session (Claude+Kimi+Codex, 2026-10-17); candidate_builder is
deferred pending a field-provenance audit against planner.py/source_finder.py.

Refs: peer-session 2026-10-17-08-f14-adapter-raw
Review iters: 2
Verify: PASS (21/21 new tests, 214/214 full suite)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@TserenTserenov
TserenTserenov merged commit ea0ae55 into main Oct 17, 2026
2 of 3 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.

1 participant