fix(test): remove lingering @tdd_expected_fail tags for closed bugs #821 and #932 #1229

Merged
freemo merged 1 commits from feature/m3-tdd-tag-cleanup-821-932 into master 2026-04-02 16:51:16 +00:00
2 changed files with 12 additions and 26 deletions
@@ -4,20 +4,10 @@ These steps exercise ``ContextTierService`` and verify that it automatically
promotes fragments on repeated access, demotes stale fragments, and evicts
fragments when the hot tier budget overflows.
On ``master`` (before the fix), ``ContextTierService`` has data models and
manual ``promote()``/``demote()``/``evict_lru()`` methods but NO automatic
runtime logic:
- ``get()`` updates ``access_count`` and ``last_accessed`` but never
auto-promotes a heavily accessed cold/warm fragment.
- There is no staleness enforcement: no method inspects ``last_accessed``
timestamps and auto-demotes stale hot fragments.
- ``store()`` does not enforce ``TierBudget.max_tokens_hot``: storing
beyond the budget does not trigger automatic LRU eviction.
The assertions in these steps will **fail** until the bug is fixed,
proving the bug exists. The ``@tdd_expected_fail`` tag inverts the
result so CI passes.
Bug #821 identified that ``ContextTierService`` had data models and manual
``promote()``/``demote()``/``evict_lru()`` methods but NO automatic runtime
logic. The bug has been fixed — these tests now serve as a permanent
regression guard confirming the runtime logic works correctly.
"""
from __future__ import annotations
+8 -12
View File
@@ -5,20 +5,16 @@ Feature: TDD Issue #821 — context tier service has data models but no runtime
and evicts fragments based on access patterns, staleness, and budget limits
So that the bug is captured and will be caught by a regression test
ContextTierService has well-defined data models for hot/warm/cold tiers
(ContextTier, TieredFragment, TierBudget) and manual promote()/demote()/
evict_lru() methods, but NO automatic runtime logic:
Bug #821 identified that ContextTierService had data models for
hot/warm/cold tiers (ContextTier, TieredFragment, TierBudget) and
manual promote()/demote()/evict_lru() methods, but NO automatic
runtime logic. The bug has been fixed ContextTierService now:
- get() touches access metadata but never auto-promotes a frequently
accessed cold/warm fragment to a higher tier.
- There is no staleness enforcement: no method checks last_accessed
timestamps and demotes stale hot fragments to warm/cold.
- store() does not enforce budget limits: storing beyond
max_tokens_hot does not trigger automatic eviction.
- auto-promotes frequently accessed cold/warm fragments to a higher tier,
- enforces staleness by demoting stale hot fragments to warm/cold,
- enforces budget limits by evicting on hot tier overflow.
These tests assert the expected runtime behaviour and will FAIL until
the bug is fixed. The @tdd_expected_fail tag inverts the result so
CI passes.
These tests serve as a permanent regression guard for the fix.
Scenario: Promotion on repeated access moves fragment to a higher tier
Given a context tier service with default budget