Skip to content

refactor(core/desktop): L3 as L2-row vertical split lines (#85) - #91

Merged
loootte merged 3 commits into
mainfrom
feature/85-l3-split-lines
Aug 1, 2026
Merged

loootte merged 3 commits into
mainfrom
feature/85-l3-split-lines

Conversation

@loootte

@loootte loootte commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Summary

Refactor L3 from free measure rectangles to ordered vertical split lines on each L2 row (#85).

Core

  • SplitLine + splits_to_measures / measures_to_splits / move-insert-delete
  • L3 detect ? interior splits; measures = [L2.x1, .splits, L2.x2]
  • Structure debug barlines carry id/source/editable
  • Rebuild re-derives measures from edited barlines
  • Split-level metric aliases (split_count_mae, split_mean_abs_x_error)

Desktop

  • L3 edit: drag red/amber split lines; double-click delete; add-region inserts split at center-x
  • Measure boxes dimmed (derived, not free-drag)
  • GT export includes layers.L3.splits

Docs

  • docs/l3-split-model.md

Test plan

  • pytest tests/test_l3_splits.py + structure/L3/rerun suites
  • tsc --noEmit
  • UI: L3 edit drag/add/delete lines; re-run L4 from L2

Closes #85

Primary L3 state is ordered interior splits; measures derive from L2
bounds + splits. Desktop L3 edit drags/adds/deletes split lines; measure
boxes are read-only derived. Add split metrics aliases and migration helpers.
loootte added 2 commits August 1, 2026 08:34
measureRectsFromStructure ignored kind=measure_derived, so dual-view
highlights fell back to OCR tiles and missed split lines. Also prefer
structureDraft so highlights track edited splits.
Document splits as L3 primary store, derived measures, dual-view
highlight alignment, and close out roadmap entries for #84/#85/#86/#89.

Closes #85
@loootte
loootte merged commit 3d22009 into main Aug 1, 2026
3 checks passed
@loootte
loootte deleted the feature/85-l3-split-lines branch August 1, 2026 00:43
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.

refactor(core/desktop): L3 改为「L2 行内纵向分割线」模型(识别切分 + 拖线编辑 + 线级评估)

1 participant