feat: DomainModeling.V2 — simplified session API for UI/API/MCP consumers#19
Draft
Copilot wants to merge 3 commits into
Draft
Conversation
…shots, renderer, and e-commerce demo Agent-Logs-Url: https://github.com/scoizzle/Poly/sessions/2564565d-70e9-4c8e-8a29-e3b3f5178dca Co-authored-by: scoizzle <2981795+scoizzle@users.noreply.github.com>
…, TrimSnapshots, comment clarity Agent-Logs-Url: https://github.com/scoizzle/Poly/sessions/2564565d-70e9-4c8e-8a29-e3b3f5178dca Co-authored-by: scoizzle <2981795+scoizzle@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Create new simplified DomainModeling.V2 implementation
feat: DomainModeling.V2 — simplified session API for UI/API/MCP consumers
May 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Introduces a new
Poly.DomainModeling.V2namespace with a streamlined, exception-safe authoring surface designed for UI, API, and MCP consumers. The core design principle: every mutation returns aDomainTransactionResult— no exceptions escape the session boundary.New surface (
Poly/DomainModeling/V2/)DomainSession— wrapsDomainwith revision tracking (64-snapshot rolling window), cachedAnalysisResult, and atomicApply(intent[s])that catches both intent-dispatch exceptions and analysis rollbacks into a uniform resultDomainSessionStore— thread-safe registry;Create()bootstraps canonical built-in types and seeds revision 0DomainDispatcher— named convenience wrappers oversession.Apply()(AddEntity,AddRelationship, etc.)DomainSessionIntentExtensions— same surface as fluent extension methods onDomainSessionDomainModelSnapshot+SnapshotBuilder— immutable record projection of the live domain for serialization/diffDomainRenderer— ASCII rendering for full domain, single entity, and stage summariesECommerceDemo— full e-commerce domain (Customer/Order/Product/Shipment/Payment/Review/Category) ported to V2 intent-based authoring with low-level effect/policy wiringDomainSessionBuilder(internal) — fluent test builder for isolated unit testsEngine change
DomainMutationIntentEnginegainsApplyWithTrace()overloads and aninternal Populate()method, factoring the existingApply()through a sharedPopulateAndApply()path without behavioral change.Usage
Original prompt