Implement LayoutConstraint data model and 5-pass resolution algorithm #123

Open
opened 2026-03-15 04:13:25 +00:00 by freemo · 0 comments
Owner

Metadata

  • Commit Message: feat(ui): implement LayoutConstraint and resolution algorithm
  • Branch: feature/m2-window-layout

Background and Context

LayoutConstraint stores min/max/preferred width and height, anchor, stretch, weight, fixed, and margin. The 5-pass algorithm: tier selection, window enumeration, fixed allocation, flex distribution, position assignment.

Acceptance Criteria

  • Implementation matches specification
  • BDD test coverage

Subtasks

  • Implement as specified
  • Write Cucumber feature file and step definitions

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • A Git commit is created where the first line of the commit message matches the
    Commit Message in Metadata exactly.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata.
  • The commit is submitted as a pull request to master, reviewed, and merged.
## Metadata - **Commit Message**: `feat(ui): implement LayoutConstraint and resolution algorithm` - **Branch**: `feature/m2-window-layout` ## Background and Context LayoutConstraint stores min/max/preferred width and height, anchor, stretch, weight, fixed, and margin. The 5-pass algorithm: tier selection, window enumeration, fixed allocation, flex distribution, position assignment. ## Acceptance Criteria - Implementation matches specification - BDD test coverage ## Subtasks - [ ] Implement as specified - [ ] Write Cucumber feature file and step definitions ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata. - The commit is submitted as a **pull request** to `master`, reviewed, and **merged**.
freemo added this to the (deleted) milestone 2026-03-15 04:13:25 +00:00
freemo self-assigned this 2026-03-15 04:25:25 +00:00
freemo modified the milestone from (deleted) to v1.1.0 2026-03-16 00:28:20 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference: aethyr/Aethyr#123
No description provided.