Skip to content

Revert prematurely-merged TTL Cascade milestone (#277) - #279

Merged
yedidyakfir merged 1 commit into
developfrom
revert-cascade-premature-merge
Jul 13, 2026
Merged

Revert prematurely-merged TTL Cascade milestone (#277)#279
yedidyakfir merged 1 commit into
developfrom
revert-cascade-premature-merge

Conversation

@yedidyakfir

@yedidyakfir yedidyakfir commented Jul 12, 2026

Copy link
Copy Markdown
Collaborator

Reverts the TTL Cascade milestone commit cb8089e (merged via #277), which landed on develop before its review comments were addressed.

Why

PR #277 was merged (attributed to the yedidyakfir account, squash commit cb8089e) before the review comments on it were resolved. This revert takes develop back to the pre-cascade state so the milestone can be re-reviewed and merged deliberately.

Effect

  • Removes the entire cascade milestone (rapyer/cascade/, the Lua apply script, the base/config/init wiring, and cascade tests) from develop.
  • Pure git revert of the single squash commit — clean, no conflicts.

After this merges

PR #278 (the review-comment fixes) automatically becomes the full-diff cascade PR: with the milestone reverted out of develop, #278's branch still carries the whole milestone plus the fixes for every review comment, so it shows the complete cascade diff for a proper review before it goes back in.

Verification

  • black --check + ruff check clean.
  • 735 unit tests pass on the reverted tree (the cascade tests are removed by the revert).

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Breaking Changes

    • Removed TTL cascade configuration and behavior.
    • aset_ttl() no longer accepts a cascade option.
    • Removed public cascade-related configuration types and errors.
    • Cascade TTL documentation and navigation entries were removed.
  • New Features

    • Added status reporting for get-or-create operations.
    • Delete results now include counts grouped by model.
  • Bug Fixes

    • TTL refresh now consistently applies expiration directly to applicable keys.

…Key graphs (milestone, phases 1-4)"

This reverts commit cb8089e.
@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 27a099e7-b777-4e10-a7d4-16ac330100a9

📥 Commits

Reviewing files that changed from the base of the PR and between cb8089e and 48e4adc.

📒 Files selected for processing (43)
  • docs/documentation/special-fields/foreign-keys.md
  • docs/documentation/special-fields/ttl-cascade.md
  • mkdocs.yml
  • rapyer/__init__.py
  • rapyer/base.py
  • rapyer/cascade/__init__.py
  • rapyer/cascade/planner.py
  • rapyer/cascade/spec.py
  • rapyer/cascade/ttl.py
  • rapyer/config.py
  • rapyer/context.py
  • rapyer/errors/__init__.py
  • rapyer/errors/cascade.py
  • rapyer/init.py
  • rapyer/result.py
  • rapyer/scripts/constants.py
  • rapyer/scripts/lua/cascade/__init__.py
  • rapyer/scripts/lua/cascade/apply.lua
  • rapyer/scripts/registry.py
  • rapyer/utils/annotation.py
  • tests/integration/foreign_keys/conftest.py
  • tests/integration/foreign_keys/test_cascade_action_boundary.py
  • tests/integration/foreign_keys/test_cascade_concurrent_mutation.py
  • tests/integration/foreign_keys/test_cascade_graph_shapes.py
  • tests/integration/foreign_keys/test_cascade_ttl_apply.py
  • tests/models/cascade_types.py
  • tests/unit/cascade/__init__.py
  • tests/unit/cascade/conftest.py
  • tests/unit/cascade/test_aset_ttl_cascade_flag.py
  • tests/unit/cascade/test_cascade_action_boundary.py
  • tests/unit/cascade/test_cascade_apply_lua.py
  • tests/unit/cascade/test_cascade_apply_lua_syntax.py
  • tests/unit/cascade/test_cascade_classification.py
  • tests/unit/cascade/test_cascade_plan_injection.py
  • tests/unit/cascade/test_cascade_plan_table.py
  • tests/unit/cascade/test_cascade_ttl_config.py
  • tests/unit/cascade/test_cascade_ttl_required_validation.py
  • tests/unit/cascade/test_extract_annotation.py
  • tests/unit/cascade/test_init_rapyer_cascade_ttl.py
  • tests/unit/cascade/test_meta_ttl_freeze.py
  • tests/unit/cascade/test_refresh_ttl_cascade_branch.py
  • tests/unit/test_context.py
  • tests/unit/test_init_rapyer.py
💤 Files with no reviewable changes (33)
  • tests/unit/cascade/test_cascade_action_boundary.py
  • tests/integration/foreign_keys/test_cascade_ttl_apply.py
  • tests/unit/cascade/test_cascade_ttl_config.py
  • tests/unit/cascade/test_cascade_apply_lua_syntax.py
  • tests/unit/cascade/test_meta_ttl_freeze.py
  • rapyer/cascade/init.py
  • tests/integration/foreign_keys/test_cascade_action_boundary.py
  • docs/documentation/special-fields/ttl-cascade.md
  • rapyer/cascade/ttl.py
  • rapyer/utils/annotation.py
  • tests/models/cascade_types.py
  • tests/unit/test_context.py
  • tests/unit/cascade/test_extract_annotation.py
  • rapyer/cascade/spec.py
  • rapyer/init.py
  • tests/unit/cascade/test_cascade_plan_table.py
  • rapyer/errors/cascade.py
  • tests/unit/cascade/conftest.py
  • tests/unit/cascade/test_cascade_ttl_required_validation.py
  • rapyer/scripts/lua/cascade/apply.lua
  • rapyer/cascade/planner.py
  • tests/unit/cascade/test_init_rapyer_cascade_ttl.py
  • rapyer/scripts/constants.py
  • tests/unit/cascade/test_cascade_plan_injection.py
  • tests/integration/foreign_keys/test_cascade_concurrent_mutation.py
  • tests/unit/cascade/test_cascade_classification.py
  • tests/unit/cascade/test_aset_ttl_cascade_flag.py
  • mkdocs.yml
  • tests/integration/foreign_keys/test_cascade_graph_shapes.py
  • tests/integration/foreign_keys/conftest.py
  • tests/unit/cascade/test_cascade_apply_lua.py
  • tests/unit/cascade/test_refresh_ttl_cascade_branch.py
  • rapyer/result.py

📝 Walkthrough

Walkthrough

The PR removes the TTL cascade feature, including its public configuration, planner, Lua script, runtime branches, errors, documentation, and tests. Standard TTL refresh, initialization, special-field script registration, and non-cascade initialization tests remain.

Changes

TTL Cascade Removal

Layer / File(s) Summary
Public API and configuration cleanup
rapyer/config.py, rapyer/result.py, rapyer/errors/*, rapyer/cascade/*, rapyer/__init__.py
Cascade types, errors, configuration fields, exports, and annotation extraction are removed.
Runtime TTL and initialization flow
rapyer/base.py, rapyer/init.py
TTL refresh and aset_ttl() now expire _ttl_keys() directly; initialization no longer builds cascade plans or freezes TTL metadata.
Script and pipeline cleanup
rapyer/context.py, rapyer/scripts/*
Cascade Lua registration and NOSCRIPT recovery are removed; pipelines execute directly and retain special-field injection.
Documentation and validation updates
docs/..., mkdocs.yml, tests/integration/foreign_keys/conftest.py, tests/unit/test_init_rapyer.py
TTL Cascade documentation and navigation are removed, while remaining initialization tests and fixtures are adjusted to the reduced behavior.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 10.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: reverting the prematurely merged TTL Cascade milestone.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch revert-cascade-premature-merge

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

Coverage report

Total coverage: 99%

Full report
Name                                                     Stmts   Miss  Cover
----------------------------------------------------------------------------
rapyer/__init__.py                                           5      0   100%
rapyer/actions.py                                          213      0   100%
rapyer/base.py                                             847      0   100%
rapyer/config.py                                            37      0   100%
rapyer/context.py                                           40      0   100%
rapyer/errors/__init__.py                                   10      0   100%
rapyer/errors/base.py                                       23      0   100%
rapyer/errors/delete.py                                      3      0   100%
rapyer/errors/find.py                                       15      0   100%
rapyer/fields/__init__.py                                    4      0   100%
rapyer/fields/expression.py                                108      0   100%
rapyer/fields/index.py                                      20      0   100%
rapyer/fields/key.py                                        19      0   100%
rapyer/fields/safe_load.py                                  14      0   100%
rapyer/init.py                                              52      0   100%
rapyer/links.py                                              2      0   100%
rapyer/result.py                                            28      0   100%
rapyer/scripts/__init__.py                                   5      0   100%
rapyer/scripts/constants.py                                 15      0   100%
rapyer/scripts/loader.py                                    27      0   100%
rapyer/scripts/lua/__init__.py                               0      0   100%
rapyer/scripts/lua/atomic/__init__.py                        0      0   100%
rapyer/scripts/lua/datetime/__init__.py                      0      0   100%
rapyer/scripts/lua/dict/__init__.py                          0      0   100%
rapyer/scripts/lua/list/__init__.py                          0      0   100%
rapyer/scripts/lua/numeric/__init__.py                       0      0   100%
rapyer/scripts/lua/sf/__init__.py                            0      0   100%
rapyer/scripts/lua/sf/redis_priority_queue/__init__.py       0      0   100%
rapyer/scripts/lua/sf/redis_set/__init__.py                  0      0   100%
rapyer/scripts/lua/string/__init__.py                        0      0   100%
rapyer/scripts/registry.py                                  54      0   100%
rapyer/types/__init__.py                                    13      0   100%
rapyer/types/base.py                                       103      0   100%
rapyer/types/byte.py                                        33      0   100%
rapyer/types/convert.py                                     53      0   100%
rapyer/types/datetime.py                                    77      0   100%
rapyer/types/dct.py                                        116      0   100%
rapyer/types/float.py                                       65      0   100%
rapyer/types/foreign_key.py                                 68      0   100%
rapyer/types/generic.py                                     83      0   100%
rapyer/types/init.py                                        10      0   100%
rapyer/types/integer.py                                     58      0   100%
rapyer/types/lst.py                                        129      0   100%
rapyer/types/priority_queue.py                             102      0   100%
rapyer/types/redis_set.py                                  196      0   100%
rapyer/types/relational.py                                  24      0   100%
rapyer/types/special.py                                     39      0   100%
rapyer/types/string.py                                      22      0   100%
rapyer/typing_support.py                                     3      0   100%
rapyer/utils/__init__.py                                     0      0   100%
rapyer/utils/annotation.py                                  62      1    98%
rapyer/utils/fields.py                                      43      0   100%
rapyer/utils/pythonic.py                                    21      0   100%
rapyer/utils/redis.py                                       77      0   100%
----------------------------------------------------------------------------
TOTAL                                                     2938      1    99%

@codspeed-hq

codspeed-hq Bot commented Jul 12, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 10.51%

⚡ 1 improved benchmark
✅ 167 untouched benchmarks

Performance Changes

Mode Benchmark BASE HEAD Efficiency
WallTime test_benchmark 1.3 ms 1.2 ms +10.51%

Tip

Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.


Comparing revert-cascade-premature-merge (48e4adc) with develop (cb8089e)

Open in CodSpeed

@yedidyakfir
yedidyakfir merged commit 55d6841 into develop Jul 13, 2026
57 checks passed
@linear-code

linear-code Bot commented Jul 13, 2026

Copy link
Copy Markdown

YED-68

@yedidyakfir
yedidyakfir deleted the revert-cascade-premature-merge branch July 13, 2026 10:24
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