Ian Gulliver
|
fc3bbf894f
|
Apply go fix modernizations
|
2026-03-05 11:39:13 -08:00 |
|
Ian Gulliver
|
165b9d1c6c
|
Add trigger linking, block weight computation via DFS
|
2026-02-23 22:54:48 -08:00 |
|
Ian Gulliver
|
7c1b2a8e7e
|
Extract init methods and clean up sortedBlocks references
|
2026-02-23 22:42:21 -08:00 |
|
Ian Gulliver
|
88407f40c6
|
Replace generic constraint with sameRowConstraint
|
2026-02-23 22:35:24 -08:00 |
|
Ian Gulliver
|
49f0cdc290
|
Remove block sort algorithm and per-seed tests
|
2026-02-23 22:32:46 -08:00 |
|
Ian Gulliver
|
7dbc3e8088
|
Seed sort weights from cue order instead of input position
|
2026-02-23 21:04:09 -08:00 |
|
Ian Gulliver
|
389c204e27
|
Revert to simple trigger-edge weight sort (fix 450x perf regression)
|
2026-02-23 21:01:01 -08:00 |
|
Ian Gulliver
|
640038e74f
|
Extract crossTrackWeight helper, disable debug output in tests
|
2026-02-23 20:22:50 -08:00 |
|
Ian Gulliver
|
6879ab46c3
|
Track-deepest map to fix cross-track weight ordering in sort
|
2026-02-23 20:19:56 -08:00 |
|
Ian Gulliver
|
0d77d2d6a1
|
Add deterministic seeds, debug tracing for assignRows cycle detection
|
2026-02-23 19:06:13 -08:00 |
|
Ian Gulliver
|
6c3eb67fb3
|
Implement weight-based topological sort for timeline blocks
|
2026-02-23 14:59:45 -08:00 |
|
Ian Gulliver
|
8dcd695f84
|
Split exclusive group rows instead of inserting single gap
|
2026-02-22 08:24:47 -08:00 |
|
Ian Gulliver
|
0341b5e1d8
|
Propagate chain cells through gaps inserted at cue rows
|
2026-02-21 23:15:33 -08:00 |
|
Ian Gulliver
|
9ae5204733
|
Use random seed for mock show generation, revert show size to default
|
2026-02-21 23:11:03 -08:00 |
|
Ian Gulliver
|
4ec5cbe8e0
|
Precompute exclusive group member tracks to avoid hot-loop map allocations
|
2026-02-21 23:01:07 -08:00 |
|
Ian Gulliver
|
1178adba92
|
Use slices.Insert instead of double-append in insertGap
|
2026-02-21 22:55:56 -08:00 |
|
Ian Gulliver
|
22dbb48b4e
|
Split mock show generation into methods and clean up randBlock
|
2026-02-21 22:37:48 -08:00 |
|
Ian Gulliver
|
c830709976
|
Allow multiple time-limited blocks per track per cue
|
2026-02-21 22:30:04 -08:00 |
|
Ian Gulliver
|
7a125c0bc9
|
Simplify mock show state and allow same-track signal chaining in validator
|
2026-02-21 22:13:12 -08:00 |
|
Ian Gulliver
|
eaf59641fd
|
Restructure mock show generation with clearer state model
|
2026-02-21 22:02:56 -08:00 |
|
Ian Gulliver
|
f49f3dff14
|
Remove debug logging from timeline solver
Clean up timeline.go by removing the diagnostic Printf statements added
during the investigation of the iterative solver cycle.
|
2026-02-21 19:15:53 -08:00 |
|
Ian Gulliver
|
34747e3ff8
|
Investigate timeline solver cycle and add trigger conflict validation
- Add trigger conflict validation in show.go to detect overlapping or
mutually exclusive row constraints.
- Implement Trigger.String() for improved error reporting.
- Add detailed logging to timeline.go to trace iterative solver
non-convergence and empty row optimization cycles.
- Extend mock show generator with experimental cross-track triggers.
|
2026-02-21 19:14:14 -08:00 |
|
Ian Gulliver
|
4e42b6ea60
|
Randomly trigger FADE_OUT instead of END for previous cue's blocks in mock show generator
|
2026-02-21 17:04:54 -07:00 |
|
Ian Gulliver
|
956bd5dd2e
|
Make constraint kind a typed enum, remove dead next_row handling, panic on invalid kinds
|
2026-02-21 17:01:37 -07:00 |
|
Ian Gulliver
|
a847c17596
|
Add cellTypeAt helper to simplify repeated type checks in timeline solver
|
2026-02-21 16:56:55 -07:00 |
|
Ian Gulliver
|
a504b3e34f
|
Replace boolean cell flags with CellType enum (event, title, continuation, gap, chain, signal)
|
2026-02-21 16:52:10 -07:00 |
|
Ian Gulliver
|
50d4b12299
|
Render chain cells as arrows in timeline UI
|
2026-02-21 16:40:30 -07:00 |
|
Ian Gulliver
|
13a4c41cc6
|
Replace breaks and next_row constraints with chains and gap separators
|
2026-02-21 16:33:02 -07:00 |
|
Ian Gulliver
|
b527b94b16
|
GenerateMockShow takes scenes/avgCuesPerScene/avgBlocksPerCue instead of fixed cue/block counts
|
2026-02-20 22:39:29 -07:00 |
|
Ian Gulliver
|
7d3a23dfc1
|
allowedTracks gating, constraint/exclusive helpers, duplicate trigger source validation, re-enable untimed block validation
|
2026-02-20 22:31:04 -07:00 |
|
Ian Gulliver
|
99f79e82f3
|
Place blocks on random tracks, chain via lastOnTrack
|
2026-02-20 21:29:16 -07:00 |
|
Ian Gulliver
|
ac259bb7a0
|
Use lastOnTrack for chaining triggers between blocks
|
2026-02-20 21:22:25 -07:00 |
|
Ian Gulliver
|
8b9d9b633a
|
Add scene end cues that trigger END on untimed blocks
|
2026-02-20 21:18:32 -07:00 |
|
Ian Gulliver
|
911121e463
|
Scene-based cue naming in mock show generator, stub validation for untimed blocks
|
2026-02-20 21:14:50 -07:00 |
|
Ian Gulliver
|
b282ab710f
|
Realistic mock show generator, validation for same-track chains and untimed signals, loop icon, assignRows convergence limit
|
2026-02-20 21:02:18 -07:00 |
|
Ian Gulliver
|
4e2135f483
|
Switch qrunproxy to generated mock show, remove show.json
|
2026-02-20 20:23:34 -07:00 |
|
Ian Gulliver
|
287ca83724
|
Add mock show generator and timeline benchmark
|
2026-02-20 20:20:25 -07:00 |
|
Ian Gulliver
|
2c31d9505c
|
Refactor show model/validation into show.go and simplify timeline internals
|
2026-02-20 20:10:43 -07:00 |
|
Ian Gulliver
|
7d398082dd
|
Simplify const syntax, remove redundant map lookups in buildCells
|
2026-02-20 17:31:03 -07:00 |
|
Ian Gulliver
|
0bfa11c640
|
Don't add trailing break gap after last block on a track
|
2026-02-20 17:22:11 -07:00 |
|
Ian Gulliver
|
fd0687f2af
|
Remove dead empty-members check, extract gapInsertionPoint from insertGap
|
2026-02-20 17:12:50 -07:00 |
|
Ian Gulliver
|
bd3dd1a43d
|
Extract enforceConstraints from assignRows
|
2026-02-20 17:10:02 -07:00 |
|
Ian Gulliver
|
69402ea2e4
|
Switch Show to pointer slices, share objects between Show and Timeline
|
2026-02-20 17:06:43 -07:00 |
|
Ian Gulliver
|
a7e831cfab
|
Pre-compute end-chains-same-track set, remove per-block trigger scan
|
2026-02-20 16:58:42 -07:00 |
|
Ian Gulliver
|
f12ef296aa
|
Switch to []*TimelineCell with embedded row/track, eliminating cellID and index maintenance
|
2026-02-20 16:46:37 -07:00 |
|
Ian Gulliver
|
6ff8675348
|
Switch to []*TimelineTrack and pointer-based cellID.track
|
2026-02-20 16:40:27 -07:00 |
|
Ian Gulliver
|
90ce4d93fa
|
Add --print-timeline-and-exit flag
|
2026-02-20 16:36:18 -07:00 |
|
Ian Gulliver
|
47ed09a848
|
Merge Timeline and timelineBuilder into single struct, remove cells()/setCells()
|
2026-02-20 16:27:23 -07:00 |
|
Ian Gulliver
|
4607e77ee7
|
Avoid empty rows in solver by pulling other tracks up instead of pushing down
|
2026-02-20 16:16:23 -07:00 |
|
Ian Gulliver
|
214bd91cb2
|
Inline setSignal, remove iteration limit from assignRows
|
2026-02-20 15:58:43 -07:00 |
|