Skip to content

feat(P3): Epic 3.3 — LineageTracker extraction from SkillStore#17

Merged
Deepfreezechill merged 2 commits intomainfrom
epic/3.3-lineage-tracker
Apr 2, 2026
Merged

feat(P3): Epic 3.3 — LineageTracker extraction from SkillStore#17
Deepfreezechill merged 2 commits intomainfrom
epic/3.3-lineage-tracker

Conversation

@Deepfreezechill
Copy link
Copy Markdown
Owner

Epic 3.3: LineageTracker Extraction

What

Extracts lineage/parent-child tracking from the monolithic SkillStore into a focused LineageTracker class.

Changes

  • lineage_tracker.py (376 lines): record_derivation, get_children, get_ancestors, get_evolution_chain, get_lineage_tree
  • store.py: Delegates lineage methods to LineageTracker (shared conn/lock pattern)
  • 25 new tests: derivation, children, ancestors, evolution chains, diamond inheritance, shared conn

Results

  • 1207 tests passing (up from 1182)
  • 105 lines removed from store.py
  • Backward compatible — all existing tests still pass

Closes #16

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 2, 2026

🔒 Phase Gate Enforcement — 🚫 FAIL

Check Result Detail
Issue linkage Linked issues: #16
Milestone validation Unknown milestones: Phase 3 — Skill Store Decomposition. Must match a phase in phase-config.yml.

Verdict: FAIL
Timestamp: 2026-04-02T14:58:22.770Z
Run: View workflow run


How to fix: Ensure all prerequisite phases are complete, or add emergency:bypass label with a ## Bypass Reason section in the PR body.

…-conn, layering

- Fix 1: get_ancestors() cycle bug — seed visited with starting skill_id to prevent cycles
- Fix 2: get_lineage_tree() diamond DAG — pass copy of visited to each sibling subtree to preserve all paths
- Fix 3: shared-conn _reader() dirty reads — acquire lock when using shared connection
- Fix 4: SkillRepository._to_record layering violation — make public as to_record()
- Fix 5: recent_analyses hydration regression — re-hydrate in SkillStore delegation methods
- Fix 6: missing test coverage — add cycle, diamond, shared-conn isolation, and facade tests

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Copy Markdown

@VonkraLLC VonkraLLC left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — /8eyes R1 findings addressed: cycle bug, diamond DAG, shared-conn reads, layering, hydration, tests

@Deepfreezechill Deepfreezechill merged commit a180b5c into main Apr 2, 2026
0 of 5 checks passed
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.

Epic 3.3: Extract LineageTracker from store.py

2 participants