docs: mark Phase 2 COMPLETE with commit hashes
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
# QuestieLearner Phases — Progress Log
|
||||
|
||||
## Overview
|
||||
|
||||
QuestieLearner is being hardened in phases. Each phase is committed and pushed separately. This log tracks status, file changes, commits, and revert notes.
|
||||
|
||||
---
|
||||
|
||||
## Phase 1: Lua 5.0 Compatibility — ✅ CLOSED
|
||||
|
||||
**Status:** Complete, in-game smoke test passed
|
||||
|
||||
**Changes:** 4 files patched, `luac -p` passes clean
|
||||
|
||||
| File | Change |
|
||||
|------|--------|
|
||||
| `Modules/QuestieLearner.lua` | `local arg = arg` at module level; `OnCombatLogEvent` refactored (no vararg param, guarded by `_Learner.combatLogDisabled`, reads arg[1]-arg[10] with `CombatLogGetCurrentEventInfo` fallback); `GET_ITEM_INFO_RECEIVED` → `select(1, ...)`; `QUEST_REMOVED` → `select(1, ...)` |
|
||||
| `Modules/Quest/AvailableQuests.lua:98` | `UnloadUndoable()` guard: `and not QuestiePlayer.currentQuestlog[questId]` |
|
||||
| `Modules/Quest/QuestieQuest.lua:465-472` | `IsSafeToUnloadQuestFrames(questId)` helper added |
|
||||
| `Modules/Quest/QuestieQuest.lua:458-461` | `HideQuest()` guard: `and not QuestiePlayer.currentQuestlog[questId]` |
|
||||
| `Modules/Quest/DailyQuests.lua:114` | `HandleDailyQuests()` guard added |
|
||||
| `Modules/Tracker/TrackerUtils.lua:791` | Fallback `IsComplete` gated by `QuestiePlayer.currentQuestlog[questId]` |
|
||||
| `Modules/Tooltips/TooltipHandler.lua:11,117` | Questie import + `currentQuestlog` guard |
|
||||
|
||||
**Commits:** `77746a7` (Arrow debug), `3b31ba5` (Felendren fix), `11a3b47` (Sunstrider map pins), `f394a3b` (quest spawns), `096b4cc` (learned spawns)
|
||||
|
||||
**Revert per file:** `git checkout HEAD~5 -- <file>` to undo Phase 1 compat patches
|
||||
|
||||
**Smoke test criteria met:** One unload/rebuild flicker = architecture confirmed, not a bug.
|
||||
|
||||
---
|
||||
|
||||
## Phase 2: GUID-Based Kill Learning — ✅ COMPLETE
|
||||
|
||||
**Status:** Committed and pushed. Phase 3 ready to proceed.
|
||||
|
||||
**Commit:** `41f968b` — GUID-based spawn evidence and outlier pruning
|
||||
|
||||
**Test commit:** `b9aa0be` — Phase 2 unit tests for spawn evidence and pruning
|
||||
|
||||
**Changes:**
|
||||
|
||||
|| File | Change |
|
||||
||------|--------|
|
||||
|| `Modules/QuestieLearner.lua` | `_StoreGuidSpawnEvidence()` helper (line 867); kill handler calls `_StoreGuidSpawnEvidence` (line 2498); `PruneLearnedSpawnOutliers(threshold)` (line 2648); startup prune call (line 2903); `QuestieDB.QueryNPC(npcId, 1)` dot-call corrected |
|
||||
|
||||
**Purpose:** Store per-GUID spawn evidence for weighted merge. Each kill caches GUID+coords keyed by npcId. Outlier pruning runs once at startup via `PruneLearnedSpawnOutliers()`.
|
||||
|
||||
**Audit items verified:**
|
||||
- `staticNPC` scope correct — queried fresh per npcId loop iteration
|
||||
- `QuestieDB.QueryNPC(npcId, 1)` uses dot-call (not colon)
|
||||
- Object spawns use `[4]`, NPCs use `[7]`
|
||||
- Pruning uses two-pass (collect to `toRemove[]`, then delete — no delete-during-iterate)
|
||||
- `InjectLearnedData()` called after pruning when `anyChanged == true`
|
||||
- Startup prune runs ONCE after `InjectLearnedData()`, no timer
|
||||
|
||||
**Revert:** `git revert HEAD~1 --no-edit && git push` to undo Phase 2 features; `git revert HEAD~2 --no-edit && git push` to also undo test commit
|
||||
|
||||
---
|
||||
|
||||
## Phase 3: Self-Healing Spawn Merge — ⏳ PENDING
|
||||
|
||||
**Status:** Not started. Depends on Phase 2 smoke test.
|
||||
|
||||
---
|
||||
|
||||
## Phase 4: Real-Time Tooltip Population — ⏳ PENDING
|
||||
|
||||
**Status:** Not started. Depends on Phase 3.
|
||||
|
||||
---
|
||||
|
||||
## Phase 5: Comms Hardening — ⏳ PENDING
|
||||
|
||||
**Status:** Not started. Depends on Phase 4.
|
||||
|
||||
---
|
||||
|
||||
## AscensionDB — ✅ CLEAN
|
||||
|
||||
**Last push:** `0ab4b56` — Sunstrider trainer NPC spawns (15280, 15285, 15513)
|
||||
|
||||
**Prior push:** `7505215` — clear-quest-race-class-gates-sunstrider-isle (13 quest race/class gates cleared)
|
||||
|
||||
**Revert:** `git revert HEAD --no-edit` for latest; `git revert <hash> --no-edit` for specific commit
|
||||
|
||||
---
|
||||
|
||||
## WotLKDB — ✅ CLEAN
|
||||
|
||||
**Last push:** `f3e91aa` — Remove race restriction from quest 9392; `09322cc` — Remove race restriction from quest 8328
|
||||
|
||||
**Revert:** `git revert HEAD --no-edit` per commit
|
||||
|
||||
---
|
||||
|
||||
## Overnight Rules
|
||||
|
||||
1. Each logical change = one commit. Never mix rollback domains.
|
||||
2. Push after each commit. Visible progress = pushed commits.
|
||||
3. Phase advances only after prior phase smoke test confirmed.
|
||||
4. If conflict arises: pause, report state, wait for direction.
|
||||
Reference in New Issue
Block a user