Repository navigation
Implement dialogue offers and check modifiers; pin to Parlance v0.14.0 - #2
Merged
Merged
Conversation
Parlance 0.14.0 carries two contract changes, and a port must ship both before it can claim 0.14.0 conformance: - Dialogue offers replace the character ladder. ResolveCharacterDialogue no longer walks character.dialogues; it gathers the dialogues offering for the character (offer.character ?? speakerId), drops failed offer.when gates and visited non-replayable ones, and picks by priority tier, then ConditionSpecificity, then lowest id (ordinal compare). It takes an optional visited set, as the reference does. - Checks gain conditional modifiers. ResolveCheck sums every modifier whose when holds into the total, and reports bonus/appliedModifiers only when the check declares one. A check with modifiers and no project returns an error dict where the reference throws; ChooseChoice threads the project through. CheckBonus and PassiveCheckPasses (the passive reveal threshold) are public. Vectors and schema re-copied from parlance@v0.14.0; PIN moved to the tag. nextContinuations.json is new upstream and, like resolveQuests and progression, is vendored but not yet run. The README's compatibility row was still at v0.9.0 and its test path pointed at a nonexistent Tests/; both corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wc6JEuMmSXJEJSRYwGjn1f
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.
Parlance 0.14.0 has two contract changes, and a port needs both before it can claim 0.14.0 conformance.
Changes
ResolveCharacterDialogueno longer walkscharacter.dialogues. It collects the dialogues offering for the character (offer.character ?? speakerId) and drops those whoseoffer.whenfails, plus visited non-replayableones. It then picks by priority tier, thenConditionSpecificity, then lowest id (string.CompareOrdinal). It takes an optionalvisitedset.ResolveCheckadds the bonus of every modifier whosewhenholds to the total. It reportsbonusandappliedModifiersonly when the check declares modifiers. A check with modifiers and no project returns an error dict, the same conventionAdvanceNodeuses.ChooseChoicenow passes the project through.CheckBonusandPassiveCheckPassesare public.parlance@v0.14.0;conformance/PINmoved to the tag.nextContinuations.jsonis vendored but not run yet, likeresolveQuestsandprogression.Tests/directory that doesn't exist (it'sParlance.Tests/). Both are fixed, and there are notes on passive checks and offers.Verification
cd Parlance.Tests && dotnet teston .NET 8: 9 passed, 0 failed. Before this change, 3 failed (ResolveCheck, ChooseChoice, ResolveCharacterDialogue).test.ymlonly triggers on PRs and pushes targetingmain, so this PR is the first CI run.🤖 Generated with Claude Code
https://claude.ai/code/session_01Wc6JEuMmSXJEJSRYwGjn1f
Generated by Claude Code