Skip to content

Implement dialogue offers and check modifiers; pin to Parlance v0.14.0 - #2

Merged
mwburke merged 1 commit into
mainfrom
claude/parlance-0.14-upgrade-8ank7c
Sep 22, 2026
Merged

mwburke merged 1 commit into
mainfrom
claude/parlance-0.14-upgrade-8ank7c

Conversation

@mwburke

@mwburke mwburke commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Parlance 0.14.0 has two contract changes, and a port needs both before it can claim 0.14.0 conformance.

Changes

  • Dialogue offers replace the character ladder. resolve_character_dialogue no longer walks character.dialogues. It collects the dialogues offering for the character (offer.character ?? speakerId) and drops those whose offer.when fails, plus visited non-replayable ones. It then picks by priority tier, then condition_specificity, then lowest id. It takes an optional visited set, as the reference does.
  • Check modifiers. resolve_check adds the bonus of every modifier whose when holds to the total. It reports bonus and appliedModifiers only when the check declares modifiers. A check with modifiers and no project returns {"error"}; the reference throws in that case. choose_choice now passes the project through. check_bonus and passive_check_passes (the rule for revealing a passive check) are new public functions.
  • Vectors and schema re-copied from parlance@v0.14.0; conformance/PIN moved to the tag.
  • nextContinuations.json is new upstream and optional for a port. It reports as SKIP, like resolveQuests and progression.
  • README: the scoreboard, the compatibility row (it still said v0.9.0) and the "break it on purpose" failure count are updated.

Verification

  • Run locally with Godot 4.4 headless: godot --headless --script tests/conformance_runner.gd gives 159 passed, 0 failed, 23 skipped. Before this change, the new vectors failed 21 times.
  • Mutation check: changing >= to > in _compare now produces 6 failures (README updated to match).

🤖 Generated with Claude Code

https://claude.ai/code/session_01Wc6JEuMmSXJEJSRYwGjn1f


Generated by Claude Code

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. resolve_character_dialogue
  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 condition_specificity, then lowest id. It takes an optional
  visited set, as the reference does.
- Checks gain conditional modifiers. resolve_check 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 {"error"} where the reference throws; choose_choice threads the
  project through. check_bonus and passive_check_passes (the passive
  reveal threshold) are exported.

Vectors and schema re-copied from parlance@v0.14.0; PIN moved to the tag.
nextContinuations.json is new upstream and reports as SKIP, like
resolveQuests and progression. 159 passed, 0 failed, 23 skipped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wc6JEuMmSXJEJSRYwGjn1f
@mwburke
mwburke merged commit 4e2ed9f into main Sep 22, 2026
2 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.

2 participants