Skip to content

fix: default app executor and expired EXPIREAT replay#14

Merged
yoonji57 merged 5 commits into
chore/devfrom
fix/aof-default-app-and-expired-replay
Mar 18, 2026
Merged

fix: default app executor and expired EXPIREAT replay#14
yoonji57 merged 5 commits into
chore/devfrom
fix/aof-default-app-and-expired-replay

Conversation

@yoonji57
Copy link
Copy Markdown
Collaborator

What changed

  • Set \�pp.state.command_executor\ only when a custom executor is passed so lifespan can set it for the default stack.
  • Always call \store.expireat\ on EXPIREAT replay so expired keys are removed by the store.
  • Rename/update persistence unit test for EXPIREAT replay behavior.

Why

  • \ est_default_app_wires_the_real_command_stack\ was 500: executor was None before lifespan ran.
  • \ est_default_app_does_not_revive_expired_replay_entries\ failed: skipping EXPIREAT left keys in place; store must receive the call to delete.

Tests

  • automated: pytest (unit + integration)
  • manual smoke: not run

Docs updated

  • none

Known limitations

  • none

Made with Cursor

- Skip expired EXPIREAT entries during replay.

- Append only on successful write results and flush per entry.

- Enforce EXPIREAT expires_at to remain a float.

Made-with: Cursor
Remove conflict markers from main and integration tests.

Made-with: Cursor
- Set app.state.command_executor only when provided so lifespan can set it.

- Always call store.expireat on replay so expired keys are removed.

- Update persistence unit test expectation.

Made-with: Cursor
@yoonji57 yoonji57 merged commit ffaf70c into chore/dev Mar 18, 2026
1 check failed
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