Private
Public Access
0
0

conductor(plan): Adjust track after catastrophic git checkout - FR1+FR2 reverted, FR3+FR4 were no-ops

This commit is contained in:
2026-06-10 11:45:56 -04:00
parent 4660b8c874
commit 14a329c1a9
@@ -5,7 +5,7 @@
track_id = "mma_tier_usage_reset_fix_20260610"
name = "Fix mma_tier_usage reset + 3 pre-existing controller bugs (2026-06-10)"
status = "in_progress"
current_phase = 1
current_phase = 2
last_updated = "2026-06-10"
[blocked_by]
@@ -15,33 +15,36 @@ last_updated = "2026-06-10"
# This track blocks nothing.
[phases]
phase_1 = { status = "completed", checkpointsha = "428aa189", name = "Apply 4 FRs in app_controller.py + 4 regression tests" }
phase_2 = { status = "pending", checkpointsha = "", name = "Fix live_gui sim test fragility (test_context_sim_live KeyError: paths)" }
phase_1 = { status = "reverted", checkpointsha = "428aa189", name = "Apply 4 FRs in app_controller.py + 4 regression tests" }
phase_2 = { status = "in_progress", checkpointsha = "", name = "Diagnose FR3+FR4 scope + apply minimal FR1+FR2 only" }
[tasks]
t1_1 = { status = "completed", commit_sha = "f5021360", description = "Pre-edit checkpoint" }
t1_2 = { status = "completed", commit_sha = "d80c94b9", description = "FR1: Pre-populate mma_tier_usage in _handle_reset_session" }
t1_3 = { status = "completed", commit_sha = "1919aa8a", description = "FR2: Make _flush_to_project defensive against missing model key" }
t1_4 = { status = "completed", commit_sha = "bc4651d1", description = "FR3: Re-add self.context_preset_manager = ContextPresetManager() in __init__" }
t1_5 = { status = "completed", commit_sha = "4284ec6e", description = "FR4: Remove 'persona_manager' from _LAZY_MANAGER_DEFAULTS in __getattr__" }
t1_6 = { status = "completed", commit_sha = "b96d709e", description = "Add 4 regression tests in tests/test_mma_tier_usage_reset_fix.py" }
t1_2 = { status = "completed_in_history", commit_sha = "d80c94b9", description = "FR1: Pre-populate mma_tier_usage in _handle_reset_session - IN GIT HISTORY ONLY; working tree reverted by 4660b8c8" }
t1_3 = { status = "completed_in_history", commit_sha = "1919aa8a", description = "FR2: Make _flush_to_project defensive against missing model key - IN GIT HISTORY ONLY; working tree reverted by 4660b8c8" }
t1_4 = { status = "no_op", commit_sha = "bc4651d1", description = "FR3: Re-add self.context_preset_manager = ContextPresetManager() - WAS A NO-OP (line was already in baseline 33d02bb1)" }
t1_5 = { status = "no_op", commit_sha = "4284ec6e", description = "FR4: Remove 'persona_manager' from _LAZY_MANAGER_DEFAULTS - WAS A NO-OP (set not in baseline; __getattr__ correctly raises AttributeError)" }
t1_6 = { status = "completed", commit_sha = "b96d709e", description = "Add 4 regression tests in tests/test_mma_tier_usage_reset_fix.py - IN GIT HISTORY" }
t1_7 = { status = "completed", commit_sha = "b96d709e", description = "Verify the existing 3 tests in test_reset_session_clears_mma_and_rag.py still pass" }
t1_8 = { status = "completed", commit_sha = "b96d709e", description = "Run the 3 previously-failing tier-1 tests + 4 sim tests in test_extended_sims.py" }
t1_9 = { status = "completed", commit_sha = "428aa189", description = "Run targeted regression tests (full batch aborted by user)" }
t1_8 = { status = "completed", commit_sha = "b96d709e", description = "Run the 3 previously-failing tier-1 tests + 4 sim tests in test_extended_sims.py (ISOLATED)" }
t1_9 = { status = "completed", commit_sha = "428aa189", description = "Run targeted regression tests (full batched run after the fact showed tier-3 still fails)" }
t1_10 = { status = "completed", commit_sha = "428aa189", description = "Checkpoint commit" }
t2_1 = { status = "pending", commit_sha = "", description = "Diagnose why proj['project']['files']['paths'] is missing after post_project round-trip in batched live_gui (works in isolated run)" }
t2_2 = { status = "pending", commit_sha = "", description = "Apply fix (production or test, whichever is correct root cause)" }
t2_0 = { status = "completed", commit_sha = "4660b8c8", description = "CATAS_TROPHIC: my own git checkout 33d02bb1 -- src/ reverted FR1+FR2 from working tree. Commit 4660b8c8 inadvertently included the baseline files (lost FR1+FR2 from working tree, but kept them in git history). The FR1+FR2 fixes are in git history (d80c94b9, 1919aa8a) but NOT in current HEAD (4660b8c8). Phase 2 sim_context.py fix is in HEAD." }
t2_1 = { status = "in_progress", commit_sha = "", description = "DECIDE: re-apply FR1+FR2 fixes to current HEAD (cherry-pick or new commit), or leave FR1+FR2 only in git history" }
t2_2 = { status = "pending", commit_sha = "", description = "Phase 2 sim_context.py defensive .setdefault('paths', []) fix" }
t2_3 = { status = "pending", commit_sha = "", description = "Verify all 4 sim tests pass in FULL batch (tier-3-live_gui)" }
t2_4 = { status = "pending", commit_sha = "", description = "Final checkpoint with batch log" }
[verification]
mma_tier_usage_prepopulated = true
flush_to_project_defensive = true
context_preset_manager_init_restored = true
persona_manager_removed_from_lazy_defaults = true
regression_tests_pass = true
mma_tier_usage_prepopulated_in_git_history = true
mma_tier_usage_prepopulated_in_HEAD = false
flush_to_project_defensive_in_git_history = true
flush_to_project_defensive_in_HEAD = false
context_preset_manager_init_in_baseline = true
persona_manager_lazy_defaults = "absent from baseline; __getattr__ raises AttributeError correctly"
regression_tests_pass = "fail in HEAD (FR1+FR2 reverted)"
reset_clears_mma_tests_pass = true
three_failing_tier1_tests_pass = true
three_failing_tier1_tests_pass = "depends on FR1+FR2 being in HEAD"
extended_sims_pass_isolated = true
extended_sims_pass_in_batch = false
@@ -50,25 +53,35 @@ extended_sims_pass_in_batch = false
tier_1_status_pre_fix = "FAIL (3 tests: test_app_controller_save_load, test_load_active_project_creates_persona_manager, test_load_context_preset_missing_raises_keyerror)"
tier_2_status_pre_fix = "PASS (5/5 batches)"
tier_3_status_pre_fix = "FAIL on test_extended_sims.py::test_context_sim_live (4 sim tests) - KeyError: 'model' (the original FR1+FR2 bug)"
tier_1_status_post_phase_1 = "PASS (5/5 tier-1 batches in 2026-06-10 batch run)"
tier_2_status_post_phase_1 = "PASS (5/5 tier-2 batches in 2026-06-10 batch run)"
tier_3_status_post_phase_1 = "FAIL on test_extended_sims.py::test_context_sim_live - KeyError: 'paths' (a NEW issue exposed after the original bug was fixed)"
tier_1_status_post_4660b8c8 = "FAIL (2 tests in test_mma_tier_usage_reset_fix.py: test_reset_session_makes_flush_to_project_not_crash + test_flush_to_project_is_defensive_against_partial_tier_dict, because FR1+FR2 are not in HEAD)"
tier_2_status_post_4660b8c8 = "PASS (5/5 tier-2 batches)"
tier_3_status_post_4660b8c8 = "FAIL on test_extended_sims.py::test_context_sim_live - 'switching to: temp_livecontextsim (stale ui - ops disabled)' (the ORIGINAL pre-FR1 failure mode, because FR1 is not in HEAD)"
[notes]
# Test fixture in tests/test_mma_tier_usage_reset_fix.py sets 4 UI flags
# (ui_project_preset_name, ui_word_wrap, ui_gemini_cli_path, ui_auto_add_history)
# that _flush_to_project reads but __init__ does not initialize.
# This is a test-only accommodation for the inherited _UI_FLAG_DEFAULTS
# refactor from the previous agent's WIP commit. A follow-up to clean up
# _UI_FLAG_DEFAULTS is recommended.
# refactor from the previous agent's WIP commit.
# CRITICAL: Phase 1 verification was based on ISOLATED sim test runs.
# The full batch run (tier-3-live_gui) reveals a SEPARATE test fragility
# issue: sim_context.py:41-47 (the SECOND redundant file-add loop)
# fails in batch because proj['project']['files']['paths'] is missing
# after the post_project round-trip. This is a live_gui shared-subprocess
# state issue (different from the original KeyError: 'model' bug).
#
# Per the workflow's "Isolated-Pass Verification Fallacy" rule, the batch
# failure is the authoritative result. The track is NOT complete; the
# 4 sim tests must pass in batch (the verification criterion).
# CRITICAL FINDING 2026-06-10: FR3 was a no-op. The line
# 'self.context_preset_manager = ContextPresetManager()' was already
# in baseline 33d02bb1. The original spec was wrong about it being
# "lost in 72f8f466". The test for FR3 passes regardless of whether
# the FR3 fix commit is applied.
# CRITICAL FINDING 2026-06-10: FR4 was also a no-op. The
# _LAZY_MANAGER_DEFAULTS set was added by the previous agent's WIP
# commit (f5021360) but is NOT in baseline 33d02bb1. With the set
# absent, __getattr__ raises AttributeError, so hasattr() correctly
# returns False for 'persona_manager'. The test for FR4 passes
# regardless of whether the FR4 fix commit is applied.
# The ONLY meaningful fixes from Phase 1 were FR1 and FR2. These are
# in git history (d80c94b9, 1919aa8a) but not in current HEAD because
# of my catastrophic 'git checkout 33d02bb1 -- src/' mistake. The
# working tree needs to be restored to apply FR1+FR2, OR a new commit
# must be created that re-applies them on top of 4660b8c8.
# The Phase 2 sim_context.py fix is the only thing in 4660b8c8 that
# is actually new (committed in 4660b8c8).