Skip to content

adopt: drop the flow-state no-op-store warning once the engine gives every imposter a real store (rift#1504) - #333

Merged
EtaCassiopeia merged 1 commit into
masterfrom
fix/rift-307-flow-store-warning
Oct 17, 2026
Merged

EtaCassiopeia merged 1 commit into
masterfrom
fix/rift-307-flow-store-warning

Conversation

@EtaCassiopeia

Copy link
Copy Markdown
Collaborator

Summary

rift 0.23.0 (rift#1504, PR achird-labs/rift#1520) gives every imposter a default in-memory flow store with a 300 s TTL. Before that, an imposter with no _rift.flowState, no scenario stub, no script stub and no stateOps got a no-op store, and Imposter.flowState() warned about it. On 0.23.0 that warning is false.

The warning is version-gated rather than removed. Engines from 0.13.1 to 0.22.0 still use the no-op store, so it remains true for them.

  • ImposterImpl gets the engine version from RiftImpl through a supplier that never throws. It warns only when the version is known and below DEFAULT_FLOW_STORE_SINCE = "0.23.0". An unknown version, or a dev build below the floor (0.1.0), is not warned about.
  • The version alone settles it, so a 0.23+ engine costs no definition fetch.
  • FlowStateSupport.hasStoreTrigger is unchanged, since older engines still need it. Its docs now say it applies to engines before 0.23.0.

Docs: Imposter.flowState javadoc, FlowStateSupport javadoc, and docs/design/sdk-api.md (flow-state configuration).

Tests

  • ImposterImplFlowStateWarnTest:
    • the existing warn and memoization cases now run as a 0.22.0 engine;
    • a new case checks that 0.23.0, 1.0.0, an unknown version and 0.1.0 give no warning and make no definition fetch.
  • FlowStateIT.anImposterWithNoStoreTriggerStillKeepsFlowState (conformance, spawn and embedded lanes, live rift 0.23.0): a trigger-less imposter's put reads back. This is the engine fact the gate relies on.

Verification

Core unit tests pass (1002). FlowStateIT passes on both lanes against the rift 0.23.0 binary and dylib.

rift-scala: no change. The warning is logged in rift-java.

Closes #307

🤖 Generated with Claude Code

… before 0.23.0

rift 0.23.0 gives every imposter an in-memory flow store (rift#1504), so the
advisory that flowState() logs for an imposter with no store trigger — reads
return empty, the engine uses a no-op store — is false on it. The warning now
fires only on an engine known to predate that release, and the version alone
settles it, so a newer engine costs no definition fetch. The trigger check
stays for older engines.

Closes #307
@EtaCassiopeia
EtaCassiopeia merged commit c649829 into master Oct 17, 2026
18 checks passed
@EtaCassiopeia
EtaCassiopeia deleted the fix/rift-307-flow-store-warning branch October 17, 2026 03:36
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.

adopt: drop the flow-state no-op-store warning once the engine gives every imposter a real store (rift#1504)

1 participant