Skip to content

Activation Phase 3: ActivationInput resolver seam#26

Merged
LegendaryForge merged 2 commits intomainfrom
feature/activation-phase-3-input
Jan 31, 2026
Merged

Activation Phase 3: ActivationInput resolver seam#26
LegendaryForge merged 2 commits intomainfrom
feature/activation-phase-3-input

Conversation

@LegendaryForge
Copy link
Owner

Summary

Introduces an Activation Phase 3 scaffold that allows server-side resolved activation attributes to reach gates, without changing Phase 2 behavior or invariants.

Changes

  • Added ActivationInput API for server-resolved activation data (gate key, attributes, optional targetRef).
  • Added ActivationInputResolver API as a server-side seam for resolving authoritative activation inputs.
  • Updated DefaultActivationService to resolve ActivationInput and pass resolved attributes into ConditionGate requests (no longer hardcoded empty).
  • Wired DefaultCoreRuntime with a default resolver (empty attributes, targetRef passthrough) and injected it into DefaultActivationService.
  • Extended ActivationService.ActivationAttemptRequest with optional targetRef.

Rationale

Phase 2 validated activation contracts and invariants but always evaluated gates with empty attributes, causing content-side activation gates (e.g., quest-step checks) to deny by default. This change introduces a minimal, server-side resolver seam so content mods can supply authoritative activation attributes without pushing quest or world logic into Core.

Verification

  • ./gradlew spotlessApply clean test

@LegendaryForge LegendaryForge merged commit 5b74207 into main Jan 31, 2026
2 checks passed
@LegendaryForge LegendaryForge deleted the feature/activation-phase-3-input branch February 4, 2026 01:26
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