54d2f9d149d9651cd35750b38a5cddee4392f402 54d2f9d149d9651cd35750b38a5cddee4392f402 Samit Basu <basu.samit@gmail.com> 1781980307 -0700	checkout: moving from main to larger-hit-radius
54d2f9d149d9651cd35750b38a5cddee4392f402 b0be05284079939ad3274a3269f785684e4aedaa Samit Basu <basu.samit@gmail.com> 1781980315 -0700	commit: Split out a larger hit radius for control points
b0be05284079939ad3274a3269f785684e4aedaa 180a3b58659269aab761bb92ff32245aa2c1d758 Samit Basu <basu.samit@gmail.com> 1781980377 -0700	commit: Update todo list
180a3b58659269aab761bb92ff32245aa2c1d758 180a3b58659269aab761bb92ff32245aa2c1d758 Samit Basu <basu.samit@gmail.com> 1781981537 -0700	reset: moving to HEAD
180a3b58659269aab761bb92ff32245aa2c1d758 180a3b58659269aab761bb92ff32245aa2c1d758 Samit Basu <basu.samit@gmail.com> 1781981779 -0700	checkout: moving from larger-hit-radius to alpha-testing
180a3b58659269aab761bb92ff32245aa2c1d758 bf3ccd7cae8c15362be9fae9da7edd69f1198592 Samit Basu <basu.samit@gmail.com> 1781981779 -0700	commit: Replace the selection frame with corner resize handles
bf3ccd7cae8c15362be9fae9da7edd69f1198592 0c53845e918e39e88644a1093758b756b7fc2d53 Samit Basu <basu.samit@gmail.com> 1781981957 -0700	commit: Select the new rectangle after creating it
0c53845e918e39e88644a1093758b756b7fc2d53 a2e19fa811c28909e92938d34e25868cbb8cfcba Samit Basu <basu.samit@gmail.com> 1781982211 -0700	commit: Move an unselected rect when a drag starts on it
a2e19fa811c28909e92938d34e25868cbb8cfcba 0352afa9cf8fcee847b89e2b3a4969cdee2ea6f6 Samit Basu <basu.samit@gmail.com> 1781982368 -0700	commit: Drag onto another shape moves and reselects it while one is selected
0352afa9cf8fcee847b89e2b3a4969cdee2ea6f6 f61351fad0dae24d07e04fdb1eaf278de740438d Samit Basu <basu.samit@gmail.com> 1781984053 -0700	commit: Remove the Move tool; pan via right/middle drag or shift+drag
f61351fad0dae24d07e04fdb1eaf278de740438d 709ae9d070dcbf0f2969ae42447eb58f1cf613e9 Samit Basu <basu.samit@gmail.com> 1781985046 -0700	commit: Start a marquee when dragging empty canvas with a shape selected
709ae9d070dcbf0f2969ae42447eb58f1cf613e9 a30fce1ebdc2f44194502571e4fae89952913c6c Samit Basu <basu.samit@gmail.com> 1781991802 -0700	commit: Give a single marquee-selected shape the full selection overlay
a30fce1ebdc2f44194502571e4fae89952913c6c 7dafc99f64b76af372a0709b8379d63f8db444a6 Samit Basu <basu.samit@gmail.com> 1781992436 -0700	commit: Delete a marquee multi-selection with the Delete key
7dafc99f64b76af372a0709b8379d63f8db444a6 cac3b291a5bec87d558bc8b29ca3dc2186496bc0 Samit Basu <basu.samit@gmail.com> 1781992630 -0700	commit: Suppress tool drag events during any pan gesture, not just shift
cac3b291a5bec87d558bc8b29ca3dc2186496bc0 8cd7ce0845f0a45b0558aacb2d7469bec7c04cbc Samit Basu <basu.samit@gmail.com> 1781993597 -0700	commit: Add undo/redo via egui's Undoer over document + navigation
8cd7ce0845f0a45b0558aacb2d7469bec7c04cbc 7b863feebc8e9f2ddd6f390efa6415e99e1f6a91 Samit Basu <basu.samit@gmail.com> 1781994079 -0700	commit: Move the Expand button to the toolbar next to Go Up
7b863feebc8e9f2ddd6f390efa6415e99e1f6a91 22078fe259f6d11079b1e54e6fced61426c79c2c Samit Basu <basu.samit@gmail.com> 1781994193 -0700	commit: Delete a selected pin with the Delete key
22078fe259f6d11079b1e54e6fced61426c79c2c 9593026da91ecfc42d7745540bc7f31ba5c5b015 Samit Basu <basu.samit@gmail.com> 1781994271 -0700	commit: Delete a marquee pin group with the Delete key
9593026da91ecfc42d7745540bc7f31ba5c5b015 4c116d578536a4e09c6ba5ba7d6966a01b021af7 Samit Basu <basu.samit@gmail.com> 1781994491 -0700	commit: Select a pin when the marquee touches its stub
4c116d578536a4e09c6ba5ba7d6966a01b021af7 58d2076d6d71ea66815ec9f441e21334f31897dc Samit Basu <basu.samit@gmail.com> 1781994869 -0700	commit: Render single-pin selection with the same frame as a pin group
58d2076d6d71ea66815ec9f441e21334f31897dc fee440d35f5e399fb06e57e715a38c418173d53a Samit Basu <basu.samit@gmail.com> 1781995008 -0700	commit: Select the new comment after creating it
fee440d35f5e399fb06e57e715a38c418173d53a 37ec300b2668e51fbb95745134d7bcf50543ebd8 Samit Basu <basu.samit@gmail.com> 1781995275 -0700	commit: Place a symbol at a default size on a click
37ec300b2668e51fbb95745134d7bcf50543ebd8 e981b6eaeef7735b6267f14997c34e705abbdc21 Samit Basu <basu.samit@gmail.com> 1781995842 -0700	commit: Edit text immediately after creating a comment or first route label
e981b6eaeef7735b6267f14997c34e705abbdc21 4968b490bc1c6efba8b2f6b62c576962607494a2 Samit Basu <basu.samit@gmail.com> 1781996400 -0700	commit: Let a selected shape's title be dragged to reposition it
4968b490bc1c6efba8b2f6b62c576962607494a2 2a3a6870083c4fcc1815b7b474eecbde0d4da9c9 Samit Basu <basu.samit@gmail.com> 1781996688 -0700	commit: Keep the shape selected after moving its title
2a3a6870083c4fcc1815b7b474eecbde0d4da9c9 a1b36fa73a996c80f962d7f6f586adde053c48fb Samit Basu <basu.samit@gmail.com> 1781997578 -0700	commit: Widen the pin tolerance for the routing tool
a1b36fa73a996c80f962d7f6f586adde053c48fb 59853f4b92c28e658033f54cf0114fef4799d73e Samit Basu <basu.samit@gmail.com> 1782002288 -0700	commit: Support click-drag routing from the start anchor
59853f4b92c28e658033f54cf0114fef4799d73e d44fe7051803f8894fc8c6ee13ceb1ab539e1ecf Samit Basu <basu.samit@gmail.com> 1782003004 -0700	commit: Frame a multi-selection with one box and no resize handles
d44fe7051803f8894fc8c6ee13ceb1ab539e1ecf 3df8b95705fce1cd2151990ca4ef36fcc32f04ac Samit Basu <basu.samit@gmail.com> 1782003368 -0700	commit: Keep the group frame and drop handles while dragging a multi-selection
3df8b95705fce1cd2151990ca4ef36fcc32f04ac 77fe35a3ec8324c52f0f5fec363be7f207b5eaf5 Samit Basu <basu.samit@gmail.com> 1782003983 -0700	commit: Cap short labels at 32 characters in the rename editors
77fe35a3ec8324c52f0f5fec363be7f207b5eaf5 7812423e2f08ad34db43ffc5377840329bf779f1 Samit Basu <basu.samit@gmail.com> 1782004073 -0700	commit: Inflate the multi-selection frame by GRID_SIZE/2
7812423e2f08ad34db43ffc5377840329bf779f1 5b8818c98fb2cae0277cf35cefe81a7e69ba53b3 Samit Basu <basu.samit@gmail.com> 1782004274 -0700	commit: Draw a dragged block's boundary with its own accent, not the drag accent
5b8818c98fb2cae0277cf35cefe81a7e69ba53b3 6f68cf9d1cd3baa498987a797defc22054051304 Samit Basu <basu.samit@gmail.com> 1782005579 -0700	commit: Show alignment guides while dragging shapes and pins
6f68cf9d1cd3baa498987a797defc22054051304 4201ef248cb0ad9b08eb7d15771e77ee09a7ce96 Samit Basu <basu.samit@gmail.com> 1782005622 -0700	commit: Update todo list
4201ef248cb0ad9b08eb7d15771e77ee09a7ce96 dc3b3ab8789728db12983cba0b8aa8a8486b0890 Samit Basu <basu.samit@gmail.com> 1782006651 -0700	commit: Refine alignment guides: dimmer, drawn under, fewer per port
dc3b3ab8789728db12983cba0b8aa8a8486b0890 cbed5b41d9dcfb5a6a589ca871cef08e567209bc Samit Basu <basu.samit@gmail.com> 1782007350 -0700	commit: Move the selection with the arrow keys
cbed5b41d9dcfb5a6a589ca871cef08e567209bc 46d72fe6ff11e9ff5dd1b6e3ee9b997bf58fc2a7 Samit Basu <basu.samit@gmail.com> 1782008709 -0700	commit: Add unit tests for the algorithm-backed fixes
46d72fe6ff11e9ff5dd1b6e3ee9b997bf58fc2a7 46d72fe6ff11e9ff5dd1b6e3ee9b997bf58fc2a7 Samit Basu <basu.samit@gmail.com> 1782071345 -0700	checkout: moving from alpha-testing to experimental-properties-panel
46d72fe6ff11e9ff5dd1b6e3ee9b997bf58fc2a7 0e9bc887f991514b07b12c6be0b8b2637e4dafd1 Samit Basu <basu.samit@gmail.com> 1782071355 -0700	commit: Add experimental properties panel (Figma-style inspector)
0e9bc887f991514b07b12c6be0b8b2637e4dafd1 46d72fe6ff11e9ff5dd1b6e3ee9b997bf58fc2a7 Samit Basu <basu.samit@gmail.com> 1782071360 -0700	checkout: moving from experimental-properties-panel to alpha-testing
46d72fe6ff11e9ff5dd1b6e3ee9b997bf58fc2a7 7f98b28d5baba4a28c5469b3e99ddcbeb417b3f8 Samit Basu <basu.samit@gmail.com> 1782145570 -0700	commit: Ignore editor config and scratch test documents
7f98b28d5baba4a28c5469b3e99ddcbeb417b3f8 54d2f9d149d9651cd35750b38a5cddee4392f402 Samit Basu <basu.samit@gmail.com> 1782145612 -0700	checkout: moving from alpha-testing to main
54d2f9d149d9651cd35750b38a5cddee4392f402 54d2f9d149d9651cd35750b38a5cddee4392f402 Samit Basu <basu.samit@gmail.com> 1782145661 -0700	checkout: moving from main to main
54d2f9d149d9651cd35750b38a5cddee4392f402 54d2f9d149d9651cd35750b38a5cddee4392f402 Samit Basu <basu.samit@gmail.com> 1782145677 -0700	checkout: moving from main to main
54d2f9d149d9651cd35750b38a5cddee4392f402 f2e6725ddcbaf33460d94d85c3529c4fc1079a76 Samit Basu <basu.samit@gmail.com> 1782145679 -0700	pull --ff-only origin main: Fast-forward
f2e6725ddcbaf33460d94d85c3529c4fc1079a76 f2e6725ddcbaf33460d94d85c3529c4fc1079a76 Samit Basu <basu.samit@gmail.com> 1782145688 -0700	checkout: moving from main to egui-0.34-migration
f2e6725ddcbaf33460d94d85c3529c4fc1079a76 5d999fe7b15aaea03f2bb56a16737b1e99add440 Samit Basu <basu.samit@gmail.com> 1782146302 -0700	commit: Migrate to egui/eframe 0.34
5d999fe7b15aaea03f2bb56a16737b1e99add440 f2e6725ddcbaf33460d94d85c3529c4fc1079a76 Samit Basu <basu.samit@gmail.com> 1782146333 -0700	checkout: moving from egui-0.34-migration to main
f2e6725ddcbaf33460d94d85c3529c4fc1079a76 4a8bf03a0c1ad2392c888e4cdd4edd4ac8a86cbe Samit Basu <basu.samit@gmail.com> 1782146335 -0700	pull --ff-only origin main: Fast-forward
4a8bf03a0c1ad2392c888e4cdd4edd4ac8a86cbe 4a8bf03a0c1ad2392c888e4cdd4edd4ac8a86cbe Samit Basu <basu.samit@gmail.com> 1782146344 -0700	checkout: moving from main to animated-new-pin-targets
4a8bf03a0c1ad2392c888e4cdd4edd4ac8a86cbe d9095f0d0e09614e4cdb7f7e2cdb14a0720568f7 Samit Basu <basu.samit@gmail.com> 1782147278 -0700	commit: Show animated new-pin targets on a selected block
d9095f0d0e09614e4cdb7f7e2cdb14a0720568f7 6db3e5595404de180372ccf01bf5ae2186d44153 Samit Basu <basu.samit@gmail.com> 1782154344 -0700	commit: Rework new-pin markers: growing blue ring + press-to-add
6db3e5595404de180372ccf01bf5ae2186d44153 2151ffea9567f377a45d6b996e648ee3bfe41869 Samit Basu <basu.samit@gmail.com> 1782157540 -0700	commit: Add drag-out-to-route mode for new-pin markers
2151ffea9567f377a45d6b996e648ee3bfe41869 4a8bf03a0c1ad2392c888e4cdd4edd4ac8a86cbe Samit Basu <basu.samit@gmail.com> 1782160923 -0700	checkout: moving from animated-new-pin-targets to main
4a8bf03a0c1ad2392c888e4cdd4edd4ac8a86cbe 1035e3c0d8574a72cef6ad54bf52755d7fb1b4d1 Samit Basu <basu.samit@gmail.com> 1782160925 -0700	pull --ff-only origin main: Fast-forward
1035e3c0d8574a72cef6ad54bf52755d7fb1b4d1 1035e3c0d8574a72cef6ad54bf52755d7fb1b4d1 Samit Basu <basu.samit@gmail.com> 1782162332 -0700	checkout: moving from main to main
1035e3c0d8574a72cef6ad54bf52755d7fb1b4d1 1035e3c0d8574a72cef6ad54bf52755d7fb1b4d1 Samit Basu <basu.samit@gmail.com> 1782162333 -0700	checkout: moving from main to pin-name-type-labels
1035e3c0d8574a72cef6ad54bf52755d7fb1b4d1 61715f2a71dc646f521aa9f02768d05aae55d2a3 Samit Basu <basu.samit@gmail.com> 1782163759 -0700	commit: Split pin labels into separate Name and Type fields
61715f2a71dc646f521aa9f02768d05aae55d2a3 e96de204b5c5035a9760156bcff2c02535ecd675 Samit Basu <basu.samit@gmail.com> 1782164805 -0700	commit: Fix pin name/type label overlap and unclickable type slot
e96de204b5c5035a9760156bcff2c02535ecd675 75fb877330982c0544facfd949787292bc4eed12 Samit Basu <basu.samit@gmail.com> 1782165826 -0700	commit: Center pin type a grid below the name; route pin-label double-clicks when a block is selected
75fb877330982c0544facfd949787292bc4eed12 1035e3c0d8574a72cef6ad54bf52755d7fb1b4d1 Samit Basu <basu.samit@gmail.com> 1782166162 -0700	checkout: moving from pin-name-type-labels to main
1035e3c0d8574a72cef6ad54bf52755d7fb1b4d1 8d5ed29a3beca6b7acbaef2a496c2c14950b6125 Samit Basu <basu.samit@gmail.com> 1782166163 -0700	pull --ff-only origin main: Fast-forward
8d5ed29a3beca6b7acbaef2a496c2c14950b6125 8d5ed29a3beca6b7acbaef2a496c2c14950b6125 Samit Basu <basu.samit@gmail.com> 1782190366 -0700	checkout: moving from main to route-tool-new-pin-targets
8d5ed29a3beca6b7acbaef2a496c2c14950b6125 b763dbd523b6217144d48de58a25903d93d0ad09 Samit Basu <basu.samit@gmail.com> 1782190393 -0700	commit: Route wires onto new pins materialized on the destination block
b763dbd523b6217144d48de58a25903d93d0ad09 8d5ed29a3beca6b7acbaef2a496c2c14950b6125 Samit Basu <basu.samit@gmail.com> 1782190515 -0700	checkout: moving from route-tool-new-pin-targets to main
8d5ed29a3beca6b7acbaef2a496c2c14950b6125 bab93ee7bf03e8d7163c2f703ffacd8c2a785809 Samit Basu <basu.samit@gmail.com> 1782190516 -0700	pull --ff-only origin main: Fast-forward
bab93ee7bf03e8d7163c2f703ffacd8c2a785809 bab93ee7bf03e8d7163c2f703ffacd8c2a785809 Samit Basu <basu.samit@gmail.com> 1782194742 -0700	checkout: moving from main to select-and-drag-handoff
bab93ee7bf03e8d7163c2f703ffacd8c2a785809 60edb6f0b760f93c5c457db49d32586d8fcb6889 Samit Basu <basu.samit@gmail.com> 1782194785 -0700	commit: Make selection handoff direct: drag-to-edit routes, click/drag onto any object
60edb6f0b760f93c5c457db49d32586d8fcb6889 bab93ee7bf03e8d7163c2f703ffacd8c2a785809 Samit Basu <basu.samit@gmail.com> 1782231440 -0700	checkout: moving from select-and-drag-handoff to main
bab93ee7bf03e8d7163c2f703ffacd8c2a785809 4e35025fb959bf51aa53907ed491107eed9dbdb6 Samit Basu <basu.samit@gmail.com> 1782231442 -0700	pull --ff-only origin main: Fast-forward
4e35025fb959bf51aa53907ed491107eed9dbdb6 4e35025fb959bf51aa53907ed491107eed9dbdb6 Samit Basu <basu.samit@gmail.com> 1782276690 -0700	checkout: moving from main to block-tab-edit-cycle
4e35025fb959bf51aa53907ed491107eed9dbdb6 8108278cf606939152b264d4fe069bcc2f7d0e26 Samit Basu <basu.samit@gmail.com> 1782276706 -0700	commit: Add a Tab-edit cycle for block text, plus wider pin spacing
8108278cf606939152b264d4fe069bcc2f7d0e26 4e35025fb959bf51aa53907ed491107eed9dbdb6 Samit Basu <basu.samit@gmail.com> 1782276932 -0700	checkout: moving from block-tab-edit-cycle to main
4e35025fb959bf51aa53907ed491107eed9dbdb6 d1d517db82cb9a31472f6711769ed9b19a9abb20 Samit Basu <basu.samit@gmail.com> 1782276933 -0700	pull --ff-only origin main: Fast-forward
d1d517db82cb9a31472f6711769ed9b19a9abb20 d1d517db82cb9a31472f6711769ed9b19a9abb20 Samit Basu <basu.samit@gmail.com> 1782279096 -0700	checkout: moving from main to route-start-hover-target
d1d517db82cb9a31472f6711769ed9b19a9abb20 c085ddf48637de23afef57be2b61b1fbfb8f81be Samit Basu <basu.samit@gmail.com> 1782279108 -0700	commit: Start routes from a hovered pin target in the select tool
c085ddf48637de23afef57be2b61b1fbfb8f81be d1d517db82cb9a31472f6711769ed9b19a9abb20 Samit Basu <basu.samit@gmail.com> 1782279306 -0700	checkout: moving from route-start-hover-target to main
d1d517db82cb9a31472f6711769ed9b19a9abb20 fca882ba33cb5563f955551693bc1bdf84114e2c Samit Basu <basu.samit@gmail.com> 1782279308 -0700	pull --ff-only origin main: Fast-forward
fca882ba33cb5563f955551693bc1bdf84114e2c fca882ba33cb5563f955551693bc1bdf84114e2c Samit Basu <basu.samit@gmail.com> 1782280729 -0700	checkout: moving from main to shift-extend-selection
fca882ba33cb5563f955551693bc1bdf84114e2c e4c791ff5615788b62386afc8d39c6c62f992f63 Samit Basu <basu.samit@gmail.com> 1782280745 -0700	commit: Extend selections with shift-click and shift-marquee
e4c791ff5615788b62386afc8d39c6c62f992f63 e4c791ff5615788b62386afc8d39c6c62f992f63 Samit Basu <basu.samit@gmail.com> 1782360328 -0700	reset: moving to HEAD
e4c791ff5615788b62386afc8d39c6c62f992f63 e6b8351751b464851d78b0beb907fc3ed23ca46d Samit Basu <basu.samit@gmail.com> 1782361862 -0700	commit: Start routes from pins on a selected block; tighten pin pitch
e6b8351751b464851d78b0beb907fc3ed23ca46d 28c9b814ed0e8ddbc2d2a84641a16ed04f6e9eb2 Samit Basu <basu.samit@gmail.com> 1782362039 -0700	checkout: moving from shift-extend-selection to cargo-fmt-repo
28c9b814ed0e8ddbc2d2a84641a16ed04f6e9eb2 5dfbd3fb6710aacf2df3905bea85cd5ff6dc74bf Samit Basu <basu.samit@gmail.com> 1782362082 -0700	commit: Apply cargo fmt across the repo
5dfbd3fb6710aacf2df3905bea85cd5ff6dc74bf fca882ba33cb5563f955551693bc1bdf84114e2c Samit Basu <basu.samit@gmail.com> 1782362233 -0700	checkout: moving from cargo-fmt-repo to main
fca882ba33cb5563f955551693bc1bdf84114e2c 78ff759cf93b438fadbd21d71b337b0621261670 Samit Basu <basu.samit@gmail.com> 1782362233 -0700	merge origin/main: Fast-forward
78ff759cf93b438fadbd21d71b337b0621261670 78ff759cf93b438fadbd21d71b337b0621261670 Samit Basu <basu.samit@gmail.com> 1782362272 -0700	checkout: moving from main to wip-changes
78ff759cf93b438fadbd21d71b337b0621261670 0000000000000000000000000000000000000000 Samit Basu <basu.samit@gmail.com> 1782363057 -0700	Branch: renamed refs/heads/wip-changes to refs/heads/edit-handoff-on-double-click
0000000000000000000000000000000000000000 78ff759cf93b438fadbd21d71b337b0621261670 Samit Basu <basu.samit@gmail.com> 1782363057 -0700	Branch: renamed refs/heads/wip-changes to refs/heads/edit-handoff-on-double-click
78ff759cf93b438fadbd21d71b337b0621261670 50552f21963876d5baade8bc23077ef3722c741a Samit Basu <basu.samit@gmail.com> 1782363077 -0700	commit: Hand off in-place edits to whatever is double-clicked
50552f21963876d5baade8bc23077ef3722c741a 78ff759cf93b438fadbd21d71b337b0621261670 Samit Basu <basu.samit@gmail.com> 1782363376 -0700	checkout: moving from edit-handoff-on-double-click to main
78ff759cf93b438fadbd21d71b337b0621261670 d425685b2b131af6ab8ace54adc546ef767c93b1 Samit Basu <basu.samit@gmail.com> 1782363378 -0700	merge origin/main: Fast-forward
d425685b2b131af6ab8ace54adc546ef767c93b1 d425685b2b131af6ab8ace54adc546ef767c93b1 Samit Basu <basu.samit@gmail.com> 1782363647 -0700	checkout: moving from main to textbox-line-wrap
d425685b2b131af6ab8ace54adc546ef767c93b1 0000000000000000000000000000000000000000 Samit Basu <basu.samit@gmail.com> 1782364542 -0700	Branch: renamed refs/heads/textbox-line-wrap to refs/heads/textbox-line-limit
0000000000000000000000000000000000000000 d425685b2b131af6ab8ace54adc546ef767c93b1 Samit Basu <basu.samit@gmail.com> 1782364542 -0700	Branch: renamed refs/heads/textbox-line-wrap to refs/heads/textbox-line-limit
d425685b2b131af6ab8ace54adc546ef767c93b1 95ae374be1b8a1723fcee4e7b777dfc76ce5bb58 Samit Basu <basu.samit@gmail.com> 1782364554 -0700	commit: Hard-limit text box lines and stand the editor in for the box
95ae374be1b8a1723fcee4e7b777dfc76ce5bb58 fb9b375b37aadf7026acea34c0b380d55143d5a2 Samit Basu <basu.samit@gmail.com> 1782366050 -0700	commit: Bound text boxes by a grid rectangle, not a character count
fb9b375b37aadf7026acea34c0b380d55143d5a2 c95b2a2168496508520370035eaaae1ef258c663 Samit Basu <basu.samit@gmail.com> 1782366548 -0700	commit: Disable egui multiline wrap so the width cap stops eating text
c95b2a2168496508520370035eaaae1ef258c663 dee547f89be64e11fb871ab4a972e920ddf94f98 Samit Basu <basu.samit@gmail.com> 1782367733 -0700	commit: Wrap text boxes at the grid width instead of truncating
dee547f89be64e11fb871ab4a972e920ddf94f98 dee547f89be64e11fb871ab4a972e920ddf94f98 Samit Basu <basu.samit@gmail.com> 1782403495 -0700	reset: moving to HEAD
dee547f89be64e11fb871ab4a972e920ddf94f98 d425685b2b131af6ab8ace54adc546ef767c93b1 Samit Basu <basu.samit@gmail.com> 1782403495 -0700	checkout: moving from textbox-line-limit to main
d425685b2b131af6ab8ace54adc546ef767c93b1 3d63e80743796c33e069fb3555de3043f78a3ddf Samit Basu <basu.samit@gmail.com> 1782403495 -0700	merge origin/main: Fast-forward
3d63e80743796c33e069fb3555de3043f78a3ddf 3d63e80743796c33e069fb3555de3043f78a3ddf Samit Basu <basu.samit@gmail.com> 1782408841 -0700	checkout: moving from main to dynamic-selection-overlay
3d63e80743796c33e069fb3555de3043f78a3ddf 177263f3f29e421e3aa61d0c1ca94ab7a23cf935 Samit Basu <basu.samit@gmail.com> 1782409245 -0700	commit: Place the selection overlay dynamically next to the selection
177263f3f29e421e3aa61d0c1ca94ab7a23cf935 b9a7c9c17cf1ee098b75119ab633a7863a467a5d Samit Basu <basu.samit@gmail.com> 1782410474 -0700	commit: Hide the overlay when below-placement would overlap the toolbar
b9a7c9c17cf1ee098b75119ab633a7863a467a5d b9a7c9c17cf1ee098b75119ab633a7863a467a5d Samit Basu <basu.samit@gmail.com> 1782421664 -0700	reset: moving to HEAD
b9a7c9c17cf1ee098b75119ab633a7863a467a5d 3d63e80743796c33e069fb3555de3043f78a3ddf Samit Basu <basu.samit@gmail.com> 1782421664 -0700	checkout: moving from dynamic-selection-overlay to main
3d63e80743796c33e069fb3555de3043f78a3ddf fd43de41fd8a02f97ed0d1c48e54f23fcf95b166 Samit Basu <basu.samit@gmail.com> 1782421666 -0700	merge origin/main: Fast-forward
fd43de41fd8a02f97ed0d1c48e54f23fcf95b166 fd43de41fd8a02f97ed0d1c48e54f23fcf95b166 Samit Basu <basu.samit@gmail.com> 1782421674 -0700	checkout: moving from main to navigation-tree
fd43de41fd8a02f97ed0d1c48e54f23fcf95b166 9468f1baf0ad1be4059941840b539b564a1502ca Samit Basu <basu.samit@gmail.com> 1782452894 -0700	pull --ff-only origin main: Fast-forward
9468f1baf0ad1be4059941840b539b564a1502ca 9468f1baf0ad1be4059941840b539b564a1502ca Samit Basu <basu.samit@gmail.com> 1782454559 -0700	checkout: moving from main to nav-and-overlay-improvements
9468f1baf0ad1be4059941840b539b564a1502ca e8b0eb218cc73ee604b607de699db0d51bf94677 Samit Basu <basu.samit@gmail.com> 1782538623 -0700	pull --ff-only origin main: Fast-forward
e8b0eb218cc73ee604b607de699db0d51bf94677 e8b0eb218cc73ee604b607de699db0d51bf94677 Samit Basu <basu.samit@gmail.com> 1782538634 -0700	checkout: moving from main to main
e8b0eb218cc73ee604b607de699db0d51bf94677 e8b0eb218cc73ee604b607de699db0d51bf94677 Samit Basu <basu.samit@gmail.com> 1782540537 -0700	checkout: moving from main to ui-fixup
e8b0eb218cc73ee604b607de699db0d51bf94677 4a8d671c09141951a394a2bdd7dd87c1c131ac49 Samit Basu <basu.samit@gmail.com> 1782568803 -0700	commit: Replace TRACKER.md with the ui-fixup checklist
4a8d671c09141951a394a2bdd7dd87c1c131ac49 6249f891a75f46bc7c72a1b4c2e2301b66d4977c Samit Basu <basu.samit@gmail.com> 1782568924 -0700	commit: Pre-select the route label when it is first added
6249f891a75f46bc7c72a1b4c2e2301b66d4977c 33499c8e4a3a5f7998bc7ccfc445ff37a51674fd Samit Basu <basu.samit@gmail.com> 1782568956 -0700	commit: Cap the text box editor so a long paste can't break layout
33499c8e4a3a5f7998bc7ccfc445ff37a51674fd 09739ef1b7b2cde10102a41ea4be437977952ce0 Samit Basu <basu.samit@gmail.com> 1782569029 -0700	commit: Show a placeholder in every empty text editor
1d2fde5568db760d1c00d12c358dd674bd0f7298 d5f911992f4f2e2f653775910b5639d5c4f2bd17 Samit Basu <basu.samit@gmail.com> 1782569479 -0700	commit: Animate resize handles like route/new-pin anchors
d5f911992f4f2e2f653775910b5639d5c4f2bd17 4bf58bfdd372debe976e2702ef6c531c67115f28 Samit Basu <basu.samit@gmail.com> 1782569665 -0700	commit: Open the symbol file dialog without blocking the app
4bf58bfdd372debe976e2702ef6c531c67115f28 f860f4ba2a26b7b3b9b041c175be09b96d401592 Samit Basu <basu.samit@gmail.com> 1782570308 -0700	commit: Add embedded PNG symbols alongside SVG
f860f4ba2a26b7b3b9b041c175be09b96d401592 453fc576601d46ead88dca55f30bbf2cb26e29bd Samit Basu <basu.samit@gmail.com> 1782570663 -0700	commit: Add a foreground/background layer to symbols
453fc576601d46ead88dca55f30bbf2cb26e29bd 453fc576601d46ead88dca55f30bbf2cb26e29bd Samit Basu <basu.samit@gmail.com> 1782571177 -0700	reset: moving to HEAD
453fc576601d46ead88dca55f30bbf2cb26e29bd 6340c2a6e91d4f295fabbe09ffe4bfab02920985 Samit Basu <basu.samit@gmail.com> 1782571302 -0700	commit: Add lockable blocks that freeze their pin/port interface
6340c2a6e91d4f295fabbe09ffe4bfab02920985 73784c08e1499436318180e5b69c2e9eb78adb9f Samit Basu <basu.samit@gmail.com> 1782576596 -0700	commit: Install a PNG decoder so embedded PNG symbols render
73784c08e1499436318180e5b69c2e9eb78adb9f a3b15836872176ea98588552dc16b2a5b1a423b2 Samit Basu <basu.samit@gmail.com> 1782576616 -0700	commit: Enlarge resting resize handles by 30%
a3b15836872176ea98588552dc16b2a5b1a423b2 1d9637d88be5548b3e5373a1c67822bddf7ea94d Samit Basu <basu.samit@gmail.com> 1782576976 -0700	commit: Hide pin placeholders on a locked block
1d9637d88be5548b3e5373a1c67822bddf7ea94d 412b5922f36f0a17d7b03d32b87efa56cd8145a2 Samit Basu <basu.samit@gmail.com> 1782576976 -0700	commit: Stop the route tool from adding pins to a locked block
412b5922f36f0a17d7b03d32b87efa56cd8145a2 f3a11441ce2d963ec65dda4122e27cd3a880fdfe Samit Basu <basu.samit@gmail.com> 1782577421 -0700	commit: Fix route label editor placement, placeholder, and delete-on-empty
f3a11441ce2d963ec65dda4122e27cd3a880fdfe e131eedeb08acc2dd53bbca6571ab0045a5e813f Samit Basu <basu.samit@gmail.com> 1782578194 -0700	commit: Add a block "type" label and empty-label placeholders
e131eedeb08acc2dd53bbca6571ab0045a5e813f 837fef7d90bbf3e3a31f930fbc11b1ca8123e9af Samit Basu <basu.samit@gmail.com> 1782578983 -0700	commit: Scale the selection overlay gap with zoom
837fef7d90bbf3e3a31f930fbc11b1ca8123e9af d53b3f9bd5501526d38c5f57505e59744eed931f Samit Basu <basu.samit@gmail.com> 1782579096 -0700	commit: Make empty block tag/type placeholders double-clickable
d53b3f9bd5501526d38c5f57505e59744eed931f bffdb93abaa6abd371a87931ab2a192aec03d821 Samit Basu <basu.samit@gmail.com> 1782597507 -0700	commit: Don't fit-to-view when double-clicking an uneditable target
bffdb93abaa6abd371a87931ab2a192aec03d821 4d76448569961cbebf2df2dea824bc93b95cf494 Samit Basu <basu.samit@gmail.com> 1782597507 -0700	commit: Keep the block type label within the rect's horizontal bounds
4d76448569961cbebf2df2dea824bc93b95cf494 4c73f303a7b606918433f0aa587a534c0d0825a5 Samit Basu <basu.samit@gmail.com> 1782597507 -0700	commit: Return to Select after adding a label to an already-labeled route
4c73f303a7b606918433f0aa587a534c0d0825a5 04d9be057c0aa0de426374f9c878a91babaeb44a Samit Basu <basu.samit@gmail.com> 1782609455 -0700	commit: Clamp all block labels to bounds during drag via shared code
04d9be057c0aa0de426374f9c878a91babaeb44a 6d6acd32d416be5fba143c7cc7c6f2859b352132 Samit Basu <basu.samit@gmail.com> 1782611081 -0700	commit: Disable the Add Port tool inside a locked block
6d6acd32d416be5fba143c7cc7c6f2859b352132 76475bef0db392e66aa9c26c10e613eedc1444f6 Samit Basu <basu.samit@gmail.com> 1782611294 -0700	commit: Make the dragged edge stick when resizing a port
76475bef0db392e66aa9c26c10e613eedc1444f6 f19101acd74c24b165e72953da3c86bb89ef72bd Samit Basu <basu.samit@gmail.com> 1782611779 -0700	commit: Show the pin "+tag" hint and make empty tags editable
f19101acd74c24b165e72953da3c86bb89ef72bd b7fe8ce41014adbac804419506e59fea441b83f8 Samit Basu <basu.samit@gmail.com> 1782611779 -0700	commit: Remove the redundant Add Pin Tag tool
b7fe8ce41014adbac804419506e59fea441b83f8 b7fe8ce41014adbac804419506e59fea441b83f8 Samit Basu <basu.samit@gmail.com> 1782611946 -0700	reset: moving to HEAD
b7fe8ce41014adbac804419506e59fea441b83f8 b7fe8ce41014adbac804419506e59fea441b83f8 Samit Basu <basu.samit@gmail.com> 1782612077 -0700	reset: moving to HEAD
b7fe8ce41014adbac804419506e59fea441b83f8 8d4d1a196fb33733d22edfc1409c6e459735b645 Samit Basu <basu.samit@gmail.com> 1782612435 -0700	commit: Animate route-tool anchor targets like the select tool
8d4d1a196fb33733d22edfc1409c6e459735b645 35e0cb84201799407d873efee5faea5f398ae8ee Samit Basu <basu.samit@gmail.com> 1782612435 -0700	commit: Nav widget: 3 editable columns, full search, collapse
c849af9552f7be5363aa5ea39892ad2adfba460a d2587c867a0227c252056726f0347f957f98779e Samit Basu <basu.samit@gmail.com> 1782620681 -0700	commit: Show empty-field hints for an individually selected pin
d2587c867a0227c252056726f0347f957f98779e d2587c867a0227c252056726f0347f957f98779e Samit Basu <basu.samit@gmail.com> 1782667254 -0700	reset: moving to HEAD
d2587c867a0227c252056726f0347f957f98779e 5b430edab027f933a8bc2d13436b0e67c42d20d1 Samit Basu <basu.samit@gmail.com> 1782667356 -0700	commit: Nav widget: wider panel, show name/type/tag, search across all
5b430edab027f933a8bc2d13436b0e67c42d20d1 47660b76d74ef59e7bcc2f49680a64948eb6c9b1 Samit Basu <basu.samit@gmail.com> 1782667368 -0700	commit: Always show the symbol resize ring control, animate on approach
47660b76d74ef59e7bcc2f49680a64948eb6c9b1 7c1489abc6341d122376865fc0f176f59b124cc4 Samit Basu <basu.samit@gmail.com> 1782669038 -0700	commit: Add a user-controllable per-element font size
7c1489abc6341d122376865fc0f176f59b124cc4 4007813cf724a094451f7fe77e4bbf5f30b400ca Samit Basu <basu.samit@gmail.com> 1782669439 -0700	commit: Slide the selection overlay sideways to clear obstacles before hiding
4007813cf724a094451f7fe77e4bbf5f30b400ca 0e696b46371c41be3db9ee86c5c705b11621ecc2 Samit Basu <basu.samit@gmail.com> 1782669731 -0700	commit: Add a Flip U/D action that vertically mirrors a block's pins
0e696b46371c41be3db9ee86c5c705b11621ecc2 4a7e2be042cdd0d639342214753747ec7b9eff3d Samit Basu <basu.samit@gmail.com> 1782691652 -0700	commit: Stop Delete/Backspace from deleting shapes
4a7e2be042cdd0d639342214753747ec7b9eff3d 0ced8f4e211559aedfd1a06fe0858fb1a115f830 Samit Basu <basu.samit@gmail.com> 1782700250 -0700	commit: Suppress canvas delete only while the nav filter has focus
0ced8f4e211559aedfd1a06fe0858fb1a115f830 af6907e8930825067001e1e2dfdcd2d8fda461ad Samit Basu <basu.samit@gmail.com> 1782708197 -0700	commit: Revert "Add a user-controllable per-element font size"
af6907e8930825067001e1e2dfdcd2d8fda461ad cc145b5e11d2f411f9555a0996c7d44005fd6262 Samit Basu <basu.samit@gmail.com> 1782709429 -0700	commit: Make text more readable
cc145b5e11d2f411f9555a0996c7d44005fd6262 604558ed194d273b4659d401a1386e4deee14e8a Samit Basu <basu.samit@gmail.com> 1782709477 -0700	commit: Fix bottom-side block labels overlapping the block rect
604558ed194d273b4659d401a1386e4deee14e8a 200a92d3ffbfdce948e792631f5988f0ecb40a6a Samit Basu <basu.samit@gmail.com> 1782710370 -0700	commit: Narrow the interactive zoom range to 0.25-4x
200a92d3ffbfdce948e792631f5988f0ecb40a6a 7c69220ed82217fb5168d54350c80ab47832a845 Samit Basu <basu.samit@gmail.com> 1782710370 -0700	commit: Update the test.svg sample render
df8ec08619da19dedb17b44a9130121e6a2bed2e 1ca2a470debad495a763fbf9387f41574278d7c1 Samit Basu <basu.samit@gmail.com> 1783145734 -0700	rebase (pick): Add KDL as a hand-editable document format alongside JSON
1ca2a470debad495a763fbf9387f41574278d7c1 f7a9ddbf1aeae066773681714583eaf699bbe3c3 Samit Basu <basu.samit@gmail.com> 1783145734 -0700	rebase (pick): Unify JSON+KDL serialization behind a schema module; drop the block tag
f7a9ddbf1aeae066773681714583eaf699bbe3c3 4626b25c914d8ff1d5f15cf4b0affaf00252ccd7 Samit Basu <basu.samit@gmail.com> 1783145734 -0700	rebase (pick): Compact pin/children schema: loc, fliplr, one-line children
4626b25c914d8ff1d5f15cf4b0affaf00252ccd7 7f9ead0a04f8794ffeade29b56bf6f977b4098e8 Samit Basu <basu.samit@gmail.com> 1783145734 -0700	rebase (pick): Replace knus with a hand-rolled span-tracking KDL parser
7f9ead0a04f8794ffeade29b56bf6f977b4098e8 7cae2596453defabec784a14422e8891d22150fa Samit Basu <basu.samit@gmail.com> 1783145734 -0700	rebase (pick): Slim the KDL: optional pin geometry, dir, decimals
7cae2596453defabec784a14422e8891d22150fa 7cae2596453defabec784a14422e8891d22150fa Samit Basu <basu.samit@gmail.com> 1783145734 -0700	rebase (finish): returning to refs/heads/kdl_v2
7cae2596453defabec784a14422e8891d22150fa 7cae2596453defabec784a14422e8891d22150fa Samit Basu <basu.samit@gmail.com> 1783185032 -0700	reset: moving to HEAD
7cae2596453defabec784a14422e8891d22150fa e8b0eb218cc73ee604b607de699db0d51bf94677 Samit Basu <basu.samit@gmail.com> 1783185033 -0700	checkout: moving from kdl_v2 to main
e8b0eb218cc73ee604b607de699db0d51bf94677 e8b0eb218cc73ee604b607de699db0d51bf94677 Samit Basu <basu.samit@gmail.com> 1783185192 -0700	reset: moving to HEAD
e8b0eb218cc73ee604b607de699db0d51bf94677 a2cca0da116ecbc12fe8e112b6be179f337755f1 Samit Basu <basu.samit@gmail.com> 1783185195 -0700	pull: Fast-forward
a2cca0da116ecbc12fe8e112b6be179f337755f1 a2cca0da116ecbc12fe8e112b6be179f337755f1 Samit Basu <basu.samit@gmail.com> 1783185491 -0700	checkout: moving from main to july_4
a2cca0da116ecbc12fe8e112b6be179f337755f1 6c91fd8aa0a4d3b4afeca8327ea0e3ac3fa93b02 Samit Basu <basu.samit@gmail.com> 1783185946 -0700	commit: Fix inverted lock/unlock icon on the selection overlay
6c91fd8aa0a4d3b4afeca8327ea0e3ac3fa93b02 7b0c701cd8151be3f952173e5058f0237dc396ae Samit Basu <basu.samit@gmail.com> 1783186143 -0700	commit: Disable the navigation path dropdown at the top of the hierarchy
7b0c701cd8151be3f952173e5058f0237dc396ae 1e7b3492d26c563aed3a21fd9bc296268aabbec6 Samit Basu <basu.samit@gmail.com> 1783186388 -0700	commit: Wash out locked blocks with a shifted palette
1e7b3492d26c563aed3a21fd9bc296268aabbec6 889c35931d75a84bcf5d9254c02c2467b8ddc22f Samit Basu <basu.samit@gmail.com> 1783186418 -0700	commit: Always highlight a toolbar tool, mapping sub-tools to their base
889c35931d75a84bcf5d9254c02c2467b8ddc22f 2002ce132f483354e6d0aad0f9c9e0eaa5afb9ee Samit Basu <basu.samit@gmail.com> 1783186623 -0700	commit: Use a trashcan icon for the overlay Delete button
2002ce132f483354e6d0aad0f9c9e0eaa5afb9ee fe79477a2f2ba4d1af803a8c09868a7c5ba781c4 Samit Basu <basu.samit@gmail.com> 1783186860 -0700	commit: Draw a padlock hint in a selected locked block's corner
fe79477a2f2ba4d1af803a8c09868a7c5ba781c4 f720c17a10e7e87158b96b4c684049b11d86c4d5 Samit Basu <basu.samit@gmail.com> 1783186901 -0700	commit: Replace expand/shrink icons with enter/exit chip+arrow icons
f720c17a10e7e87158b96b4c684049b11d86c4d5 2da68cf91f51ce2dc4ea8c5739ba2de10d7bc364 Samit Basu <basu.samit@gmail.com> 1783187192 -0700	commit: Render editor hint text at the editor's font, not egui's default
2da68cf91f51ce2dc4ea8c5739ba2de10d7bc364 5f847eeb7b138d79e71014e4dee76ed02b97e6eb Samit Basu <basu.samit@gmail.com> 1783187578 -0700	commit: Render a block's type smaller and one palette slot below the title
5f847eeb7b138d79e71014e4dee76ed02b97e6eb c66b237731beb766f21c1fd4ea79f7f739f4dcdb Samit Basu <basu.samit@gmail.com> 1783187600 -0700	commit: Show tool crosshair only while the pointer is over the canvas
c66b237731beb766f21c1fd4ea79f7f739f4dcdb 4f7885069b70e38339dd87215976806f1b84447e Samit Basu <basu.samit@gmail.com> 1783187752 -0700	commit: Enlarge the group-selection frame by one grid cell
4f7885069b70e38339dd87215976806f1b84447e e18bbfcc53a2d17825b290fcd2732d450641d2ab Samit Basu <basu.samit@gmail.com> 1783188304 -0700	commit: Paste an object/group at the cursor instead of a fixed offset
e18bbfcc53a2d17825b290fcd2732d450641d2ab ba71f2ed99e11cd52723ac505ed8bbcb68d480a2 Samit Basu <basu.samit@gmail.com> 1783188533 -0700	commit: Let a pasted/overlapping shape be dragged and keyboard-moved
ba71f2ed99e11cd52723ac505ed8bbcb68d480a2 25196f549c8f25c5842fd44ffef8d4caef85afdd Samit Basu <basu.samit@gmail.com> 1783188811 -0700	commit: Route an object paste out of a focused textbox to a normal paste
25196f549c8f25c5842fd44ffef8d4caef85afdd 25196f549c8f25c5842fd44ffef8d4caef85afdd Samit Basu <basu.samit@gmail.com> 1783188958 -0700	reset: moving to HEAD
25196f549c8f25c5842fd44ffef8d4caef85afdd 6ec9aac24a773730630ce5bbff124dc11c579459 Samit Basu <basu.samit@gmail.com> 1783189028 -0700	commit: Add parse/output methods on the schema model
6ec9aac24a773730630ce5bbff124dc11c579459 b651c00fc375265580d5d24860b93e744e9a2f8c Samit Basu <basu.samit@gmail.com> 1783192481 -0700	commit: Make the schema module standalone, free of document_ng
b651c00fc375265580d5d24860b93e744e9a2f8c c9d0695dfe6717340e33d1da7f172beb2fb7687b Samit Basu <basu.samit@gmail.com> 1783192746 -0700	commit: Add a Cut action alongside Copy on the selection overlay
c9d0695dfe6717340e33d1da7f172beb2fb7687b 870636c71a0518d507dcb6b3c27c793acddab9a8 Samit Basu <basu.samit@gmail.com> 1783192837 -0700	commit: Drop needless borrows in schema id validation
870636c71a0518d507dcb6b3c27c793acddab9a8 fa8c50b24c1a8189df4a6700b1a0cca6d036c1af Samit Basu <basu.samit@gmail.com> 1783195306 -0700	commit: Highlight Select (not Route) while editing a route
fa8c50b24c1a8189df4a6700b1a0cca6d036c1af e17520219aa3b2781a4add145064dc159c86e859 Samit Basu <basu.samit@gmail.com> 1783195318 -0700	commit: Show the crosshair cursor while the symbol tool is active
e17520219aa3b2781a4add145064dc159c86e859 64645ab6e776d96921ecf93021a99a1aae1c9460 Samit Basu <basu.samit@gmail.com> 1783195342 -0700	commit: Rework the enter/exit icons: sideways chip, arrow over the boundary
64645ab6e776d96921ecf93021a99a1aae1c9460 350bbf9c2e1d829479596a0bddeeb6501208e073 Samit Basu <basu.samit@gmail.com> 1783195650 -0700	commit: Test that copy/cut include only fully-internal routes
350bbf9c2e1d829479596a0bddeeb6501208e073 ab4b17a0cdf13ee9fa921017bdd00c83b5e227ee Samit Basu <basu.samit@gmail.com> 1783195666 -0700	commit: Show the accent control as a swatch of the current accent color
ab4b17a0cdf13ee9fa921017bdd00c83b5e227ee ab4b17a0cdf13ee9fa921017bdd00c83b5e227ee Samit Basu <basu.samit@gmail.com> 1783195940 -0700	reset: moving to HEAD
ab4b17a0cdf13ee9fa921017bdd00c83b5e227ee 5f1eedb8191b2210e4d0301e7ac053529f0769c9 Samit Basu <basu.samit@gmail.com> 1783196031 -0700	commit: Create a port when the add-port tool is dragged
5f1eedb8191b2210e4d0301e7ac053529f0769c9 6d35a9f71dbb6d19167cf60f50556b7024550151 Samit Basu <basu.samit@gmail.com> 1783196071 -0700	commit: Give locked blocks and the block type dedicated theme roles
6d35a9f71dbb6d19167cf60f50556b7024550151 6d35a9f71dbb6d19167cf60f50556b7024550151 Samit Basu <basu.samit@gmail.com> 1783196320 -0700	reset: moving to HEAD
6d35a9f71dbb6d19167cf60f50556b7024550151 b20da62d64630944113fe90a97e6083bf4754f70 Samit Basu <basu.samit@gmail.com> 1783196417 -0700	commit: Shape the locked corner hint like the lock icon
b20da62d64630944113fe90a97e6083bf4754f70 0273bec751476e1b465ae5c16230f85af8fd0b2c Samit Basu <basu.samit@gmail.com> 1783196465 -0700	commit: Add a live font-size editor behind --font-editor
0273bec751476e1b465ae5c16230f85af8fd0b2c 0273bec751476e1b465ae5c16230f85af8fd0b2c Samit Basu <basu.samit@gmail.com> 1783211201 -0700	reset: moving to HEAD
0273bec751476e1b465ae5c16230f85af8fd0b2c 5d8f0ac0ab714f58af847670d24f12959c47fa64 Samit Basu <basu.samit@gmail.com> 1783211376 -0700	commit: Add regression tests for pasting a nested subtree's routes
5d8f0ac0ab714f58af847670d24f12959c47fa64 5d8f0ac0ab714f58af847670d24f12959c47fa64 Samit Basu <basu.samit@gmail.com> 1783212043 -0700	reset: moving to HEAD
5d8f0ac0ab714f58af847670d24f12959c47fa64 2bf19f19ce67617fa1fbe8f59444c9f634015bc5 Samit Basu <basu.samit@gmail.com> 1783212112 -0700	commit: Omit same-level routes when copying a single block
2bf19f19ce67617fa1fbe8f59444c9f634015bc5 2bf19f19ce67617fa1fbe8f59444c9f634015bc5 Samit Basu <basu.samit@gmail.com> 1783212714 -0700	reset: moving to HEAD
2bf19f19ce67617fa1fbe8f59444c9f634015bc5 2413a423bb0b3f078dc3c008cebbaed971d8cd99 Samit Basu <basu.samit@gmail.com> 1783212904 -0700	commit: Shift pasted routes' waypoints with the group
2413a423bb0b3f078dc3c008cebbaed971d8cd99 a0dd3b9e1a9e078da6119de2d194fba6b1c3ce6e Samit Basu <basu.samit@gmail.com> 1783213129 -0700	commit: Move a fully-selected route's waypoints when the selection moves
a0dd3b9e1a9e078da6119de2d194fba6b1c3ce6e 58193e2dec1c511d6a58e12d0e0d93e57d4349f0 Samit Basu <basu.samit@gmail.com> 1783213898 -0700	commit: Preview offset waypoints live while dragging a selection
58193e2dec1c511d6a58e12d0e0d93e57d4349f0 e2548a982200e55e9dc12c92412d4c3804f4e5f3 Samit Basu <basu.samit@gmail.com> 1783267375 -0700	commit: Add web (wasm) deployment and cargo xtask helpers
e2548a982200e55e9dc12c92412d4c3804f4e5f3 2ff3dd8cd7f693eff210822721fc2e20cef3c508 Samit Basu <basu.samit@gmail.com> 1783270366 -0700	commit: Add `xtask autogen scale` KDL generator and format doc
2ff3dd8cd7f693eff210822721fc2e20cef3c508 76568cfb77e52e3c0a76d19cf07e7e5301f24fba Samit Basu <basu.samit@gmail.com> 1783275217 -0700	commit: Add tracing span instrumentation and performance findings
76568cfb77e52e3c0a76d19cf07e7e5301f24fba 8298dabdddb55f472f676f79651f73c2cd9b8faf Samit Basu <basu.samit@gmail.com> 1783278451 -0700	commit: Route document load once via a closed router (O(routes²) → O(routes))
8298dabdddb55f472f676f79651f73c2cd9b8faf f0c511fc18d252701431bbe7f4e0f4fb50430821 Samit Basu <basu.samit@gmail.com> 1783285034 -0700	commit: Route the drag/resize preview through the closed router (~95s → ~49ms/frame)
f0c511fc18d252701431bbe7f4e0f4fb50430821 b01fbd9456b98a9a060df0e3a611b8484ab593c3 Samit Basu <basu.samit@gmail.com> 1783285657 -0700	commit: Migrate live RouteTool to the closed router (~95s → ~44ms/frame)
b01fbd9456b98a9a060df0e3a611b8484ab593c3 cdc2834f02b05da0500a5dba63b9a74c7faa960c Samit Basu <basu.samit@gmail.com> 1783287342 -0700	commit: Index blocks per-axis for channel seeding (~8x faster seeding)
cdc2834f02b05da0500a5dba63b9a74c7faa960c 74a5f9deb3cae5c6e0394f79e8368b25e9b23792 Samit Basu <basu.samit@gmail.com> 1783288319 -0700	commit: Range-query the intersection sweep (collect_intersections 37% -> 16%)
74a5f9deb3cae5c6e0394f79e8368b25e9b23792 115fd3bc52810fbc09486234e2266f38d2b122f9 Samit Basu <basu.samit@gmail.com> 1783288902 -0700	commit: Drop the redundant second intersection sweep (frame ~26.6ms -> ~17.5ms)
115fd3bc52810fbc09486234e2266f38d2b122f9 89d5dfcee17f89b728f48e79caa0eedffa4327cf Samit Basu <basu.samit@gmail.com> 1783292151 -0700	commit: Cache the ClosedRouter across a RouteTool draw gesture
89d5dfcee17f89b728f48e79caa0eedffa4327cf b8b89812494c837ccaebe18a062426bb6f363af6 Samit Basu <basu.samit@gmail.com> 1783292445 -0700	commit: Cache the fixed route legs so every preview frame is ~free (8ms -> 170ns)
b8b89812494c837ccaebe18a062426bb6f363af6 13d16d7b6579650a3ddd8803b6877e922050aab5 Samit Basu <basu.samit@gmail.com> 1783296836 -0700	commit: Detect route crossings with a sweep-line instead of O(E^2)
13d16d7b6579650a3ddd8803b6877e922050aab5 5c9fde85cc422a0bab299a1a0e5506307c705aa6 Samit Basu <basu.samit@gmail.com> 1783297688 -0700	commit: Reuse the shared Event sweep primitive in compute_crossings
5c9fde85cc422a0bab299a1a0e5506307c705aa6 361bb97f78e925eaf1f8b517a057032ac58b6723 Samit Basu <basu.samit@gmail.com> 1783312981 -0700	commit: Persist route paths as corners; autoroute only new routes
361bb97f78e925eaf1f8b517a057032ac58b6723 c3ed96633576ff8f814535d4a7901db0dcbb219d Samit Basu <basu.samit@gmail.com> 1783349033 -0700	commit: Cull rendering and hit-testing with a shared spatial index
c3ed96633576ff8f814535d4a7901db0dcbb219d f5b9f8384d56949eb620b6e9f9d5a3fe9e0c18ea Samit Basu <basu.samit@gmail.com> 1783384237 -0700	commit: Split Symbol into a background Image shape and a block Icon
f5b9f8384d56949eb620b6e9f9d5a3fe9e0c18ea 710be2f0c4535ec8fe991c5d19585f663e06c214 Samit Basu <basu.samit@gmail.com> 1783395868 -0700	commit: Free-size icons/images, contain icons, alignment guides, and split block passes
710be2f0c4535ec8fe991c5d19585f663e06c214 17c5944cd16c5130fc7554e0f4ac003e8f64cf82 Samit Basu <basu.samit@gmail.com> 1783396692 -0700	commit: Snap image/icon resize to the intrinsic aspect ratio with a guide
17c5944cd16c5130fc7554e0f4ac003e8f64cf82 6071951faa812076437988e9bfb7421c643781ed Samit Basu <basu.samit@gmail.com> 1783403044 -0700	commit: Restrict pin alignment guides to rows; give ports tip/back columns
6071951faa812076437988e9bfb7421c643781ed 18be66210ed2aef9f317611eac3fce72e082336b Samit Basu <basu.samit@gmail.com> 1783403080 -0700	commit: Show alignment guides while resizing
18be66210ed2aef9f317611eac3fce72e082336b e455f366fd8cdbacd33aead1d87deeaa190fc772 Samit Basu <basu.samit@gmail.com> 1783453323 -0700	commit: Snap image/icon resize edges to alignment (resize magnetism)
e455f366fd8cdbacd33aead1d87deeaa190fc772 7a26e132f28d3887f0087c92a54b64e221716e79 Samit Basu <basu.samit@gmail.com> 1783453395 -0700	commit: DRY the resize and alignment pipelines
7a26e132f28d3887f0087c92a54b64e221716e79 01389a288122e0c0b3a27945fa65332fc5182074 Samit Basu <basu.samit@gmail.com> 1783483722 -0700	commit: Export opens a save dialog (SVG/PNG/JSON/KDL)
01389a288122e0c0b3a27945fa65332fc5182074 402f947893d27f62a6410ee168fc9eef87b9ffb1 Samit Basu <basu.samit@gmail.com> 1783483804 -0700	commit: Esc cancels the active tool back to selection
402f947893d27f62a6410ee168fc9eef87b9ffb1 54b105530d456ff4abd0d5b45fef13295027bfef Samit Basu <basu.samit@gmail.com> 1783483881 -0700	commit: Route hit test picks the closest route in radius
54b105530d456ff4abd0d5b45fef13295027bfef 65cf5c3f585b49c26c8ec647ee8d436c7fc511d7 Samit Basu <basu.samit@gmail.com> 1783484108 -0700	commit: Anchor the route selection overlay at the click
65cf5c3f585b49c26c8ec647ee8d436c7fc511d7 93072b9ab73ff6eb17cdf13a5f9a332aed49d53c Samit Basu <basu.samit@gmail.com> 1783484295 -0700	commit: Add a Reroute button to the route selection overlay
93072b9ab73ff6eb17cdf13a5f9a332aed49d53c 91bed004dd0da3b499ca8229f9d84c1fa356ee77 Samit Basu <basu.samit@gmail.com> 1783484585 -0700	commit: Draw a single hop at doubled route crossings
91bed004dd0da3b499ca8229f9d84c1fa356ee77 5faa0df395f931635adc92872a84005cce6820b3 Samit Basu <basu.samit@gmail.com> 1783486936 -0700	commit: Preview the add-port box and edit its name on drop
5faa0df395f931635adc92872a84005cce6820b3 5a4671dd4826e74f4fc866be61b6b283e0d2794b Samit Basu <basu.samit@gmail.com> 1783487033 -0700	commit: Keep routes hoverable at their corners
5a4671dd4826e74f4fc866be61b6b283e0d2794b e51181335380dfbccb3b9150e709501a30b94bd5 Samit Basu <basu.samit@gmail.com> 1783487355 -0700	commit: Pick export format from a submenu; PNG works on web
e51181335380dfbccb3b9150e709501a30b94bd5 430d7631dfe26d5d539018d7f3c8a92ab6c193d3 Samit Basu <basu.samit@gmail.com> 1783487638 -0700	commit: Download web exports automatically, no "click to download"
430d7631dfe26d5d539018d7f3c8a92ab6c193d3 9d47ccc647722d53bfe4d3d454014950af3dd12d Samit Basu <basu.samit@gmail.com> 1783488078 -0700	commit: Show a freshly committed route without needing an input nudge
9d47ccc647722d53bfe4d3d454014950af3dd12d eb35d40094fbc1fd24f39c8893c51863d0751098 Samit Basu <basu.samit@gmail.com> 1783488779 -0700	commit: Edit a new port's name right after it's created from a + target
eb35d40094fbc1fd24f39c8893c51863d0751098 e34abc32971e7565d5634537e514db0163eab051 Samit Basu <basu.samit@gmail.com> 1783488787 -0700	commit: Edit a new block's name right after creating it
e34abc32971e7565d5634537e514db0163eab051 8da0e9089a9fca62268c8303d0d1f756aa2a1bc9 Samit Basu <basu.samit@gmail.com> 1783489103 -0700	commit: Note resvg is already pulled by egui_extras
8da0e9089a9fca62268c8303d0d1f756aa2a1bc9 6e09ab2ed04f06d11fe7b1adf4e0f3d1f00916a6 Samit Basu <basu.samit@gmail.com> 1783727411 -0700	commit: Clean up waypoints when blocks, ports, or pins are dragged
6e09ab2ed04f06d11fe7b1adf4e0f3d1f00916a6 14e71d78df0699a38f373fd6168b5d3f0ac09f72 Samit Basu <basu.samit@gmail.com> 1783784653 -0700	commit: Import diagrams/images, embed diagrams in PNG/SVG, export a selection
14e71d78df0699a38f373fd6168b5d3f0ac09f72 7f3b123a8605e1ac5bb1dcd0e5cd00ac274e8b4b Samit Basu <basu.samit@gmail.com> 1783788217 -0700	commit: Drop the confusing "Remove icon" button from the block overlay
7f3b123a8605e1ac5bb1dcd0e5cd00ac274e8b4b 13f301eca10ef574266e67145a89dd20d528ae65 Samit Basu <basu.samit@gmail.com> 1783868498 -0700	commit: Keep a dragged route's waypoints in sync with its corners
13f301eca10ef574266e67145a89dd20d528ae65 f53ff8009715fc79bd6804f51be77e7e5d7c2616 Samit Basu <basu.samit@gmail.com> 1783868521 -0700	commit: Re-approach routes on flip L/R and U/D like a drag
f53ff8009715fc79bd6804f51be77e7e5d7c2616 c61149fad7768d98b2831564a4d004f6f96820ab Samit Basu <basu.samit@gmail.com> 1783879902 -0700	commit: Hop every route crossing a point, in one shared orientation
c61149fad7768d98b2831564a4d004f6f96820ab c61149fad7768d98b2831564a4d004f6f96820ab Samit Basu <basu.samit@gmail.com> 1783881884 -0700	checkout: moving from july_4 to nav-tree-view
c61149fad7768d98b2831564a4d004f6f96820ab 97ab97f726efe83c8134e533e85dfbf373b9a071 Samit Basu <basu.samit@gmail.com> 1783882585 -0700	commit: Prototype a whole-document tree view for the nav overlay
45ef06999dcc26154bb41893508d308ee6299c2b bef08421349d4a1a4ab4598b77d7111ae15dd8d9 Samit Basu <basu.samit@gmail.com> 1784174043 -0700	commit: Clamp block labels inside the box at render time
bef08421349d4a1a4ab4598b77d7111ae15dd8d9 bff8d22ba67b191bd982a56f9fc299b7ab5e257b Samit Basu <basu.samit@gmail.com> 1784174428 -0700	commit: Enforce a minimum block width of 4 grid cells on resize
bff8d22ba67b191bd982a56f9fc299b7ab5e257b 821c093bd89efe843ff8dbc21c43ce6ac97e2a62 Samit Basu <basu.samit@gmail.com> 1784181608 -0700	commit: Route straight legs around a block instead of hugging its gutter
821c093bd89efe843ff8dbc21c43ce6ac97e2a62 b3e2b882c326b8cb53b40ab79528203a3bc55094 Samit Basu <basu.samit@gmail.com> 1784264888 -0700	commit: Make single-segment routes draggable, without hugging the gutter
b3e2b882c326b8cb53b40ab79528203a3bc55094 7c064582d8aa585a86ccd15705d8812092c943e2 Samit Basu <basu.samit@gmail.com> 1784266058 -0700	commit: Keep a route label in place when the route is edited
7c064582d8aa585a86ccd15705d8812092c943e2 709b2a44f6578d9fc28fb371813da6fc041f8a7b Samit Basu <basu.samit@gmail.com> 1784267848 -0700	commit: Nav-tree cleanup: keyboard, top bar, and resize
709b2a44f6578d9fc28fb371813da6fc041f8a7b e5e5834e4185cc3be6499e8aaf2501daab767532 Samit Basu <basu.samit@gmail.com> 1784268644 -0700	commit: Keep the UI chrome on the Basic font; theme font styles only the drawing
e5e5834e4185cc3be6499e8aaf2501daab767532 1d2f6275e2acff96d367bdd7082cd64591b1d7da Samit Basu <basu.samit@gmail.com> 1784271547 -0700	commit: Add a block-level Reroute button
1d2f6275e2acff96d367bdd7082cd64591b1d7da bf93bd210efee98166775dcbd4286e790b8f48df Samit Basu <basu.samit@gmail.com> 1784310187 -0700	commit: Add a drag-to-route hint on pin markers, shared with existing pins
bf93bd210efee98166775dcbd4286e790b8f48df bf93bd210efee98166775dcbd4286e790b8f48df Samit Basu <basu.samit@gmail.com> 1784311426 -0700	reset: moving to HEAD
bf93bd210efee98166775dcbd4286e790b8f48df 9d4b8e31c31206b1f966543a120f500a11f54e12 Samit Basu <basu.samit@gmail.com> 1784311554 -0700	commit: Flatten the gear menu to Mode/Theme/Font/Zoom
9d4b8e31c31206b1f966543a120f500a11f54e12 4b50a9d3f770f786918a1b675e65d3af0f52a23f Samit Basu <basu.samit@gmail.com> 1784319459 -0700	commit: Replace toolbar and overlay text buttons with SVG icons
4b50a9d3f770f786918a1b675e65d3af0f52a23f ba2afa89366dc2c44f38572888a873ca0d578ebc Samit Basu <basu.samit@gmail.com> 1784334623 -0700	commit: Move Add Icon, Add Route Label, and history off the toolbar
ba2afa89366dc2c44f38572888a873ca0d578ebc ba2afa89366dc2c44f38572888a873ca0d578ebc Samit Basu <basu.samit@gmail.com> 1784775687 -0700	reset: moving to HEAD
ba2afa89366dc2c44f38572888a873ca0d578ebc 59bfed4c0fd17091705e0d63c4261cc846b9ffc0 Samit Basu <basu.samit@gmail.com> 1784775687 -0700	rebase (start): checkout origin/main
59bfed4c0fd17091705e0d63c4261cc846b9ffc0 be117d90f90a329f31e6066956f755c2e8cde1c2 Samit Basu <basu.samit@gmail.com> 1784775687 -0700	rebase (pick): Clamp block labels inside the box at render time
be117d90f90a329f31e6066956f755c2e8cde1c2 00d31b810d4ac1e131fe65c54a83095e5860ded9 Samit Basu <basu.samit@gmail.com> 1784775687 -0700	rebase (pick): Enforce a minimum block width of 4 grid cells on resize
00d31b810d4ac1e131fe65c54a83095e5860ded9 6f186f60995fa8fc308cecebf6223f76fc95dabd Samit Basu <basu.samit@gmail.com> 1784775687 -0700	rebase (pick): Route straight legs around a block instead of hugging its gutter
6f186f60995fa8fc308cecebf6223f76fc95dabd edeba5b0bf962821cc13e31666dc34320bb30365 Samit Basu <basu.samit@gmail.com> 1784775687 -0700	rebase (pick): Make single-segment routes draggable, without hugging the gutter
edeba5b0bf962821cc13e31666dc34320bb30365 50913937a6a30cc575b9ed22503045a614f75b63 Samit Basu <basu.samit@gmail.com> 1784775687 -0700	rebase (pick): Keep a route label in place when the route is edited
50913937a6a30cc575b9ed22503045a614f75b63 f0458e61087779905d54a2ad14c376c4e5ba249f Samit Basu <basu.samit@gmail.com> 1784775687 -0700	rebase (pick): Nav-tree cleanup: keyboard, top bar, and resize
f0458e61087779905d54a2ad14c376c4e5ba249f aac2d1876751dbc2d93799a13532ebdc66033312 Samit Basu <basu.samit@gmail.com> 1784775687 -0700	rebase (pick): Keep the UI chrome on the Basic font; theme font styles only the drawing
aac2d1876751dbc2d93799a13532ebdc66033312 721be27a21851f35b3e642b76611afb055f59801 Samit Basu <basu.samit@gmail.com> 1784775687 -0700	rebase (pick): Add a block-level Reroute button
721be27a21851f35b3e642b76611afb055f59801 078685a3e0ab2c3f266e384c122228b7dbf2c8b0 Samit Basu <basu.samit@gmail.com> 1784775687 -0700	rebase (pick): Add a drag-to-route hint on pin markers, shared with existing pins
078685a3e0ab2c3f266e384c122228b7dbf2c8b0 c3626f19a9fbefdf609b14331c882637dbf050b3 Samit Basu <basu.samit@gmail.com> 1784775687 -0700	rebase (pick): Flatten the gear menu to Mode/Theme/Font/Zoom
c3626f19a9fbefdf609b14331c882637dbf050b3 ffc34ddcd3c69eeb48be212fc602f020b7c7c312 Samit Basu <basu.samit@gmail.com> 1784775687 -0700	rebase (pick): Replace toolbar and overlay text buttons with SVG icons
ffc34ddcd3c69eeb48be212fc602f020b7c7c312 82a5b70604fbe385eb9eea9779ae22ea4b8857c5 Samit Basu <basu.samit@gmail.com> 1784775687 -0700	rebase (pick): Move Add Icon, Add Route Label, and history off the toolbar
82a5b70604fbe385eb9eea9779ae22ea4b8857c5 82a5b70604fbe385eb9eea9779ae22ea4b8857c5 Samit Basu <basu.samit@gmail.com> 1784775687 -0700	rebase (finish): returning to refs/heads/july_4
82a5b70604fbe385eb9eea9779ae22ea4b8857c5 1f482d8c412d38ea8de68b18de37b0cf1392c4d7 Samit Basu <basu.samit@gmail.com> 1785209585 -0700	checkout: moving from july_4 to origin/July_26
1f482d8c412d38ea8de68b18de37b0cf1392c4d7 1f482d8c412d38ea8de68b18de37b0cf1392c4d7 Samit Basu <basu.samit@gmail.com> 1785209599 -0700	checkout: moving from 1f482d8c412d38ea8de68b18de37b0cf1392c4d7 to July_26
1f482d8c412d38ea8de68b18de37b0cf1392c4d7 1f482d8c412d38ea8de68b18de37b0cf1392c4d7 Samit Basu <basu.samit@gmail.com> 1785210354 -0700	reset: moving to HEAD
1f482d8c412d38ea8de68b18de37b0cf1392c4d7 3a2ebc2b9efd2448d07f16d96104deeb9c2b69ab Samit Basu <basu.samit@gmail.com> 1785215055 -0700	commit: Frame the tutorial template when fitting the view
3a2ebc2b9efd2448d07f16d96104deeb9c2b69ab 60324303418f39f7b5c86c39bdda242c15b5a447 Samit Basu <basu.samit@gmail.com> 1785215064 -0700	commit: Place a new block with two clicks as well as a drag
60324303418f39f7b5c86c39bdda242c15b5a447 c94fadf505095b13e533cb0055c6b9fe8b4f7674 Samit Basu <basu.samit@gmail.com> 1785215075 -0700	commit: Tutorial: level-builder DSL, typing cue, legible chrome, resize level
c94fadf505095b13e533cb0055c6b9fe8b4f7674 894d30569f82a56135b7dd760450ffc120e539c7 Samit Basu <basu.samit@gmail.com> 1785215084 -0700	commit: Plan the stage-gated tutorial redesign
894d30569f82a56135b7dd760450ffc120e539c7 23d665271f06d378eb32e64f8b00d3967635ac2b Samit Basu <basu.samit@gmail.com> 1785215158 -0700	commit: Extract Tool::from_name from the toolbar
23d665271f06d378eb32e64f8b00d3967635ac2b 28356faa89e6156968a528d3a202a67777b36f89 Samit Basu <basu.samit@gmail.com> 1785215360 -0700	commit: Resolve cue targets against the live document
28356faa89e6156968a528d3a202a67777b36f89 567cb678c4e05df2461d15c8849096da861c1bbd Samit Basu <basu.samit@gmail.com> 1785216178 -0700	commit: Stage-gated levels with a headless runner proving each demo
567cb678c4e05df2461d15c8849096da861c1bbd 0aa6460581acd95c3411c170770fa84d53c33e05 Samit Basu <basu.samit@gmail.com> 1785263063 -0700	commit: Replan the tutorial as an open-loop video player window
0aa6460581acd95c3411c170770fa84d53c33e05 bcc73840a8e59cd03f6646ceaa944b91fca5e9c7 Samit Basu <basu.samit@gmail.com> 1785264110 -0700	commit: Fold the template removal, KDL levels, and chrome strategy into the plan
bcc73840a8e59cd03f6646ceaa944b91fca5e9c7 b39b10c699ae5a6d8125e09b9f96db9d033f32de Samit Basu <basu.samit@gmail.com> 1785265411 -0700	commit: Unwind the closed-loop tutorial and move levels to single-file KDL
b39b10c699ae5a6d8125e09b9f96db9d033f32de f80e252627926ea8e88c139f1f73b5b22b69e73d Samit Basu <basu.samit@gmail.com> 1785266441 -0700	commit: Play tutorials in a video-player window backed by a real session
f80e252627926ea8e88c139f1f73b5b22b69e73d 50c4ad264f404d23310643ccb6890f30f94c9d5d Samit Basu <basu.samit@gmail.com> 1785266486 -0700	commit: Rewrite the level-authoring guide for KDL levels and the player
50c4ad264f404d23310643ccb6890f30f94c9d5d 2f93c7da4176a3c6177b339a651ba380afc194d7 Samit Basu <basu.samit@gmail.com> 1785270647 -0700	commit: Frame tutorial levels with the demo's camera rect
2f93c7da4176a3c6177b339a651ba380afc194d7 3a4891f21969b36f848d164f8400d4fba817d1d6 Samit Basu <basu.samit@gmail.com> 1785271665 -0700	commit: Migrate the toolbar off Area and into the tutorial video
3a4891f21969b36f848d164f8400d4fba817d1d6 07f178e4d1d1b86dfc4e5b2721cc8e92474bf93f Samit Basu <basu.samit@gmail.com> 1785271953 -0700	commit: Migrate the history overlay and selection buttons off Area
07f178e4d1d1b86dfc4e5b2721cc8e92474bf93f 380bbb1c60f1d740c8b3abe5be7e6644f8cd2e29 Samit Basu <basu.samit@gmail.com> 1785272197 -0700	commit: Make the navigator a real egui::Window
380bbb1c60f1d740c8b3abe5be7e6644f8cd2e29 a0171cbfa04cabfa3787ffa324f5aa716adcdb17 Samit Basu <basu.samit@gmail.com> 1785272216 -0700	commit: Mark V2 landed in the plan
a0171cbfa04cabfa3787ffa324f5aa716adcdb17 5b509271e0c171758606c29d9f75beb04897ec3b Samit Basu <basu.samit@gmail.com> 1785273060 -0700	commit: Light up hover affordances in the tutorial video
5b509271e0c171758606c29d9f75beb04897ec3b 890d323e1620b9adc34201975ef066bb14024de2 Samit Basu <basu.samit@gmail.com> 1785273939 -0700	commit: Record tutorial levels by driving the UI (--record-tutorial)
890d323e1620b9adc34201975ef066bb14024de2 1aa75e9c12a1bdeffbbb492cba9a4702448aaf97 Samit Basu <basu.samit@gmail.com> 1785273964 -0700	commit: Document the recorder workflow
1aa75e9c12a1bdeffbbb492cba9a4702448aaf97 ead28ad8f4d27e6126c7b5c545b9619d1b461578 Samit Basu <basu.samit@gmail.com> 1785296513 -0700	commit: Make Capture Initial the recording boundary
ead28ad8f4d27e6126c7b5c545b9619d1b461578 94bae54f52c68477979716d3da9e412a6c95be35 Samit Basu <basu.samit@gmail.com> 1785297321 -0700	commit: Add --replay for eyeballing a recorded level, and dump the divergence
94bae54f52c68477979716d3da9e412a6c95be35 5dfc5c30047ff5080c6751b8a16cb25aa5fe5c6d Samit Basu <basu.samit@gmail.com> 1785381962 -0700	commit: Plan the script debugger for level authoring
5dfc5c30047ff5080c6751b8a16cb25aa5fe5c6d 0d879d4d59d3fcfda0ef229081459a5b732d3692 Samit Basu <basu.samit@gmail.com> 1785382585 -0700	commit: Revise the script-debugger plan: halt on errors, core engine, animated run
0d879d4d59d3fcfda0ef229081459a5b732d3692 d8e0cdce6e7648b493276c7d76f2bfe250b8cda6 Samit Basu <basu.samit@gmail.com> 1785383580 -0700	commit: Lift the script engine to crate::script and build the debugger core
d8e0cdce6e7648b493276c7d76f2bfe250b8cda6 3b003b95d8c298e0c427ca1bab4b350704ef9eed Samit Basu <basu.samit@gmail.com> 1785384169 -0700	commit: Show the script debugger window and mirror its state onto the canvas
3b003b95d8c298e0c427ca1bab4b350704ef9eed 8bc4c0201ec813de9a159ea15999c3e9759c6989 Samit Basu <basu.samit@gmail.com> 1785386173 -0700	commit: Author levels with --replay and an --author footer; cull the debugger
8bc4c0201ec813de9a159ea15999c3e9759c6989 99fd38768ca564f83e1529b12eb65320e9733c10 Samit Basu <basu.samit@gmail.com> 1785388011 -0700	commit: Level syntax v2: initial files, script commands, logical targets, goldens
99fd38768ca564f83e1529b12eb65320e9733c10 2917f24e91853d877237be74308752cc73de0eb9 Samit Basu <basu.samit@gmail.com> 1785388516 -0700	commit: Give --replay the screen
2917f24e91853d877237be74308752cc73de0eb9 b4fc979a8df70972648ed85be79b89f414eaaa96 Samit Basu <basu.samit@gmail.com> 1785389388 -0700	commit: Resolve pin targets to the pin tip, not the stem base
b4fc979a8df70972648ed85be79b89f414eaaa96 f8a75d0b2675c28e5afc487e492daefc9fd7808f Samit Basu <basu.samit@gmail.com> 1785466516 -0700	commit: Play --replay through the main UI; --author records script commands
f8a75d0b2675c28e5afc487e492daefc9fd7808f ebbc0aaa876686148613cf17b29a012f587020bd Samit Basu <basu.samit@gmail.com> 1785466838 -0700	commit: Differential drag destinations: drag "b1" "+4,-3"
ebbc0aaa876686148613cf17b29a012f587020bd 1ee78a9cbf343158b7bd1c42ec3ce84e64c37792 Samit Basu <basu.samit@gmail.com> 1785468350 -0700	commit: Render level-file errors as miette reports with source spans
1ee78a9cbf343158b7bd1c42ec3ce84e64c37792 5c81efe4357a0871e7ed5bac58c9a71ba625f573 Samit Basu <basu.samit@gmail.com> 1785468350 -0700	commit: Cue polish: badge only while a button is active; longer click presses
5c81efe4357a0871e7ed5bac58c9a71ba625f573 e1db7148f0084eb6ee766df7f1dae35281e14de3 Samit Basu <basu.samit@gmail.com> 1785469196 -0700	commit: Inline the initial document in the level file, under the script
e1db7148f0084eb6ee766df7f1dae35281e14de3 dfabdcab96f61e795a9923357f875ab730c72cd8 Samit Basu <basu.samit@gmail.com> 1785470712 -0700	commit: Merge replay into read-only author mode; scripted route-start
dfabdcab96f61e795a9923357f875ab730c72cd8 e359b22712ef959561e965ef4c6cc6b921a53b2a Samit Basu <basu.samit@gmail.com> 1785597132 -0700	commit: Add the press level to Interaction; rebuild press affordances on it
e359b22712ef959561e965ef4c6cc6b921a53b2a 6986f1bc22cab80a1a23a2fb76e5fc58db113444 Samit Basu <basu.samit@gmail.com> 1785599381 -0700	commit: Typed scalars: Duration everywhere, Bounded<B> for Progress/Zoom/lengths
6986f1bc22cab80a1a23a2fb76e5fc58db113444 35a151bc57a8a3f3a1b62b208ea2b945c341170d Samit Basu <basu.samit@gmail.com> 1785606401 -0700	commit: One canonical hit resolver: Drawing::resolve_at_pos encodes the z-order
35a151bc57a8a3f3a1b62b208ea2b945c341170d 4a68dbfa472d61b9cdf835baf22064ae4b50b85a Samit Basu <basu.samit@gmail.com> 1785607277 -0700	commit: App's mode is a type: Mode enum for Editing/Tutorial/Replay/Authoring
4a68dbfa472d61b9cdf835baf22064ae4b50b85a 8e9c8f004cbffa99043b93226af116b9e67a639f Samit Basu <basu.samit@gmail.com> 1785607714 -0700	commit: CLAUDE.md: portable engineering practices, project notes separated
8e9c8f004cbffa99043b93226af116b9e67a639f b752aa98fa38bf77c7957503f8c2f7f732876d89 Samit Basu <basu.samit@gmail.com> 1785608309 -0700	commit: Decompose App::ui into named phases; one Popup; mutate_and_reroute
b752aa98fa38bf77c7957503f8c2f7f732876d89 b752aa98fa38bf77c7957503f8c2f7f732876d89 Samit Basu <basu.samit@gmail.com> 1785610203 -0700	reset: moving to HEAD
b752aa98fa38bf77c7957503f8c2f7f732876d89 82dc89908bfa9e102f86ce0ff8c804b46c6bac5d Samit Basu <basu.samit@gmail.com> 1785610438 -0700	commit: One sim-frame engine: SimDriver + SimClock replace three copied drivers
82dc89908bfa9e102f86ce0ff8c804b46c6bac5d f93be26a7dbd00dbd558194b7fdea4cafc10f0e2 Samit Basu <basu.samit@gmail.com> 1785612187 -0700	commit: Split the Drawing facade; generation-stamped spatial invalidation
f93be26a7dbd00dbd558194b7fdea4cafc10f0e2 21b946ec6256ecb38dd05db0ac3730babd380733 Samit Basu <basu.samit@gmail.com> 1785613868 -0700	commit: Typed lengths cross the Renderer boundary; opacity is a swatch transform
21b946ec6256ecb38dd05db0ac3730babd380733 fb6a823685b410964c33d7a9fb2963c434138586 Samit Basu <basu.samit@gmail.com> 1785614549 -0700	commit: SVG text lays out with epaint galleys; the hand-rolled layout is gone
fb6a823685b410964c33d7a9fb2963c434138586 48d5a2413809e343080c186b62910a0e96d32ff0 Samit Basu <basu.samit@gmail.com> 1785615107 -0700	commit: Split View::show; four editor-feedback bools become one struct
48d5a2413809e343080c186b62910a0e96d32ff0 9fbee7ef2adab549f46ee44338078aa1a9d27bde Samit Basu <basu.samit@gmail.com> 1785615796 -0700	commit: Rot sweep: document_ng -> document, one logging channel, drift guards
9fbee7ef2adab549f46ee44338078aa1a9d27bde a3c30ea2ceeca3331298e006492e00bf555121bd Samit Basu <basu.samit@gmail.com> 1785616582 -0700	commit: Accept the expanded first-route golden
a3c30ea2ceeca3331298e006492e00bf555121bd d57655712e43443c3d3a31057d4e935964fe37ae Samit Basu <basu.samit@gmail.com> 1785616987 -0700	commit: Make cargo xtask ci the pre-commit gate; format the tree to pass it
d57655712e43443c3d3a31057d4e935964fe37ae c949dc5a2483c20694386f4979fa01a40b500b2d Samit Basu <basu.samit@gmail.com> 1785619970 -0700	commit: Plan the tutorial set; commands become the seam scripts and users share
c949dc5a2483c20694386f4979fa01a40b500b2d ce6cc2a2f0fe612fc02e94fcb812efa49921fb18 Samit Basu <basu.samit@gmail.com> 1785621215 -0700	commit: Command registry: availability policy encoded once, overlays become views
ce6cc2a2f0fe612fc02e94fcb812efa49921fb18 3a3562cee4fc8e8b3ee5b273f3a5bdcdc5cb5a9f Samit Basu <basu.samit@gmail.com> 1785622428 -0700	commit: Command palette: fuzzy search over the registry, plus block navigation
3a3562cee4fc8e8b3ee5b273f3a5bdcdc5cb5a9f 6ffe6128c1b3cc04fdd87df38e4dbc365759281d Samit Basu <basu.samit@gmail.com> 1785624141 -0700	commit: Rename joins the palette; block rows say find
6ffe6128c1b3cc04fdd87df38e4dbc365759281d 323ce2851279b96bfc43de6101234c32b5992971 Samit Basu <basu.samit@gmail.com> 1785625301 -0700	commit: Committing an in-place edit keeps the object selected
323ce2851279b96bfc43de6101234c32b5992971 83f525952cdf6c1c2d1e2df4b0d7745dcbd75df2 Samit Basu <basu.samit@gmail.com> 1785626167 -0700	commit: Palette: scroll to the highlight only when it moves
83f525952cdf6c1c2d1e2df4b0d7745dcbd75df2 5719ccc82546a9e2c67cd9d2dc7d892175bba69f Samit Basu <basu.samit@gmail.com> 1785627843 -0700	commit: Camera steps glide: `camera ... secs=` eases the view between framings
5719ccc82546a9e2c67cd9d2dc7d892175bba69f e1d9bc6ee4bde4968cb8eb8156bc70f453d715d1 Samit Basu <basu.samit@gmail.com> 1785628321 -0700	commit: Script `command` step: levels invoke registry commands by name
e1d9bc6ee4bde4968cb8eb8156bc70f453d715d1 c29c9cbbebd7492b69c2fe9023c8222a4d933bdf Samit Basu <basu.samit@gmail.com> 1785630499 -0700	commit: Repaint-hammer audit: throttle dialog polls, guard the chrome
c29c9cbbebd7492b69c2fe9023c8222a4d933bdf 8f43e8be60c781b9addbea70d3e75c03be2c053d Samit Basu <basu.samit@gmail.com> 1785687795 -0700	commit: Toolbar key bindings: one chord table, consumed through the registry
8f43e8be60c781b9addbea70d3e75c03be2c053d c614b612aa1c54b505159c82ba1582d51799ac6a Samit Basu <basu.samit@gmail.com> 1785689398 -0700	commit: Title the window after the edited file; fix the port name editor's home
c614b612aa1c54b505159c82ba1582d51799ac6a d2547b2fd845883c9469bc200ce962bd62ec0813 Samit Basu <basu.samit@gmail.com> 1785690064 -0700	commit: Labels hit and edit where they draw; a sweep guards every editor
d2547b2fd845883c9469bc200ce962bd62ec0813 673bf2d5b3c362eb12f499aa0035635bea77366b Samit Basu <basu.samit@gmail.com> 1785690500 -0700	commit: xtask tutorial init/golden and xtask replay: the level-authoring loop
673bf2d5b3c362eb12f499aa0035635bea77366b 11d8251786f69ee80f261f33cd01343f51e7ba2b Samit Basu <basu.samit@gmail.com> 1785691441 -0700	commit: Give top blocks a real default size instead of w=0
11d8251786f69ee80f261f33cd01343f51e7ba2b c1cc20087f37c9ea5b68fe50d18a9893f8b93770 Samit Basu <basu.samit@gmail.com> 1785691841 -0700	commit: Default top blocks to 16 grid cells tall
c1cc20087f37c9ea5b68fe50d18a9893f8b93770 7cb1ee16540bad10cfc0f7cd3595e340cf380424 Samit Basu <basu.samit@gmail.com> 1785693529 -0700	commit: Resize feedback: size readout, live icon, icon-sized floor
7cb1ee16540bad10cfc0f7cd3595e340cf380424 90fdaa745e34164b0b3a682b08bc75c1ebc3fdf0 Samit Basu <basu.samit@gmail.com> 1785706845 -0700	commit: Pan with space (or ctrl) + left-drag, and cue held keys in tutorials
90fdaa745e34164b0b3a682b08bc75c1ebc3fdf0 eb01489285a88aafc66a3c27c48c7a7d4e4556d5 Samit Basu <basu.samit@gmail.com> 1785707254 -0700	commit: Pan on space only; drop the ctrl/⌘ drag
eb01489285a88aafc66a3c27c48c7a7d4e4556d5 c686f590a2ce4c8a33528f79be8f0d5140e93d6f Samit Basu <basu.samit@gmail.com> 1785708436 -0700	commit: todo: the chrome pass (toolbar, navigator, breadcrumb)
c686f590a2ce4c8a33528f79be8f0d5140e93d6f 127e9ff3194f6166f0ecb348aefe2cab23ca30c1 Samit Basu <basu.samit@gmail.com> 1785708812 -0700	commit: Put the debug-marks checkbox behind a non-default ui_debug feature
127e9ff3194f6166f0ecb348aefe2cab23ca30c1 05090d573a4fdc6a59ae04d3016f3775916a94b8 Samit Basu <basu.samit@gmail.com> 1785708971 -0700	commit: Give Import an icon: the export tray with the arrow coming in
05090d573a4fdc6a59ae04d3016f3775916a94b8 87c6c1303319df0c7054411b191fe4d8b9c64e9d Samit Basu <basu.samit@gmail.com> 1785709230 -0700	commit: Move Exit Block to the toolbar; leave the corner cluster to history
87c6c1303319df0c7054411b191fe4d8b9c64e9d dd4d0c6cd0b5d1cce899f953092127997b6902ef Samit Basu <basu.samit@gmail.com> 1785709468 -0700	commit: Rename the enter-block command to expand
dd4d0c6cd0b5d1cce899f953092127997b6902ef defcd29234ba7200996bc153e4dcb4f978bb8640 Samit Basu <basu.samit@gmail.com> 1785709728 -0700	commit: Palette: expand <block> rows for the current level
defcd29234ba7200996bc153e4dcb4f978bb8640 a202b052c489d1c7e5c90f09cb1a3f8742e48007 Samit Basu <basu.samit@gmail.com> 1785710163 -0700	commit: Navigator becomes a popup under the compass, with the filter inline
a202b052c489d1c7e5c90f09cb1a3f8742e48007 2eb6fd2dc58244b8f1c4ee2e10e6d2d30a6d6172 Samit Basu <basu.samit@gmail.com> 1785710523 -0700	commit: Address bar: back/forward plus a clickable block-path breadcrumb
2eb6fd2dc58244b8f1c4ee2e10e6d2d30a6d6172 30af075a2c545be15ff13be7f06d400dfb52a4ce Samit Basu <basu.samit@gmail.com> 1785712714 -0700	commit: One two-row toolbar: navigation over tools
30af075a2c545be15ff13be7f06d400dfb52a4ce 7aac7fb63a6fea9b143f2c3985397cedb03634d3 Samit Basu <basu.samit@gmail.com> 1785719587 -0700	commit: Content path as a plain string; toolbar back to one row
7aac7fb63a6fea9b143f2c3985397cedb03634d3 8f3eda58a5eadbd58f3825299aa03e656d5ab54c Samit Basu <basu.samit@gmail.com> 1785729873 -0700	commit: Content path: drop the prefix, make it selectable
8f3eda58a5eadbd58f3825299aa03e656d5ab54c fd5a0452e17d615f24f0a744830f88241f9b82ca Samit Basu <basu.samit@gmail.com> 1785730129 -0700	commit: Fit-to-content: a 4-cell gutter and a zoom cap
fd5a0452e17d615f24f0a744830f88241f9b82ca 3a02ab60e30f773c9f0e9b5fafb24f85d2ff6e21 Samit Basu <basu.samit@gmail.com> 1785732620 -0700	commit: Navigation cluster in the bottom-right; export needs a block
3a02ab60e30f773c9f0e9b5fafb24f85d2ff6e21 99637a645bb00276289a56f797fa35dc8de25889 Samit Basu <basu.samit@gmail.com> 1785817292 -0700	commit: Zoom: pinch and ctrl-wheel, plus keyboard steps and fit
99637a645bb00276289a56f797fa35dc8de25889 5d221c4ccd25e45e9dade63807bc9599238297d2 Samit Basu <basu.samit@gmail.com> 1785819619 -0700	commit: Store the editor's level in the document as an optional path node
5d221c4ccd25e45e9dade63807bc9599238297d2 7bf0a516807ab9bdeca43fa4596374309845159a Samit Basu <basu.samit@gmail.com> 1785819929 -0700	commit: Persist the camera per document; add a camera palette verb
7bf0a516807ab9bdeca43fa4596374309845159a 17a708a96d450618fa50a5f1c2418cf77e317642 Samit Basu <basu.samit@gmail.com> 1785855851 -0700	commit: Reject a stored camera that no longer frames what it framed
17a708a96d450618fa50a5f1c2418cf77e317642 eed60ed3b813deb04cf38d258d8ab8eb753f6cbd Samit Basu <basu.samit@gmail.com> 1785872596 -0700	commit: Revert the stored path and camera persistence
eed60ed3b813deb04cf38d258d8ab8eb753f6cbd c29c96dd24588d291675292d18743d2184b2a46d Samit Basu <basu.samit@gmail.com> 1785873692 -0700	commit: Restore the camera palette verb
c29c96dd24588d291675292d18743d2184b2a46d 32f1165e087558ac0c1ee19174a4df855fe4ad43 Samit Basu <basu.samit@gmail.com> 1785903532 -0700	commit: Store images once and reference them by id
32f1165e087558ac0c1ee19174a4df855fe4ad43 43250052e5ab527d8cc4492cc5af6c0b4978039e Samit Basu <basu.samit@gmail.com> 1785947415 -0700	commit: Plan the persistent-history container format
43250052e5ab527d8cc4492cc5af6c0b4978039e cb16649c80bb2ee4b100251b865b19c94d8bcb47 Samit Basu <basu.samit@gmail.com> 1785953225 -0700	commit: Fold the web document model into the history plan
cb16649c80bb2ee4b100251b865b19c94d8bcb47 5dadc4f48e7226eff79dcafd6ea167b3e5911ce5 Samit Basu <basu.samit@gmail.com> 1785953391 -0700	commit: Move version and name into root.kdl, dropping meta.kdl
5dadc4f48e7226eff79dcafd6ea167b3e5911ce5 5b77759530bc7a754556b3ffe5b8307814874d23 Samit Basu <basu.samit@gmail.com> 1785968349 -0700	commit: Write files atomically, never through the target
5b77759530bc7a754556b3ffe5b8307814874d23 9a4fbdd2a945805f6742692d5ca4fa006cac4839 Samit Basu <basu.samit@gmail.com> 1785971798 -0700	commit: Give the document a format version and a name
9a4fbdd2a945805f6742692d5ca4fa006cac4839 ded6b3b4cf4f22f4373fbf3c44deba0669f922c2 Samit Basu <basu.samit@gmail.com> 1785972604 -0700	commit: Open a directory as a document container
ded6b3b4cf4f22f4373fbf3c44deba0669f922c2 56d0d8d7e89203a8db8274a2c2c1722e9e517529 Samit Basu <basu.samit@gmail.com> 1785973213 -0700	commit: Convert a loose file into a container
56d0d8d7e89203a8db8274a2c2c1722e9e517529 d7f1639a9256e3216fe8b28bcd7ac59c99b4a600 Samit Basu <basu.samit@gmail.com> 1785973646 -0700	commit: Derive asset ids from content
d7f1639a9256e3216fe8b28bcd7ac59c99b4a600 6ab6cc8894ca80c0636a84494efedb2588526bc7 Samit Basu <basu.samit@gmail.com> 1785974299 -0700	commit: Keep container images as files, not inline payloads
6ab6cc8894ca80c0636a84494efedb2588526bc7 7b7eb499bc7fb6931be115677c451b5e8e8dba58 Samit Basu <basu.samit@gmail.com> 1785974929 -0700	commit: Name what an edit touched
7b7eb499bc7fb6931be115677c451b5e8e8dba58 36c4e566c3f9f7e2aa1db624b956613c6eb90848 Samit Basu <basu.samit@gmail.com> 1785975142 -0700	commit: Spell a route's endpoints absolutely
36c4e566c3f9f7e2aa1db624b956613c6eb90848 8fd51e777d98500d5ddbf4bacc9d863f11e92979 Samit Basu <basu.samit@gmail.com> 1785975943 -0700	commit: Store history as deflated snapshots with sidecars
8fd51e777d98500d5ddbf4bacc9d863f11e92979 1e5384292384e66cd1da88eee853b4a6a404e00e Samit Basu <basu.samit@gmail.com> 1785976526 -0700	commit: Autosave a container as you edit
1e5384292384e66cd1da88eee853b4a6a404e00e 17eff1720e0dee3832e587fc5f6117f07ee726f0 Samit Basu <basu.samit@gmail.com> 1785981820 -0700	commit: Label history entries, and record each opening
17eff1720e0dee3832e587fc5f6117f07ee726f0 bf61e11262059e8f429536f0d925594ad5455d77 Samit Basu <basu.samit@gmail.com> 1785982508 -0700	commit: Pack a container into a single zip
bf61e11262059e8f429536f0d925594ad5455d77 ec0bb8c732b149cd00f4995d0283b88f5345b000 Samit Basu <basu.samit@gmail.com> 1785983301 -0700	commit: Browse and restore a document's history
ec0bb8c732b149cd00f4995d0283b88f5345b000 8af5b1b6dfe9905517f1749621db20bfdb7f2980 Samit Basu <basu.samit@gmail.com> 1785983823 -0700	commit: Let only one session write to a container
8af5b1b6dfe9905517f1749621db20bfdb7f2980 8d24327f3d92eaed3d3e893a34fa9429ef66f634 Samit Basu <basu.samit@gmail.com> 1785987480 -0700	commit: Reclaim space in a container, on request
8d24327f3d92eaed3d3e893a34fa9429ef66f634 dd901922250b01a60a91d94d3f5a5b52b2964d3d Samit Basu <basu.samit@gmail.com> 1785990115 -0700	commit: Put the timeline where the rest of the history is
dd901922250b01a60a91d94d3f5a5b52b2964d3d 59bfed4c0fd17091705e0d63c4261cc846b9ffc0 Samit Basu <basu.samit@gmail.com> 1786227812 -0700	checkout: moving from July_26 to main
59bfed4c0fd17091705e0d63c4261cc846b9ffc0 9850cef45810c8c62c4979cf33703e7e9dded1ae Samit Basu <basu.samit@gmail.com> 1786227812 -0700	merge origin/main: Fast-forward
9850cef45810c8c62c4979cf33703e7e9dded1ae 9850cef45810c8c62c4979cf33703e7e9dded1ae Samit Basu <basu.samit@gmail.com> 1786231592 -0700	checkout: moving from main to collab-document-log
9850cef45810c8c62c4979cf33703e7e9dded1ae 2470bff92f6b0b67046f567f4ec9551699d23262 Samit Basu <basu.samit@gmail.com> 1786231800 -0700	commit: Add the collaborative-document design spec and migration playbook
2470bff92f6b0b67046f567f4ec9551699d23262 b9f7ee9aa937593ebe1e35bb115db45707d7e69b Samit Basu <basu.samit@gmail.com> 1786242014 -0700	commit: Add the change-log engine: LWW registers, a change DAG, and a convergence suite
b9f7ee9aa937593ebe1e35bb115db45707d7e69b 0d9720694cc570234fc4d7a6f7e4c453f5999f1b Samit Basu <basu.samit@gmail.com> 1786242677 -0700	commit: Move optionality from register values onto the registers themselves
0d9720694cc570234fc4d7a6f7e4c453f5999f1b 63697eb23fcb592f59683f8404d4eae8c00c06a2 Samit Basu <basu.samit@gmail.com> 1786247092 -0700	commit: Give the convergence suite teeth, and record the phase 1 review
63697eb23fcb592f59683f8404d4eae8c00c06a2 a0e5d68588160fd8184488b482edcd42beeefdea Samit Basu <basu.samit@gmail.com> 1786247339 -0700	commit: Make a change's parents a set, and refuse non-canonical ones on decode
a0e5d68588160fd8184488b482edcd42beeefdea 5b91df815e0ff986a16c99dc0d085134c0b9fb2a Samit Basu <basu.samit@gmail.com> 1786247563 -0700	commit: Consume the ChangeBuilder when sealing it
5b91df815e0ff986a16c99dc0d085134c0b9fb2a 21137637cde9fa93bc75d01c7273cde4721240aa Samit Basu <basu.samit@gmail.com> 1786247619 -0700	commit: Record why the encoding is hand-written rather than serde + bincode
21137637cde9fa93bc75d01c7273cde4721240aa 21137637cde9fa93bc75d01c7273cde4721240aa Samit Basu <basu.samit@gmail.com> 1786248432 -0700	checkout: moving from collab-document-log to spike/serde-change-log
21137637cde9fa93bc75d01c7273cde4721240aa 21137637cde9fa93bc75d01c7273cde4721240aa Samit Basu <basu.samit@gmail.com> 1786249265 -0700	reset: moving to HEAD
21137637cde9fa93bc75d01c7273cde4721240aa c9af676d8500cbc326c5a08d90e509561d47639a Samit Basu <basu.samit@gmail.com> 1786249286 -0700	commit: Spike: serde + JSON for the change log, with a versioned envelope
c9af676d8500cbc326c5a08d90e509561d47639a a88623dffbb60d909e10dd38ed26a87f568d2b6c Samit Basu <basu.samit@gmail.com> 1786250760 -0700	commit: Derive PropTag, PropWrite and PropChange from one register list
a88623dffbb60d909e10dd38ed26a87f568d2b6c 3b0d38a0a3651b5ab555800038420f6806e615e8 Samit Basu <basu.samit@gmail.com> 1786424977 -0700	commit: Inventory every document edit; add doc_ng, the model to replace src/log's
3b0d38a0a3651b5ab555800038420f6806e615e8 3ed18d1fef05e8bfa0a04a8c2bb6b939b06bc1ba Samit Basu <basu.samit@gmail.com> 1786464344 -0700	commit: Re-scope the migration: Layer A now, Layer B deferred; doc_ng survives
3ed18d1fef05e8bfa0a04a8c2bb6b939b06bc1ba 21137637cde9fa93bc75d01c7273cde4721240aa Samit Basu <basu.samit@gmail.com> 1786464350 -0700	checkout: moving from spike/serde-change-log to collab-document-log
21137637cde9fa93bc75d01c7273cde4721240aa 3ed18d1fef05e8bfa0a04a8c2bb6b939b06bc1ba Samit Basu <basu.samit@gmail.com> 1786464350 -0700	merge spike/serde-change-log: Fast-forward
3ed18d1fef05e8bfa0a04a8c2bb6b939b06bc1ba b8b73d72ea076d318659057c61f35ac9c0dc57a7 Samit Basu <basu.samit@gmail.com> 1786496515 -0700	commit: Add the manual port playbook; restructure doc_ng; drop WriteOrder and z-order
b8b73d72ea076d318659057c61f35ac9c0dc57a7 cb09585fba3b66d9408952ea2c8988219c679776 Samit Basu <basu.samit@gmail.com> 1786685518 -0700	commit: Pivot to a server-centric design; rewrite the collaboration docs
cb09585fba3b66d9408952ea2c8988219c679776 3154244cabd21691ed36165845ccd813dd904e10 Samit Basu <basu.samit@gmail.com> 1786719171 -0700	commit: Land the ordering + nomenclature checkpoint in doc_ng (WIP; CI skipped)
3154244cabd21691ed36165845ccd813dd904e10 49f96382ecf3cae5445576d8c279a8ce921fcdad Samit Basu <basu.samit@gmail.com> 1786747451 -0700	commit: Port steps 1+2: Rev replaces Stamp; the Commit envelope
49f96382ecf3cae5445576d8c279a8ce921fcdad 9cada5bd64fb5702006db336ffb0a1256d4dcba9 Samit Basu <basu.samit@gmail.com> 1786748423 -0700	commit: Port step 3: updates carry only the new value; Swap and Invert deleted
9cada5bd64fb5702006db336ffb0a1256d4dcba9 384345667a8401adc33dcf63c8405491cd6f96f7 Samit Basu <basu.samit@gmail.com> 1786751391 -0700	commit: Port step 4: the entity trait - from_init + apply for every kind
384345667a8401adc33dcf63c8405491cd6f96f7 a249bfd0e21d2766cbdef150bfcc896cbe48ca32 Samit Basu <basu.samit@gmail.com> 1786817832 -0700	commit: Port step 5 (fold half): the atomic fold on an immutable interior
a249bfd0e21d2766cbdef150bfcc896cbe48ca32 03556d7bd3077d65c5ab44f71070aa03777ed697 Samit Basu <basu.samit@gmail.com> 1786829061 -0700	commit: Port step 5, validate half: commit-end validation and the cycle check
e80a8d989c9351352b25e47780beb4a1cac005e3 c01e0994428c49f89d1ce66069e079574833f68a Samit Basu <basu.samit@gmail.com> 1786847108 -0700	commit: Step 6 re-scoped: BlockCache on demand replaces DocumentCache
c01e0994428c49f89d1ce66069e079574833f68a 2e288327f75a8f800d459c5ad543664253e3e290 Samit Basu <basu.samit@gmail.com> 1786848394 -0700	commit: Step 6 settled: DocumentCache built per frame, borrowing the document
2e288327f75a8f800d459c5ad543664253e3e290 c169ab2a34eb4066225aa38dd9f59649376bde88 Samit Basu <basu.samit@gmail.com> 1786853572 -0700	commit: Correct step 7's spec: one chronological order for every consumer
c169ab2a34eb4066225aa38dd9f59649376bde88 a4c1f71b5ecb2e2c10e746f73962c8f00827fa84 Samit Basu <basu.samit@gmail.com> 1786854025 -0700	commit: Port step 7: max_order on entities, ticked
a4c1f71b5ecb2e2c10e746f73962c8f00827fa84 41ddbfa8dcd122a8aa9706a9fcd7f0efd6e45f40 Samit Basu <basu.samit@gmail.com> 1786898348 -0700	commit: The entity! macro: four shapes from one field list
41ddbfa8dcd122a8aa9706a9fcd7f0efd6e45f40 79ed804fe5bd6ade3169542c0e0b6c172e4707c2 Samit Basu <basu.samit@gmail.com> 1786899076 -0700	commit: TitleBlock: the singleton's registers become a generated entity
79ed804fe5bd6ade3169542c0e0b6c172e4707c2 fd01226b7e6110d72d27b33ea93143b4b9a841bf Samit Basu <basu.samit@gmail.com> 1786917547 -0700	commit: doc_ng: finish the transplant — sessions, encoding, reconciliation, demolition
fd01226b7e6110d72d27b33ea93143b4b9a841bf 588bb130d3bd1490392433daf56245fca9763a52 Samit Basu <basu.samit@gmail.com> 1786918626 -0700	commit: Phase 3: extract the document model into crates/doc
588bb130d3bd1490392433daf56245fca9763a52 b82a02a7adc217c2bb7c0490429dbadc49973a40 Samit Basu <basu.samit@gmail.com> 1786924400 -0700	commit: Phase 4: the server — axum, SQLite, one writer
b82a02a7adc217c2bb7c0490429dbadc49973a40 a5f3a8cafb787591e55c353848a972e58f7af097 Samit Basu <basu.samit@gmail.com> 1786925568 -0700	commit: Phase 5: the client session in the app, undo deferred to phase 6
a5f3a8cafb787591e55c353848a972e58f7af097 cfb22a08b160d5fa4d46371dcae6d119f681bbbd Samit Basu <basu.samit@gmail.com> 1786929555 -0700	commit: Phase 6 planned: the editor-swap playbook
cfb22a08b160d5fa4d46371dcae6d119f681bbbd 6a74302bf20f788311f96fd7ea67ee9c7a8da7be Samit Basu <basu.samit@gmail.com> 1786929897 -0700	commit: Editor-swap step 1: Block.role lands; derived pin accents leave the model
6a74302bf20f788311f96fd7ea67ee9c7a8da7be 48e70da1746b57194dbae97a5e0ed61d00573371 Samit Basu <basu.samit@gmail.com> 1786930218 -0700	commit: Editor-swap step 2: the pin slot register
48e70da1746b57194dbae97a5e0ed61d00573371 3d07e4761f0cd87a3c713274cfef0e42b25aa3b4 Samit Basu <basu.samit@gmail.com> 1786930474 -0700	commit: Editor-swap step 3: the top pointer
3d07e4761f0cd87a3c713274cfef0e42b25aa3b4 8eb5fcf09514e258d43ce95f8e3f093ec0154300 Samit Basu <basu.samit@gmail.com> 1786930844 -0700	commit: Editor-swap step 4: the read surface — adjacency, order, rect algebra
8eb5fcf09514e258d43ce95f8e3f093ec0154300 5368d2fb295c0e7a380644b51cd805a3b827b6b7 Samit Basu <basu.samit@gmail.com> 1787013998 -0700	commit: Editor-swap step 6a: accent, direction, tag, and lock writes get named setters
a530979791f105177ec87e0d08bed8c6809a40cf 3fd9b14c25fe6a82b2a173fec3954e9722edc0ef Samit Basu <basu.samit@gmail.com> 1787014616 -0700	commit: Editor-swap step 6c: the geometry commits get named setters
3fd9b14c25fe6a82b2a173fec3954e9722edc0ef 4d89298fd6bf8431890b0720b91e79bf7313fdd2 Samit Basu <basu.samit@gmail.com> 1787014850 -0700	commit: Editor-swap step 6d: route labels and waypoints get named setters
4d89298fd6bf8431890b0720b91e79bf7313fdd2 f672e2912e55a4d58df10840ea76f404c548be93 Samit Basu <basu.samit@gmail.com> 1787015286 -0700	commit: Editor-swap step 6e: the hatches close, and CI guards the waist
f672e2912e55a4d58df10840ea76f404c548be93 68ee440b03e0ace30cb1721f1cbec5c0af0034f4 Samit Basu <basu.samit@gmail.com> 1787026434 -0700	commit: The mutation log: every Drawing setter narrates under the edit target
68ee440b03e0ace30cb1721f1cbec5c0af0034f4 00d8df39295f316d11cf9072ffb0f2abda7f6c3d Samit Basu <basu.samit@gmail.com> 1787028259 -0700	commit: Editor-swap step 7a: the Derived store, threaded through Drawing
00d8df39295f316d11cf9072ffb0f2abda7f6c3d b2bfd1e04bc0456a58bee680c3e982d5b14b8e56 Samit Basu <basu.samit@gmail.com> 1787029110 -0700	commit: Editor-swap step 7b: pin accents become derived state
b2bfd1e04bc0456a58bee680c3e982d5b14b8e56 281bab59faac7db312b35cb7a46aeb7fa6beff59 Samit Basu <basu.samit@gmail.com> 1787075621 -0700	commit: Editor-swap step 7c: text-box extents become derived state
281bab59faac7db312b35cb7a46aeb7fa6beff59 f03b344dee35b7a302db67f09eb93503e767d4fe Samit Basu <basu.samit@gmail.com> 1787078166 -0700	commit: Editor-swap step 7d: route geometry becomes derived state
f03b344dee35b7a302db67f09eb93503e767d4fe 9ce5422a97445d19103071784ad740344d3d55af Samit Basu <basu.samit@gmail.com> 1787086001 -0700	commit: Editor-swap step 8a: the preview solve goes pure
9ce5422a97445d19103071784ad740344d3d55af 440ec6397c48d73f0109db836ede9fd0c81f839d Samit Basu <basu.samit@gmail.com> 1787086925 -0700	commit: Editor-swap step 8b: the route editor stops writing the document mid-drag
440ec6397c48d73f0109db836ede9fd0c81f839d 71fb8e141b79ee8473a852d040b40e797897af38 Samit Basu <basu.samit@gmail.com> 1787094483 -0700	commit: Editor-swap step 8c: the label drag goes pure
71fb8e141b79ee8473a852d040b40e797897af38 04837aa14c907aad12555af69444eb7e05cb9153 Samit Basu <basu.samit@gmail.com> 1787095914 -0700	commit: Editor-swap step 8d: the drag-abort proof — step 8 complete
04837aa14c907aad12555af69444eb7e05cb9153 04837aa14c907aad12555af69444eb7e05cb9153 Samit Basu <basu.samit@gmail.com> 1787102659 -0700	reset: moving to HEAD
04837aa14c907aad12555af69444eb7e05cb9153 db19532064b2f408a849a5a2b1bd12e21f35fba7 Samit Basu <basu.samit@gmail.com> 1787102884 -0700	commit: Derived route geometry is keyed by its owning block
db19532064b2f408a849a5a2b1bd12e21f35fba7 f0e9df98bb0503f25f66aa531d0ff1ee94823de3 Samit Basu <basu.samit@gmail.com> 1787106765 -0700	commit: Editor-swap step 9: CommitBuilder
f0e9df98bb0503f25f66aa531d0ff1ee94823de3 c3f55e7896053ab7bdc2af17acaf893feb5589a8 Samit Basu <basu.samit@gmail.com> 1787107152 -0700	commit: Editor-swap step 10: the op-emitter playbook
c3f55e7896053ab7bdc2af17acaf893feb5589a8 210188afc46ddaf04a0e4ea913751806653c59ea Samit Basu <basu.samit@gmail.com> 1787107584 -0700	commit: Op emitters 10a: the src/edit scaffold and the exemplar pair
210188afc46ddaf04a0e4ea913751806653c59ea 7ab59fa8dbbe8f71883175779ad298bbe57208d5 Samit Basu <basu.samit@gmail.com> 1787108348 -0700	commit: Op emitters 10b: the naming, flags, and text family
7ab59fa8dbbe8f71883175779ad298bbe57208d5 f2497231a522e81b4b3ca95d8effbbd7a9347441 Samit Basu <basu.samit@gmail.com> 1787110140 -0700	commit: Op emitters 10c: the create family
f2497231a522e81b4b3ca95d8effbbd7a9347441 cd545a46813c1d35974f8a19790f4efadc738bf8 Samit Basu <basu.samit@gmail.com> 1787111777 -0700	commit: Op emitters 10d: the geometry family
cd545a46813c1d35974f8a19790f4efadc738bf8 a22efdb5f8f04dc26b8faeea8a6af803c634e3af Samit Basu <basu.samit@gmail.com> 1787113211 -0700	commit: Op emitters 10e: assets ride the log — step 5 closes via D7
a22efdb5f8f04dc26b8faeea8a6af803c634e3af 8a4077f96a0df93fa73a0a9fced8a2b095977d2b Samit Basu <basu.samit@gmail.com> 1787114076 -0700	commit: Op emitters 10f: the delete family
8a4077f96a0df93fa73a0a9fced8a2b095977d2b 58ed690860e50c6945179c1e7c4391a4ea17b559 Samit Basu <basu.samit@gmail.com> 1787115665 -0700	commit: Op emitters 10g: the clipboard family — step 10 complete
58ed690860e50c6945179c1e7c4391a4ea17b559 98c464a10e93c05495e4e74c796240ec21441a4e Samit Basu <basu.samit@gmail.com> 1787118617 -0700	commit: Editor-swap step 11: the in-process host and the level-lowering bridge
98c464a10e93c05495e4e74c796240ec21441a4e 33f1eac2550266dae7237b57b2f956f582f73575 Samit Basu <basu.samit@gmail.com> 1787151155 -0700	commit: Editor-swap step 12: the flag-day playbook
33f1eac2550266dae7237b57b2f956f582f73575 2b518c60d379b4a1ff87021d24cd26d9e31d311b Samit Basu <basu.samit@gmail.com> 1787155682 -0700	commit: Flag-day F2 amended: the per-frame cache becomes an owned, stamp-gated index
2b518c60d379b4a1ff87021d24cd26d9e31d311b 38adb304ae4961519313a3d004d34139d1690071 Samit Basu <basu.samit@gmail.com> 1787155872 -0700	commit: Flag-day F2 amended again: IndexedDocument, one bundled view member
38adb304ae4961519313a3d004d34139d1690071 20cacd708318ded08958ce937d3840d1826f0302 Samit Basu <basu.samit@gmail.com> 1787156688 -0700	commit: The derived module becomes presentation: named for purpose, not provenance
20cacd708318ded08958ce937d3840d1826f0302 de970d5c3397e52bf634c1bda8cf3a5cc744bf83 Samit Basu <basu.samit@gmail.com> 1787157139 -0700	commit: Spec 13a: gesture streaming, the tutorial ghost, and the near-term harvest
de970d5c3397e52bf634c1bda8cf3a5cc744bf83 92a31f8d22b39f6330ba9e9feab1f3cc71281008 Samit Basu <basu.samit@gmail.com> 1787159162 -0700	commit: Flag-day 12·0: IndexedDocument — the view, the index, the stamp
92a31f8d22b39f6330ba9e9feab1f3cc71281008 ca3a3dd2f12fd9ac97e1b53637851088ca7ea71a Samit Basu <basu.samit@gmail.com> 1787160557 -0700	commit: Flag-day 12·1: the interface layer re-types onto the doc-crate ids
ca3a3dd2f12fd9ac97e1b53637851088ca7ea71a 677a095017d0e4784cea622c1dac2f241c99d271 Samit Basu <basu.samit@gmail.com> 1787160665 -0700	commit: Flag-day F9: the root is a scope like any other
677a095017d0e4784cea622c1dac2f241c99d271 077fb263b94a21879d1ad8a6cb927d7d50293a80 Samit Basu <basu.samit@gmail.com> 1787161795 -0700	commit: Flag-day 12·2: the structural core — and the split the measurement forced
077fb263b94a21879d1ad8a6cb927d7d50293a80 9098a931ac2a07f03b9fd8346516e88e9db79f34 Samit Basu <basu.samit@gmail.com> 1787164041 -0700	commit: Flag-day 12·2a: the shape layer ports; grid.rs sheds its legacy half
9098a931ac2a07f03b9fd8346516e88e9db79f34 b2cce9237821455a6e44721d25731eda77671c32 Samit Basu <basu.samit@gmail.com> 1787166682 -0700	commit: Flag-day 12·2b: Drawing's readers; hit-test, spatial, nav, scene
b2cce9237821455a6e44721d25731eda77671c32 617abed300a0740df98d8cf299f1b5b79d144d7b Samit Basu <basu.samit@gmail.com> 1787168834 -0700	commit: Flag-day 12·2c-i: the solver funnel leaves AutoRoute behind
617abed300a0740df98d8cf299f1b5b79d144d7b d392e38a08e12306b6755d7679941ca5ac18cc04 Samit Basu <basu.samit@gmail.com> 1787171550 -0700	commit: Flag-day 12·2c-ii: tool reads, app read wiring, the test files — reads done
d392e38a08e12306b6755d7679941ca5ac18cc04 d392e38a08e12306b6755d7679941ca5ac18cc04 Samit Basu <basu.samit@gmail.com> 1787174701 -0700	reset: moving to HEAD
d392e38a08e12306b6755d7679941ca5ac18cc04 cbb380154005b1a1e885dc812bcfcc0b6ed0d9cc Samit Basu <basu.samit@gmail.com> 1787175986 -0700	commit: Flag-day 12·3: writes become emitters; gestures seal and submit
cbb380154005b1a1e885dc812bcfcc0b6ed0d9cc af06ff8af6360ffa3e4b7fdcf06c4f3be322bc3f Samit Basu <basu.samit@gmail.com> 1787177167 -0700	commit: Flag-day 12·4: undo re-points at the session journal; the snapshots die
af06ff8af6360ffa3e4b7fdcf06c4f3be322bc3f 27d0826688b808f2d2aaa2a33cdd273992ea40b2 Samit Basu <basu.samit@gmail.com> 1787187558 -0700	commit: Flag-day 12·5: projections and the file boundary — the red series ends
27d0826688b808f2d2aaa2a33cdd273992ea40b2 27d0826688b808f2d2aaa2a33cdd273992ea40b2 Samit Basu <basu.samit@gmail.com> 1787192882 -0700	reset: moving to HEAD
27d0826688b808f2d2aaa2a33cdd273992ea40b2 b23075a3bacbd439684ed02a1c5919d161face75 Samit Basu <basu.samit@gmail.com> 1787193633 -0700	commit: Flag-day 12·6: green — the editor swaps
b23075a3bacbd439684ed02a1c5919d161face75 234614da56dae145d963f229dc1c6ebda1133a8b Samit Basu <basu.samit@gmail.com> 1787237924 -0700	commit: Flag-day 12·6 addendum: the re-aimed waist gate actually lands
234614da56dae145d963f229dc1c6ebda1133a8b daaa865efb0f3214b90d31aa8f6f0ecded5b68cf Samit Basu <basu.samit@gmail.com> 1787237937 -0700	commit: Suppose the route preview before the frame paints
daaa865efb0f3214b90d31aa8f6f0ecded5b68cf df5ee7abc5b6e16d99061677820a7c95b1108db4 Samit Basu <basu.samit@gmail.com> 1787276063 -0700	commit: Type-level invariants P2+P8: the gesture reads its own writes
df5ee7abc5b6e16d99061677820a7c95b1108db4 2110bafefa6b3cdbd76e0206235290548d3d3171 Samit Basu <basu.samit@gmail.com> 1787276995 -0700	commit: Type-level invariants P1: supposing before painting becomes a data dependency
2110bafefa6b3cdbd76e0206235290548d3d3171 0a4eb0c34c20ba39ffaac418259262ef69e02d7a Samit Basu <basu.samit@gmail.com> 1787317901 -0700	commit: Fix the release-frame flash: a drag supposes on the frame that ends it
0a4eb0c34c20ba39ffaac418259262ef69e02d7a a7baa5ef47a316b4c205449612d5f98a5926e639 Samit Basu <basu.samit@gmail.com> 1787320909 -0700	commit: Nomenclature review: queue the rename sweeps in the todo
a7baa5ef47a316b4c205449612d5f98a5926e639 f74b19c249b1c70e14e3ab9b664d83294b4acb8f Samit Basu <basu.samit@gmail.com> 1787323188 -0700	commit: Step 13, the coverage walk: every inventory row, and the registry's effects
f74b19c249b1c70e14e3ab9b664d83294b4acb8f c499bcdb4bfaf02820b15429ff94aa6f608779a5 Samit Basu <basu.samit@gmail.com> 1787345233 -0700	commit: Step 13: the ratification sheet, assembled for review
c499bcdb4bfaf02820b15429ff94aa6f608779a5 fd3b006fb58a915f434e8d9eb2680944d08db650 Samit Basu <basu.samit@gmail.com> 1787346249 -0700	commit: Step 13 stragglers: the create tools and the in-place editors
fd3b006fb58a915f434e8d9eb2680944d08db650 946b9c8147bc6a4a5c1475dc5709011fbe6f5842 Samit Basu <basu.samit@gmail.com> 1787536828 -0700	commit: Nomenclature review: Nonce is a correlation id, queue its rename
946b9c8147bc6a4a5c1475dc5709011fbe6f5842 2b0348f5a062c134f950e3ad576103ce909b8b07 Samit Basu <basu.samit@gmail.com> 1787537367 -0700	commit: Undo carries editor state: one stack, view steps and document steps
2b0348f5a062c134f950e3ad576103ce909b8b07 cb8b3ad42b4a814c0fc43a2a8273aedf716c497c Samit Basu <basu.samit@gmail.com> 1787629815 -0700	commit: Undo steps name their commit, rather than trusting position
cb8b3ad42b4a814c0fc43a2a8273aedf716c497c 243a54d85341429059fbd94f542120916dbf3ae4 Samit Basu <basu.samit@gmail.com> 1787631030 -0700	commit: Selection rides in a history step without making one
243a54d85341429059fbd94f542120916dbf3ae4 7efca862fde7c1c85b5c22706aba7905a05ec9f9 Samit Basu <basu.samit@gmail.com> 1787631875 -0700	commit: A history step carries both ends of its edit, so an undo lands selected
7efca862fde7c1c85b5c22706aba7905a05ec9f9 b7fb3e408014d55fa0f77fa00013713dcb6dd493 Samit Basu <basu.samit@gmail.com> 1787632942 -0700	commit: Ratify Part A: the plan-time behavior changes are confirmed
b7fb3e408014d55fa0f77fa00013713dcb6dd493 d27af29d8e9543da5b3a8307fcac70e4963af750 Samit Basu <basu.samit@gmail.com> 1787635034 -0700	commit: B3: a lock protects what a pin is, not where it sits — enforced by type
d27af29d8e9543da5b3a8307fcac70e4963af750 a2fd1fa17a8ff4058ef284283e2c241babc08e82 Samit Basu <basu.samit@gmail.com> 1787674660 -0700	commit: Part B decided; B9 measured on demand instead of on commit
a2fd1fa17a8ff4058ef284283e2c241babc08e82 047495e29a8fdad345896923bd6cec2e7ff7918b Samit Basu <basu.samit@gmail.com> 1787676194 -0700	commit: Close the ratification sheet: every behavior change is decided
047495e29a8fdad345896923bd6cec2e7ff7918b cb72912e6aa89f0146f3219f275ac82b970ef529 Samit Basu <basu.samit@gmail.com> 1787676220 -0700	commit: Point the next session at what is left of step 13
cb72912e6aa89f0146f3219f275ac82b970ef529 2e9ffc8f1346ded8065fcf8c3463e78f1da0030a Samit Basu <basu.samit@gmail.com> 1787678991 -0700	commit: The dress rehearsal: a connected session shows the server's document
2e9ffc8f1346ded8065fcf8c3463e78f1da0030a 5673c268f0af08cd385a2f74bf775cd5915b6096 Samit Basu <basu.samit@gmail.com> 1787681384 -0700	commit: R3 decided: a dropped socket keeps its queue and resumes
5673c268f0af08cd385a2f74bf775cd5915b6096 cfc997be46f88800e450cee2f67cdb21598c5102 Samit Basu <basu.samit@gmail.com> 1787681841 -0700	commit: Write down how a block cycle is actually reached
cfc997be46f88800e450cee2f67cdb21598c5102 348c3eb4684f5277c5f2c49c89e9bfa541a9a5c3 Samit Basu <basu.samit@gmail.com> 1787682792 -0700	commit: Close seven straggler rows with real-path tests
348c3eb4684f5277c5f2c49c89e9bfa541a9a5c3 408f2715550f79c9a6343d91f6ded98ac6d03318 Samit Basu <basu.samit@gmail.com> 1787683255 -0700	commit: Cover the three action arms a tool driver cannot reach
408f2715550f79c9a6343d91f6ded98ac6d03318 e2b54aa75b9bbf6918fb9642289d0078dd9b0eb6 Samit Basu <basu.samit@gmail.com> 1787697036 -0700	commit: Settle the reroute rule and bound artwork at 4 MB
e2b54aa75b9bbf6918fb9642289d0078dd9b0eb6 beed04a920879d176efda7470ce3d24a9fbd2f86 Samit Basu <basu.samit@gmail.com> 1787697826 -0700	commit: The clipboard and the file dialog were never out of reach
beed04a920879d176efda7470ce3d24a9fbd2f86 4f3133bd3a1a93e114585586105a5d6d045206b1 Samit Basu <basu.samit@gmail.com> 1787703622 -0700	commit: A picker reports a pick; it does not write the document
4f3133bd3a1a93e114585586105a5d6d045206b1 413caeecbe671a16111eb7bed654072d68c9dc5a Samit Basu <basu.samit@gmail.com> 1787712065 -0700	commit: Close Part C: the three cleanups step 13 parked
413caeecbe671a16111eb7bed654072d68c9dc5a 28ee9f43d6d2d8fa4787f7bf2a496aa7f97421b8 Samit Basu <basu.samit@gmail.com> 1787712372 -0700	commit: Tick phase 6: step 13's own closing bookkeeping
28ee9f43d6d2d8fa4787f7bf2a496aa7f97421b8 13b91d85eca45518077654ffaf6aafe695f522be Samit Basu <basu.samit@gmail.com> 1787713764 -0700	commit: Plan phase 7 before opening it: the demolition playbook
13b91d85eca45518077654ffaf6aafe695f522be 33cd6a92a86690020018f117c94ba93cc7652029 Samit Basu <basu.samit@gmail.com> 1787714183 -0700	commit: D7: the converter lives in examples/ and talks to a server
33cd6a92a86690020018f117c94ba93cc7652029 e8f1b66aedc689fc27452b94853e9842532c4360 Samit Basu <basu.samit@gmail.com> 1787715261 -0700	commit: Step 1: the demo passes, and becomes `cargo xtask demo`
e8f1b66aedc689fc27452b94853e9842532c4360 bcb857532fdb86a4076fe5cde85972026525b7d3 Samit Basu <basu.samit@gmail.com> 1787716758 -0700	commit: Split the demo into `xtask server` and `xtask client`
bcb857532fdb86a4076fe5cde85972026525b7d3 fc523c088cce4c7245a5daa98f3227d49bed3084 Samit Basu <basu.samit@gmail.com> 1787752690 -0700	commit: Name the canvas chrome so a sibling cannot renumber it
fc523c088cce4c7245a5daa98f3227d49bed3084 f0859441a269d38b6f05fdb8d25460fdfb038943 Samit Basu <basu.samit@gmail.com> 1787765679 -0700	commit: Phase 7 re-planned: the one-way door is repealed, KDL round-trips
f0859441a269d38b6f05fdb8d25460fdfb038943 ba69d646944313dc311f15904f24c57ae2f4e0c4 Samit Basu <basu.samit@gmail.com> 1787766835 -0700	commit: Steps 2+3: raise — the document back as KDL, and Export learns it
ba69d646944313dc311f15904f24c57ae2f4e0c4 a115f345c55dc4cf2b38a24064e0104172423cba Samit Basu <basu.samit@gmail.com> 1787768183 -0700	commit: raise becomes project, and the console exports any rev
a115f345c55dc4cf2b38a24064e0104172423cba 7eee188e9177510203bac228961068eef6fedf66 Samit Basu <basu.samit@gmail.com> 1787770117 -0700	commit: Step 4: the round-trip gate, and the bug it caught on arrival
7eee188e9177510203bac228961068eef6fedf66 496d82c03ce3093500346b3fc21a47f0d09f3e3d Samit Basu <basu.samit@gmail.com> 1787772600 -0700	commit: Step 5: the JSON documents become KDL, and the originals go
496d82c03ce3093500346b3fc21a47f0d09f3e3d 03a72f06a70cff7b0a987dde7c5d26109a282067 Samit Basu <basu.samit@gmail.com> 1787777787 -0700	commit: Step 6: the demo.kdl fixture compiles in, and the step shrinks to that
03a72f06a70cff7b0a987dde7c5d26109a282067 0f218da8388ef831865f77390a57841006f0b158 Samit Basu <basu.samit@gmail.com> 1787784371 -0700	commit: Step 7: the audit passes after restoring what the revision dropped
0f218da8388ef831865f77390a57841006f0b158 2710e2517216db1dec6a599c43fbbaf444aacb6e Samit Basu <basu.samit@gmail.com> 1787785102 -0700	commit: Step 8: import narrows to KDL + images; the embedded-diagram path dies
2710e2517216db1dec6a599c43fbbaf444aacb6e c889012f49da11b29844d25a957ba8ae1c39bf06 Samit Basu <basu.samit@gmail.com> 1787788119 -0700	commit: Step 9: the container dies, and the courtesy load stops being legacy
c889012f49da11b29844d25a957ba8ae1c39bf06 023ead0044ad92b159a11a899938d72545da1673 Samit Basu <basu.samit@gmail.com> 1787792443 -0700	commit: Step 10a: the legacy vocabulary re-homes; only the model remains
023ead0044ad92b159a11a899938d72545da1673 86d9252876985ed9440144bf7102c0e55fd248d1 Samit Basu <basu.samit@gmail.com> 1787793741 -0700	commit: Step 10b: the canvas speaks Asset; ImageData's conversion layer dies
86d9252876985ed9440144bf7102c0e55fd248d1 86d9252876985ed9440144bf7102c0e55fd248d1 Samit Basu <basu.samit@gmail.com> 1787795073 -0700	reset: moving to HEAD
86d9252876985ed9440144bf7102c0e55fd248d1 2dfa334013d7d9ce2dfd14b21fd02cf6e388e5d3 Samit Basu <basu.samit@gmail.com> 1787795514 -0700	commit: Step 10c: the legacy model and the JSON codec are gone
2dfa334013d7d9ce2dfd14b21fd02cf6e388e5d3 595c134124ef45a6135780fbb2c15f3a6e322f3e Samit Basu <basu.samit@gmail.com> 1787795536 -0700	commit: Tick step 10: the legacy model era closes in the worklog
595c134124ef45a6135780fbb2c15f3a6e322f3e ba8a24326861f5c4f7a0721530048c319042a6eb Samit Basu <basu.samit@gmail.com> 1787798137 -0700	commit: Step 11: the dependencies and the prose catch up; stage 4 closes
ba8a24326861f5c4f7a0721530048c319042a6eb 19c5f887eb5db636fd051af1da2bb32ef270b842 Samit Basu <basu.samit@gmail.com> 1787803295 -0700	commit: P4: Scope, not BlockId::NULL — the sentinel leaves the editor
19c5f887eb5db636fd051af1da2bb32ef270b842 cfa238b0f030f8469633fad13da6b071787a936e Samit Basu <basu.samit@gmail.com> 1787803316 -0700	commit: Tick step 12: P4 landed, recorded in the playbook and invariants doc
cfa238b0f030f8469633fad13da6b071787a936e 28ed89c5ea11b8106bf74f6846706d4a898050b6 Samit Basu <basu.samit@gmail.com> 1787803491 -0700	commit: Tick phase 7: demo, round trip, and demolition complete
28ed89c5ea11b8106bf74f6846706d4a898050b6 9850cef45810c8c62c4979cf33703e7e9dded1ae Samit Basu <basu.samit@gmail.com> 1787803504 -0700	checkout: moving from collab-document-log to main
9850cef45810c8c62c4979cf33703e7e9dded1ae 5f81b1e5a0edf16d650cca3fecb668818b53143d Samit Basu <basu.samit@gmail.com> 1787803504 -0700	merge collab-document-log: Merge made by the 'ort' strategy.
5f81b1e5a0edf16d650cca3fecb668818b53143d 770490cc3c479527574c0d61bbb32f6ccd63bfae Samit Basu <basu.samit@gmail.com> 1787803565 -0700	commit: Tick phase 8: merged, with the remaining-work ledger
770490cc3c479527574c0d61bbb32f6ccd63bfae 9850cef45810c8c62c4979cf33703e7e9dded1ae Samit Basu <basu.samit@gmail.com> 1787874890 -0700	reset: moving to origin/main
9850cef45810c8c62c4979cf33703e7e9dded1ae 28ed89c5ea11b8106bf74f6846706d4a898050b6 Samit Basu <basu.samit@gmail.com> 1787874890 -0700	checkout: moving from main to collab-document-log
28ed89c5ea11b8106bf74f6846706d4a898050b6 b2fb5b1902cad9ae0991b92e6d3651e88c765a32 Samit Basu <basu.samit@gmail.com> 1787874890 -0700	cherry-pick: Tick phase 8: merged, with the remaining-work ledger
b2fb5b1902cad9ae0991b92e6d3651e88c765a32 1fa7b94fdd4e9684497c9783ce0637ba6efc621b Samit Basu <basu.samit@gmail.com> 1787874890 -0700	commit (amend): Tick phase 8: merged, with the remaining-work ledger
1fa7b94fdd4e9684497c9783ce0637ba6efc621b 9850cef45810c8c62c4979cf33703e7e9dded1ae Samit Basu <basu.samit@gmail.com> 1787874917 -0700	checkout: moving from collab-document-log to main
9850cef45810c8c62c4979cf33703e7e9dded1ae c34a91cc3348a4dddcf5af307cfbca3be6ccae48 Samit Basu <basu.samit@gmail.com> 1787874946 -0700	merge origin/main: Fast-forward
c34a91cc3348a4dddcf5af307cfbca3be6ccae48 c34a91cc3348a4dddcf5af307cfbca3be6ccae48 Samit Basu <basu.samit@gmail.com> 1787937469 -0700	checkout: moving from main to single-author
c34a91cc3348a4dddcf5af307cfbca3be6ccae48 3434f459c77efe866851937e4a409f5518ef7591 Samit Basu <basu.samit@gmail.com> 1787937849 -0700	commit: Playbook for the single-author pivot
3434f459c77efe866851937e4a409f5518ef7591 697661457f43359f25c9cc71736b2be59b520372 Samit Basu <basu.samit@gmail.com> 1787952392 -0700	commit: Fold the design-review amendments into the single-author playbook
697661457f43359f25c9cc71736b2be59b520372 af44d57d0f5685fe19d1b30bf90bffc9a008d2d6 Samit Basu <basu.samit@gmail.com> 1787952975 -0700	commit: JSON everywhere: the log is JSONL and the KDL codec retires (D13/D14)
af44d57d0f5685fe19d1b30bf90bffc9a008d2d6 865b2c1189788e6700e0b690c59f151dba374275 Samit Basu <basu.samit@gmail.com> 1787953159 -0700	commit: D9 revised, D15 added: account-shaped identity now, licensing later
865b2c1189788e6700e0b690c59f151dba374275 c9698eb882dc436a04d6e0fb04c5e52c3552c336 Samit Basu <basu.samit@gmail.com> 1787953930 -0700	commit: The choreographer: animated commit diffs for history and tutorials
c9698eb882dc436a04d6e0fb04c5e52c3552c336 b4d1f831dd04432c6e1fa3138b271a063c2361a9 Samit Basu <basu.samit@gmail.com> 1787954825 -0700	commit: Ratify D1/D6/save model; name the box "area"; fixture triage
b4d1f831dd04432c6e1fa3138b271a063c2361a9 b4d1f831dd04432c6e1fa3138b271a063c2361a9 Samit Basu <basu.samit@gmail.com> 1787955739 -0700	reset: moving to HEAD
b4d1f831dd04432c6e1fa3138b271a063c2361a9 54b502c56a6ccdf737be568eefa080a262b90acf Samit Basu <basu.samit@gmail.com> 1787956523 -0700	commit: Phase 1a: delete the server, the wire, and the convergence machinery
54b502c56a6ccdf737be568eefa080a262b90acf d405067f6499362534dd61d2a9738ea7ea3ded22 Samit Basu <basu.samit@gmail.com> 1787956552 -0700	commit (amend): Phase 1a: delete the server, the wire, and the convergence machinery
d405067f6499362534dd61d2a9738ea7ea3ded22 d405067f6499362534dd61d2a9738ea7ea3ded22 Samit Basu <basu.samit@gmail.com> 1787957353 -0700	reset: moving to HEAD
d405067f6499362534dd61d2a9738ea7ea3ded22 a137430fb06630a2661700a71396d306a813b900 Samit Basu <basu.samit@gmail.com> 1787959414 -0700	commit: Phase 1b: collapse to Repo — one document, one log, one journal
a137430fb06630a2661700a71396d306a813b900 176556668055bb9f1b1879a20cc9868eeadd9b99 Samit Basu <basu.samit@gmail.com> 1787962013 -0700	commit: Phase 2a: the durable store — JSONL log records in a .bwx container
176556668055bb9f1b1879a20cc9868eeadd9b99 5a5ecb16861e8346907c60172d2ef9dc26a5067a Samit Basu <basu.samit@gmail.com> 1787965258 -0700	commit: Phase 2b: the container reaches the app — Doc enum, File menu, read-only
5a5ecb16861e8346907c60172d2ef9dc26a5067a e4908c35cb8bc59b46763dedd0f51617c9ae2292 Samit Basu <basu.samit@gmail.com> 1787969370 -0700	commit: Phase 2c: document.json projection, JSON documents, KDL quarantine
e4908c35cb8bc59b46763dedd0f51617c9ae2292 a9eb8890666e3187440885d8904ddeca988fbbfc Samit Basu <basu.samit@gmail.com> 1787972050 -0700	commit: The projection keeps itself fresh; the dirty dot is gone
a9eb8890666e3187440885d8904ddeca988fbbfc 5d5ea1bebeae0678f58dcffc2fe01b5f0e586563 Samit Basu <basu.samit@gmail.com> 1787972070 -0700	commit: Playbook: copy-from-history joins Phase 4
5d5ea1bebeae0678f58dcffc2fe01b5f0e586563 64f67f42373e9a1039d3ceda3176b929853c8782 Samit Basu <basu.samit@gmail.com> 1787972164 -0700	commit: Playbook: one read-only presentation for time machine and reviewers
64f67f42373e9a1039d3ceda3176b929853c8782 2e6a046995f0f65039fe4f4edef396b1f24ec3d5 Samit Basu <basu.samit@gmail.com> 1787973871 -0700	commit: Phase 3: undo survives quit and reopen — the journal replays (F6)
2e6a046995f0f65039fe4f4edef396b1f24ec3d5 0efef6f4b2ea798ed688ebfc080f22259b3a2616 Samit Basu <basu.samit@gmail.com> 1787978445 -0700	commit: Phase 4: the audit trail surfaced — blockworx log, time machine, restore
0efef6f4b2ea798ed688ebfc080f22259b3a2616 ad69b3befd1644d1b93d8bee83acbd62df90e344 Samit Basu <basu.samit@gmail.com> 1787979697 -0700	commit: D12 escalated on Finding 7's evidence: sampled stamp verification
ad69b3befd1644d1b93d8bee83acbd62df90e344 7de9a7780a021b5c9e559bf0bb201858092bf0fc Samit Basu <basu.samit@gmail.com> 1787981273 -0700	commit: Phase 5: the boundary box is an Area — "comment" freed for Phase 6
7de9a7780a021b5c9e559bf0bb201858092bf0fc a90af372b00550e7e354f47566de43979aecd230 Samit Basu <basu.samit@gmail.com> 1787985472 -0700	commit: Assets leave the log: content-addressed extraction, legacy tolerated
a90af372b00550e7e354f47566de43979aecd230 374dcfedd0108921e05ced1032c1415255f6618c Samit Basu <basu.samit@gmail.com> 1788029388 -0700	commit: The UI interlude: punch list triaged, D18-D20 decided
374dcfedd0108921e05ced1032c1415255f6618c 920d857ecc8ce27ab55516f9c5024703c286f34b Samit Basu <basu.samit@gmail.com> 1788032827 -0700	commit: Read-only means read-only: one predicate, three seams
920d857ecc8ce27ab55516f9c5024703c286f34b af362070ff174448fc92561e4e4df91dc0f4951b Samit Basu <basu.samit@gmail.com> 1788035948 -0700	commit: Interlude A2 queued: show disabled, don't hide (user feedback)
af362070ff174448fc92561e4e4df91dc0f4951b 94c832b035b5f9403752afa0ab0c03dfc2726228 Samit Basu <basu.samit@gmail.com> 1788037608 -0700	commit: History that reads like history: labels, tags, the watermark
94c832b035b5f9403752afa0ab0c03dfc2726228 33086d3fffc10217701486a9f2a1ae0ec01e8846 Samit Basu <basu.samit@gmail.com> 1788038176 -0700	commit: Withheld commands draw disabled instead of disappearing (A2)
33086d3fffc10217701486a9f2a1ae0ec01e8846 ef2c1853d59c1206f342a28c121ce9c8cfc9cd59 Samit Basu <basu.samit@gmail.com> 1788041139 -0700	commit: Punch list 2 triaged as interlude workstream F
ef2c1853d59c1206f342a28c121ce9c8cfc9cd59 3aec19bc7fff76e72d2c47b011ad303611ef6cc4 Samit Basu <basu.samit@gmail.com> 1788041929 -0700	commit: The chrome finds its corners: hamburger, nav toolbar, title block
3aec19bc7fff76e72d2c47b011ad303611ef6cc4 f850299aef062d1550d14b20f27fb835344bbda1 Samit Basu <basu.samit@gmail.com> 1788044295 -0700	commit: Interlude C2 queued: title block paints, hamburger bares (user feedback)
f850299aef062d1550d14b20f27fb835344bbda1 31955fd9aff2cc7b44120a583f58d020ea601929 Samit Basu <basu.samit@gmail.com> 1788046170 -0700	commit: Punch list 2: the overlay hugs, labels carry values, the timeline settles
31955fd9aff2cc7b44120a583f58d020ea601929 6ef894b978e125669226df9da21776780fabb6e3 Samit Basu <basu.samit@gmail.com> 1788046810 -0700	commit: The title block is ink, not a window; the hamburger is a button (C2)
6ef894b978e125669226df9da21776780fabb6e3 f46d31b28929ec014a251d6b94edc7fef5d4b92a Samit Basu <basu.samit@gmail.com> 1788047046 -0700	commit: D21: review moves outside the app — Phase 6 becomes PDF export via krilla
f46d31b28929ec014a251d6b94edc7fef5d4b92a 78ee5d3e590dcc5d3c64e1f65f8c643d88490ce9 Samit Basu <basu.samit@gmail.com> 1788049876 -0700	commit: An export knows where it came from (D19)
78ee5d3e590dcc5d3c64e1f65f8c643d88490ce9 78ee5d3e590dcc5d3c64e1f65f8c643d88490ce9 Samit Basu <basu.samit@gmail.com> 1788052235 -0700	reset: moving to HEAD
78ee5d3e590dcc5d3c64e1f65f8c643d88490ce9 d574aa2354495df4f2c36c02a1761af9c97c9a40 Samit Basu <basu.samit@gmail.com> 1788052584 -0700	commit: Documents are born with names (D20)
d574aa2354495df4f2c36c02a1761af9c97c9a40 4d33d0f5ba9dad3934943a8dbf37b8f0063c8672 Samit Basu <basu.samit@gmail.com> 1788052600 -0700	commit: The UI interlude closes
4d33d0f5ba9dad3934943a8dbf37b8f0063c8672 edbd1505799b835ee20f590d4748ec6ff09d57cc Samit Basu <basu.samit@gmail.com> 1788060414 -0700	commit: The overlay measures in the dark: no flash on selection switch (F2)
edbd1505799b835ee20f590d4748ec6ff09d57cc 3d264750ac66036112886dbb564656592f595aca Samit Basu <basu.samit@gmail.com> 1788064838 -0700	commit: The head commit is its own Latest row (F3)
3d264750ac66036112886dbb564656592f595aca 25a8e0bc4f794002fe84af6cab860726e8701bb4 Samit Basu <basu.samit@gmail.com> 1788066652 -0700	commit: The overlay narrates its placement under RUST_LOG=overlay=debug
25a8e0bc4f794002fe84af6cab860726e8701bb4 43f38407d538289ca288df5fc9cb14946d5d0c8f Samit Basu <basu.samit@gmail.com> 1788100181 -0700	commit: The sizing pass goes actually invisible (F2, second round)
43f38407d538289ca288df5fc9cb14946d5d0c8f 20283fb5ae1e1881a0680780780cf93f0b48ee2f Samit Basu <basu.samit@gmail.com> 1788102670 -0700	commit: Phase 6: the document becomes a PDF that navigates itself (D21)
20283fb5ae1e1881a0680780780cf93f0b48ee2f 44a8536a58ca087c57e2270240754fb00dfd43e4 Samit Basu <basu.samit@gmail.com> 1788106241 -0700	commit: PDF pages are cut to their scopes: uniform scale, not uniform sheet
44a8536a58ca087c57e2270240754fb00dfd43e4 6c05e2afee70561a4eb7fe81326368c2c0edbc96 Samit Basu <basu.samit@gmail.com> 1788106851 -0700	commit: Every PDF page carries the title block
6c05e2afee70561a4eb7fe81326368c2c0edbc96 8d23b1918d0d3a44978b350e59299a19b15e98c3 Samit Basu <basu.samit@gmail.com> 1788107160 -0700	commit: Interlude 3 queued: title block outlines, export extent, kerning
8d23b1918d0d3a44978b350e59299a19b15e98c3 e71896010190c20a009ed951606aa4b8d493510f Samit Basu <basu.samit@gmail.com> 1788108928 -0700	commit: egui 0.35 -> 0.36.1: one breaking change, and it was the test harness
e71896010190c20a009ed951606aa4b8d493510f 4b358e8cbcc9542baa2fb8e089c7ae27a038735f Samit Basu <basu.samit@gmail.com> 1788111522 -0700	commit: Title blocks get their rule, and fit-to-view learns to see wires
4b358e8cbcc9542baa2fb8e089c7ae27a038735f bd80ea6ce74c0f7a7895c9bbfb064bd02177def5 Samit Basu <basu.samit@gmail.com> 1788115732 -0700	commit: Exports shape their own text: the ligature learns to stay whole (G3)
bd80ea6ce74c0f7a7895c9bbfb064bd02177def5 061b1773a12a1ec1a79f19e5acd8654f48dfd178 Samit Basu <basu.samit@gmail.com> 1788127683 -0700	commit: G4 queued: one title block definition for the editor and the PDF
061b1773a12a1ec1a79f19e5acd8654f48dfd178 47f62eb70549bcd2b1a44fdacf93fb773a8fae3f Samit Basu <basu.samit@gmail.com> 1788129509 -0700	commit: G5 queued: scope changes must not paint a frame at the old camera
47f62eb70549bcd2b1a44fdacf93fb773a8fae3f 34e9607b02bab44914cf704f02fdb60f19c65ba8 Samit Basu <basu.samit@gmail.com> 1788130701 -0700	commit: A pasted document brings everything it holds, not top's subtree
34e9607b02bab44914cf704f02fdb60f19c65ba8 88c5823a9991d7de159cfc6db829184fc6ae39b0 Samit Basu <basu.samit@gmail.com> 1788130904 -0700	commit: The gate drops from 228 seconds to 25: one test was 221 of them
88c5823a9991d7de159cfc6db829184fc6ae39b0 afe819e908e4183d62d2c966d8ceadb25ac9617c Samit Basu <basu.samit@gmail.com> 1788131471 -0700	commit: G6 queued: paste's off-screen content ghosts until the next commit
afe819e908e4183d62d2c966d8ceadb25ac9617c d87659850b7df3eef4fc50a1db5f3aa05802f241 Samit Basu <basu.samit@gmail.com> 1788133042 -0700	commit: One title block to rule both sheets; the camera moves before the ink
d87659850b7df3eef4fc50a1db5f3aa05802f241 4909d6f896b3c680a63cb516f7a593e55f6f625d Samit Basu <basu.samit@gmail.com> 1788134973 -0700	commit: Phase 7 splits along the chrome line: substrate now, UI on the winner
4909d6f896b3c680a63cb516f7a593e55f6f625d 3c4ace36cb07aad9b1df1bed7a5372eba4da3335 Samit Basu <basu.samit@gmail.com> 1788135159 -0700	commit: G6 disproven: paste renders fine; the group just lands out of view
3c4ace36cb07aad9b1df1bed7a5372eba4da3335 eb878038615146bf1cbfe7868a7463ff2d7dfb90 Samit Basu <basu.samit@gmail.com> 1788136290 -0700	commit: G7 queued: a block that holds structure says so on its face
eb878038615146bf1cbfe7868a7463ff2d7dfb90 dae9eda9ca44f7fbdad43087f5c3434e452a799b Samit Basu <basu.samit@gmail.com> 1788136526 -0700	commit: The root scope stops leaking, and paste lands where you can see it
dae9eda9ca44f7fbdad43087f5c3434e452a799b c3a5051e4bd634943d52e9f60e7bca0e16cd933b Samit Basu <basu.samit@gmail.com> 1788138064 -0700	commit: The drag preview joins the cull set: the paste ghost dies (G6b)
c3a5051e4bd634943d52e9f60e7bca0e16cd933b cb873b2ba0068921f3e25689b65a5f76cfd5d523 Samit Basu <basu.samit@gmail.com> 1788139299 -0700	commit: A block that holds structure says so on its face (G7)
cb873b2ba0068921f3e25689b65a5f76cfd5d523 4b54829a43185c0fa1a106b7231502845a71f10f Samit Basu <basu.samit@gmail.com> 1788148716 -0700	commit: The choreographer playbook: Phase 7's substrate, planned
4b54829a43185c0fa1a106b7231502845a71f10f 3e03f29945769c5bd2a84fb95c3114708653a9e4 Samit Basu <basu.samit@gmail.com> 1788148922 -0700	commit: 7-0: EntityRef, the one id union, and OpCodes::target
3e03f29945769c5bd2a84fb95c3114708653a9e4 66927b2e7d32be5b23d69439b297c6d28e74fa4d Samit Basu <basu.samit@gmail.com> 1788152368 -0700	commit: 7-1: the timeline, its clock, and the oracle that keeps rules honest
66927b2e7d32be5b23d69439b297c6d28e74fa4d 6e28a3d272c5623e86378eab6a92d7d343d48968 Samit Basu <basu.samit@gmail.com> 1788153874 -0700	commit: 7-2: what arrives grows from its corner, and wires draw themselves
6e28a3d272c5623e86378eab6a92d7d343d48968 bdb30458e24bc7f4c5bbb8f49351159abc52af7f Samit Basu <basu.samit@gmail.com> 1788155506 -0700	commit: 7-3: everything that moves travels, and a rewired wire is redrawn
bdb30458e24bc7f4c5bbb8f49351159abc52af7f 4ff92b3568d20c9618934c499f52032ace1fb7d8 Samit Basu <basu.samit@gmail.com> 1788156999 -0700	commit: 7-4: names crossfade, flags step, and nothing fakes an in-between
4ff92b3568d20c9618934c499f52032ace1fb7d8 88d148f8dc49f4f7a3d297f60ce71417934dffec Samit Basu <basu.samit@gmail.com> 1788158378 -0700	commit: 7-5: deletion fades outside-in, and a cut's first paste is a move
88d148f8dc49f4f7a3d297f60ce71417934dffec a60247733275a0f720210d62c8285c43a051a05b Samit Basu <basu.samit@gmail.com> 1788158530 -0700	commit: The camera frames what the writing sits on: the label seam closes
a60247733275a0f720210d62c8285c43a051a05b 555eb3525a95a3f3415634e59c4caa51ce982a26 Samit Basu <basu.samit@gmail.com> 1788158609 -0700	commit: Merge the identical route arms clippy flagged
555eb3525a95a3f3415634e59c4caa51ce982a26 c9fd1adee0679a2ca2f53d86a449c110c0fc5920 Samit Basu <basu.samit@gmail.com> 1788160319 -0700	commit: 7-6: the dispatch closes total, and a ghost hand learns the gestures
c9fd1adee0679a2ca2f53d86a449c110c0fc5920 b4a032285f0bf96948a57ce0280af2495c08e326 Samit Basu <basu.samit@gmail.com> 1788161760 -0700	commit: 7-7: a note is part of the story, and the story knows when it stands
b4a032285f0bf96948a57ce0280af2495c08e326 0b77d7ba03c5e6c2d0c921a29b2b1b990b175d5a Samit Basu <basu.samit@gmail.com> 1788163306 -0700	commit: 7-8 + 7-9: tutorials are containers, proven against their own goldens
0b77d7ba03c5e6c2d0c921a29b2b1b990b175d5a 0b77d7ba03c5e6c2d0c921a29b2b1b990b175d5a Samit Basu <basu.samit@gmail.com> 1788165365 -0700	reset: moving to HEAD
0b77d7ba03c5e6c2d0c921a29b2b1b990b175d5a 8d64bc61de7c2475b69a04aea81614a2d5b95022 Samit Basu <basu.samit@gmail.com> 1788165516 -0700	commit: 7-10 + 7-11: the pipeline and the parser die; D14 closes
8d64bc61de7c2475b69a04aea81614a2d5b95022 1d312d08a9a3d6f52da2fed339370880128fae12 Samit Basu <basu.samit@gmail.com> 1788165792 -0700	commit: 7-12: the docs catch up with the demolition; Phase 7 substrate is complete
1d312d08a9a3d6f52da2fed339370880128fae12 1d312d08a9a3d6f52da2fed339370880128fae12 Samit Basu <basu.samit@gmail.com> 1788361367 -0700	checkout: moving from single-author to merge-cad-shell
1d312d08a9a3d6f52da2fed339370880128fae12 186ca733da651c793ac3524e0bdbe85db40fb99a Samit Basu <basu.samit@gmail.com> 1788362971 -0700	commit (merge): The two halves of the Phase 7 split come back together
186ca733da651c793ac3524e0bdbe85db40fb99a 186ca733da651c793ac3524e0bdbe85db40fb99a Samit Basu <basu.samit@gmail.com> 1788363064 -0700	checkout: moving from merge-cad-shell to merge-cad-shell
186ca733da651c793ac3524e0bdbe85db40fb99a 1d312d08a9a3d6f52da2fed339370880128fae12 Samit Basu <basu.samit@gmail.com> 1788363106 -0700	checkout: moving from merge-cad-shell to single-author
1d312d08a9a3d6f52da2fed339370880128fae12 186ca733da651c793ac3524e0bdbe85db40fb99a Samit Basu <basu.samit@gmail.com> 1788363107 -0700	merge merge-cad-shell: Fast-forward
186ca733da651c793ac3524e0bdbe85db40fb99a 186ca733da651c793ac3524e0bdbe85db40fb99a Samit Basu <basu.samit@gmail.com> 1788367289 -0700	checkout: moving from single-author to phase7-ui
186ca733da651c793ac3524e0bdbe85db40fb99a cd92dfdf0316bb5113ff1c4ae426611a2cc1815c Samit Basu <basu.samit@gmail.com> 1788367736 -0700	commit: A tutorial's log says what it teaches
cd92dfdf0316bb5113ff1c4ae426611a2cc1815c c98ac7937109c9bec39e4e0d2bb863b8705ad1c5 Samit Basu <basu.samit@gmail.com> 1788368779 -0700	commit: The Learn library and the walkthrough player
c98ac7937109c9bec39e4e0d2bb863b8705ad1c5 3512656133df7255d78642b73d5c54c6cfbd1f3a Samit Basu <basu.samit@gmail.com> 1788368945 -0700	commit: The tool cluster rings what a playing walkthrough teaches
3512656133df7255d78642b73d5c54c6cfbd1f3a 7f08df46cfd02324772fd1207b7430a919bb690e Samit Basu <basu.samit@gmail.com> 1788369173 -0700	commit: Walkthroughs join ⌘K, and invariant 13 closes
7f08df46cfd02324772fd1207b7430a919bb690e 46726d8a3abf4eac9f7f9b6b4bae4f9a1d42fe70 Samit Basu <basu.samit@gmail.com> 1788369576 -0700	commit: R15's walkthrough entry finds its two surfaces
46726d8a3abf4eac9f7f9b6b4bae4f9a1d42fe70 f6ba5f4f27e8449301c56e295758c59fd75800fb Samit Basu <basu.samit@gmail.com> 1788370029 -0700	commit: Watched state persists, and the three new pictures
f6ba5f4f27e8449301c56e295758c59fd75800fb 84bfef5103bd12d152df3bd5f9d03064e2fc2e44 Samit Basu <basu.samit@gmail.com> 1788370124 -0700	commit: The ledger: Phase 7 closes, R15 is answered, invariant 13 stands
84bfef5103bd12d152df3bd5f9d03064e2fc2e44 84bfef5103bd12d152df3bd5f9d03064e2fc2e44 Samit Basu <basu.samit@gmail.com> 1788370248 -0700	checkout: moving from phase7-ui to phase7-ui
84bfef5103bd12d152df3bd5f9d03064e2fc2e44 7bed4cf130210c5dea9a3f424b4d438e64c1359f Samit Basu <basu.samit@gmail.com> 1788370411 -0700	commit: R55: a document step lands in sight
7bed4cf130210c5dea9a3f424b4d438e64c1359f 186ca733da651c793ac3524e0bdbe85db40fb99a Samit Basu <basu.samit@gmail.com> 1788370411 -0700	checkout: moving from phase7-ui to single-author
186ca733da651c793ac3524e0bdbe85db40fb99a 7bed4cf130210c5dea9a3f424b4d438e64c1359f Samit Basu <basu.samit@gmail.com> 1788370411 -0700	merge phase7-ui: Fast-forward
7bed4cf130210c5dea9a3f424b4d438e64c1359f 5ce85aa7fc347f51a67e87cc14e611dee08fe8c6 Samit Basu <basu.samit@gmail.com> 1788474868 -0700	commit: R56: the tutorial subsystem is struck, R55 keeps its camera
5ce85aa7fc347f51a67e87cc14e611dee08fe8c6 0a7e4d7f5ae3819f37a734fac86f87b6621eee89 Samit Basu <basu.samit@gmail.com> 1788478389 -0700	commit: R57: a visualized step brings its own scope
0a7e4d7f5ae3819f37a734fac86f87b6621eee89 544ee836af19e4280e14117510f2e45b72054c64 Samit Basu <basu.samit@gmail.com> 1788798640 -0700	pull: Fast-forward
544ee836af19e4280e14117510f2e45b72054c64 641771b8b90a63d7a8687b0a605315cbdf22dc26 Samit Basu <basu.samit@gmail.com> 1788883110 -0700	pull: Fast-forward
641771b8b90a63d7a8687b0a605315cbdf22dc26 8227ef1f353455af9c4ba4c9cc51c4eed47aa05f Samit Basu <basu.samit@gmail.com> 1788889439 -0700	commit: §8.1 rewritten: the history row is what you scan, the card is what you act on
8227ef1f353455af9c4ba4c9cc51c4eed47aa05f 02dcad5516afca775e961ab77f17cab8c85fafbc Samit Basu <basu.samit@gmail.com> 1788895033 -0700	commit: `web serve` binds where you ask it to, not only loopback
02dcad5516afca775e961ab77f17cab8c85fafbc 1bc07d581dea6ef0c17b4fa42ee6c65608e6ddd9 Samit Basu <basu.samit@gmail.com> 1788898683 -0700	commit: The row's split is `Sides`, not a measurement of its own trailing text
1bc07d581dea6ef0c17b4fa42ee6c65608e6ddd9 1bc07d581dea6ef0c17b4fa42ee6c65608e6ddd9 Samit Basu <basu.samit@gmail.com> 1788900589 -0700	checkout: moving from single-author to taffy-layout
1bc07d581dea6ef0c17b4fa42ee6c65608e6ddd9 78b42d5e995cb0e20220b46432cf7e92ff71d115 Samit Basu <basu.samit@gmail.com> 1788900836 -0700	commit: A playbook and an API survey for the Taffy layout spike
78b42d5e995cb0e20220b46432cf7e92ff71d115 79720cb7b429832ad27a34ea23d1e07ca30c25d7 Samit Basu <basu.samit@gmail.com> 1788901314 -0700	commit: P0: the gate clears, and the side panel eases instead of springing
79720cb7b429832ad27a34ea23d1e07ca30c25d7 25f263301d0aaf2f3afdee05635c36c9840fc3ef Samit Basu <basu.samit@gmail.com> 1788904057 -0700	commit: P0 closes: `reveal` counts frames, and the shell has a measured baseline
25f263301d0aaf2f3afdee05635c36c9840fc3ef 2580528ffd43c2dc4644c9d5cd679121c34982b5 Samit Basu <basu.samit@gmail.com> 1788904249 -0700	commit: Snapshot tolerance is for machine variance, not for intended change
2580528ffd43c2dc4644c9d5cd679121c34982b5 2ed99e68b6c16dba66833b114c4bdb897ba94f47 Samit Basu <basu.samit@gmail.com> 1788905320 -0700	commit: Withdraw the snapshot tolerance: it had no evidence behind it
2ed99e68b6c16dba66833b114c4bdb897ba94f47 0e018b65dba73dcc4156baf4af784fa3e19066c0 Samit Basu <basu.samit@gmail.com> 1788905444 -0700	commit: P1: the shell's flex vocabulary, and an inspector to debug it with
0e018b65dba73dcc4156baf4af784fa3e19066c0 717d64488eba77d7c2b399458133632ebd944d45 Samit Basu <basu.samit@gmail.com> 1788905603 -0700	commit: Queue resizable, re-wrapping text annotations
717d64488eba77d7c2b399458133632ebd944d45 e9d0121a783d7077df477cb6407ea2e92b0fbb76 Samit Basu <basu.samit@gmail.com> 1788905663 -0700	commit: Playbook: record P1, and why text annotations were queued rather than folded in
e9d0121a783d7077df477cb6407ea2e92b0fbb76 e3a55eb964b057b791e94f3b3f7b863aea2c53a2 Samit Basu <basu.samit@gmail.com> 1788907619 -0700	commit: P2: the history panel lays out through the flex vocabulary
e3a55eb964b057b791e94f3b3f7b863aea2c53a2 b727e5935ef9f9d2bab112147202103dc47c1dd8 Samit Basu <basu.samit@gmail.com> 1788913992 -0700	commit: Shave the per-site tax off the flex vocabulary before it multiplies
b727e5935ef9f9d2bab112147202103dc47c1dd8 e82980e75416d1cbda1a5cb04277562b2ff80a2c Samit Basu <basu.samit@gmail.com> 1788914081 -0700	commit: Playbook: track the line-count ledger §11 will be judged on
e82980e75416d1cbda1a5cb04277562b2ff80a2c 2950aa11d2d9b22a36a291541082861700975c4e Samit Basu <basu.samit@gmail.com> 1788915179 -0700	commit: P3: the top bar migrates at −9 lines, and the vocabulary amortizes
2950aa11d2d9b22a36a291541082861700975c4e c50ffc2f3867a8bc7e21013429bb9db8905f9166 Samit Basu <basu.samit@gmail.com> 1789058368 -0700	commit: Park the spike after P3, with the resumption path written down
c50ffc2f3867a8bc7e21013429bb9db8905f9166 1bc07d581dea6ef0c17b4fa42ee6c65608e6ddd9 Samit Basu <basu.samit@gmail.com> 1789058386 -0700	checkout: moving from taffy-layout to single-author
1bc07d581dea6ef0c17b4fa42ee6c65608e6ddd9 c34a91cc3348a4dddcf5af307cfbca3be6ccae48 Samit Basu <basu.samit@gmail.com> 1789058460 -0700	checkout: moving from single-author to main
c34a91cc3348a4dddcf5af307cfbca3be6ccae48 1bc07d581dea6ef0c17b4fa42ee6c65608e6ddd9 Samit Basu <basu.samit@gmail.com> 1789058460 -0700	merge single-author: Fast-forward
1bc07d581dea6ef0c17b4fa42ee6c65608e6ddd9 1bc07d581dea6ef0c17b4fa42ee6c65608e6ddd9 Samit Basu <basu.samit@gmail.com> 1789058633 -0700	checkout: moving from main to main
1bc07d581dea6ef0c17b4fa42ee6c65608e6ddd9 c34a91cc3348a4dddcf5af307cfbca3be6ccae48 Samit Basu <basu.samit@gmail.com> 1789058633 -0700	reset: moving to c34a91c
c34a91cc3348a4dddcf5af307cfbca3be6ccae48 1bc07d581dea6ef0c17b4fa42ee6c65608e6ddd9 Samit Basu <basu.samit@gmail.com> 1789058636 -0700	checkout: moving from main to single-author
1bc07d581dea6ef0c17b4fa42ee6c65608e6ddd9 1bc07d581dea6ef0c17b4fa42ee6c65608e6ddd9 Samit Basu <basu.samit@gmail.com> 1789059671 -0700	checkout: moving from single-author to exit-egui
1bc07d581dea6ef0c17b4fa42ee6c65608e6ddd9 63588957ad444056b3aaadb465a3f7f75020e084 Samit Basu <basu.samit@gmail.com> 1789060159 -0700	commit: Exit-egui phase 0: the playbook
63588957ad444056b3aaadb465a3f7f75020e084 8bb299c00ab0cf7876b702c7447e395aad654dfd Samit Basu <basu.samit@gmail.com> 1789064055 -0700	commit: Exit-egui phase 1: the app owns its coordinates and its colours
8bb299c00ab0cf7876b702c7447e395aad654dfd add0eb6d15df47ffcbc0770bed24eb7b6ab68de2 Samit Basu <basu.samit@gmail.com> 1789064156 -0700	commit: Playbook: the grid↔world bridge joins geom in phase 3; World/Screen typing is a follow-up
add0eb6d15df47ffcbc0770bed24eb7b6ab68de2 41fb4850c2a9eb38b95063ce7afc4a060e8e4072 Samit Basu <basu.samit@gmail.com> 1789066011 -0700	commit: Exit-egui phase 2: the durable side is its own crate
41fb4850c2a9eb38b95063ce7afc4a060e8e4072 af88bd3ea6eeb84d3c79bbf8479d1d3654f34c32 Samit Basu <basu.samit@gmail.com> 1789067234 -0700	commit: Exit-egui phase 3: the router is its own crate, and one grid rounds for everyone
af88bd3ea6eeb84d3c79bbf8479d1d3654f34c32 0656e1fbdd3db56a8d0afe5081c10877b2121c4a Samit Basu <basu.samit@gmail.com> 1789069533 -0700	commit: Exit-egui phase 4: the tools draw through a Canvas, not through egui
0656e1fbdd3db56a8d0afe5081c10877b2121c4a de25187c2de2cfd1d9b74f6006edfffca9aabc19 Samit Basu <basu.samit@gmail.com> 1789069596 -0700	commit: Playbook: the target beyond this branch is kernel(&mut state, events) -> view
de25187c2de2cfd1d9b74f6006edfffca9aabc19 b425fee339f0f536f1b3b86ec50b4afc247fe713 Samit Basu <basu.samit@gmail.com> 1789070890 -0700	commit: Exit-egui phase 5: one crate knows egui, and it knows nothing else
b425fee339f0f536f1b3b86ec50b4afc247fe713 9f99afde20e852ab9bc7d6250592dc4fc0e78ab0 Samit Basu <basu.samit@gmail.com> 1789073520 -0700	commit: Exit-egui phase 6: the editor is a crate, and it draws without a toolkit
9f99afde20e852ab9bc7d6250592dc4fc0e78ab0 7f2c502f89946da3e9e60b3a0b25a279141f6f41 Samit Basu <basu.samit@gmail.com> 1789076355 -0700	commit: Exit-egui phase 7: the tools are a crate, and they name no toolkit
7f2c502f89946da3e9e60b3a0b25a279141f6f41 19c187ad387e4b5eab8b431d11f9783b81c660fa Samit Basu <basu.samit@gmail.com> 1789077724 -0700	commit: Exit-egui phase 8: the export writes without a toolkit
19c187ad387e4b5eab8b431d11f9783b81c660fa 81e9eae0faab1abc09a6ae5986521056be0e2947 Samit Basu <basu.samit@gmail.com> 1789080232 -0700	commit: Exit-egui phase 9a: the core runs as a function of its events
81e9eae0faab1abc09a6ae5986521056be0e2947 ce1936e36dd3bbc74731ba7390ce91bea4cd85ad Samit Basu <basu.samit@gmail.com> 1789081537 -0700	commit: Exit-egui phase 9b: the gates say what they check, and mean it
ce1936e36dd3bbc74731ba7390ce91bea4cd85ad 84e648c3132318fb98e0fb85cd3c97bccf34745e Samit Basu <basu.samit@gmail.com> 1789085331 -0700	commit: Exit-egui phase 9c: a request is an action, a result is an action
84e648c3132318fb98e0fb85cd3c97bccf34745e fec70fc4545b03f84076a022d4d25275af25d0ce Samit Basu <basu.samit@gmail.com> 1789101144 -0700	commit: Exit-egui phase 9d: the shell is five parts, and the frame is their order
fec70fc4545b03f84076a022d4d25275af25d0ce 7030debcc4a29df437ffa26d4bf9fb05cd49391c Samit Basu <basu.samit@gmail.com> 1789104053 -0700	commit: Exit-egui phase 9e: strip the citations, keep the sentence
7030debcc4a29df437ffa26d4bf9fb05cd49391c e65b9052f0cbe07a2efd313dd36256701388aec4 Samit Basu <basu.samit@gmail.com> 1789104347 -0700	rebase (start): checkout origin/main
e65b9052f0cbe07a2efd313dd36256701388aec4 cc80b3e3dc8886dcf4677d1f57b6cb1c3a426331 Samit Basu <basu.samit@gmail.com> 1789104347 -0700	rebase (pick): Exit-egui phase 0: the playbook
cc80b3e3dc8886dcf4677d1f57b6cb1c3a426331 549733890b58ee6d73651a079a155374123b926a Samit Basu <basu.samit@gmail.com> 1789104347 -0700	rebase (pick): Exit-egui phase 1: the app owns its coordinates and its colours
549733890b58ee6d73651a079a155374123b926a 1eea2d6ed6b4ce1fe7986033f581a791c8b2791a Samit Basu <basu.samit@gmail.com> 1789104347 -0700	rebase (pick): Playbook: the grid↔world bridge joins geom in phase 3; World/Screen typing is a follow-up
1eea2d6ed6b4ce1fe7986033f581a791c8b2791a fcb143ba39ca37880e0b70422d26281c3689824e Samit Basu <basu.samit@gmail.com> 1789104347 -0700	rebase (pick): Exit-egui phase 2: the durable side is its own crate
fcb143ba39ca37880e0b70422d26281c3689824e 2d857bcdac68866d026cbb64fe2ae16c195fca48 Samit Basu <basu.samit@gmail.com> 1789104347 -0700	rebase (pick): Exit-egui phase 3: the router is its own crate, and one grid rounds for everyone
2d857bcdac68866d026cbb64fe2ae16c195fca48 7bb93d76ac614e369e941a93c70d664bcf04eef4 Samit Basu <basu.samit@gmail.com> 1789104348 -0700	rebase (pick): Exit-egui phase 4: the tools draw through a Canvas, not through egui
7bb93d76ac614e369e941a93c70d664bcf04eef4 ebebd3e068dc4f68ed6d02a2ffa5a7b553efd55b Samit Basu <basu.samit@gmail.com> 1789104348 -0700	rebase (pick): Playbook: the target beyond this branch is kernel(&mut state, events) -> view
ebebd3e068dc4f68ed6d02a2ffa5a7b553efd55b 0c6128108660d9bb0eb0e4e9314215a8fb029913 Samit Basu <basu.samit@gmail.com> 1789104348 -0700	rebase (pick): Exit-egui phase 5: one crate knows egui, and it knows nothing else
0c6128108660d9bb0eb0e4e9314215a8fb029913 dad8b016e7de83e84ed67211af5586c039fd1efb Samit Basu <basu.samit@gmail.com> 1789104348 -0700	rebase (pick): Exit-egui phase 6: the editor is a crate, and it draws without a toolkit
dad8b016e7de83e84ed67211af5586c039fd1efb 098d6ed6bf8642ed9701567bd7e50e84ddcf03be Samit Basu <basu.samit@gmail.com> 1789104348 -0700	rebase (pick): Exit-egui phase 7: the tools are a crate, and they name no toolkit
098d6ed6bf8642ed9701567bd7e50e84ddcf03be 8fd0e70e2b71374fb08136fb1ffa345928149bd8 Samit Basu <basu.samit@gmail.com> 1789104348 -0700	rebase (pick): Exit-egui phase 8: the export writes without a toolkit
8fd0e70e2b71374fb08136fb1ffa345928149bd8 aebd2867e132bed76509386537a9f6562663dde4 Samit Basu <basu.samit@gmail.com> 1789104348 -0700	rebase (pick): Exit-egui phase 9a: the core runs as a function of its events
aebd2867e132bed76509386537a9f6562663dde4 f0b8c682e0ebc86d5f8bf0148b025eb0018f910b Samit Basu <basu.samit@gmail.com> 1789104348 -0700	rebase (pick): Exit-egui phase 9b: the gates say what they check, and mean it
f0b8c682e0ebc86d5f8bf0148b025eb0018f910b 2b8ab0727b51ef9ba4076be241b1ad853fa7588a Samit Basu <basu.samit@gmail.com> 1789104348 -0700	rebase (pick): Exit-egui phase 9c: a request is an action, a result is an action
2b8ab0727b51ef9ba4076be241b1ad853fa7588a e199feb29d4a0f4e624b1fa8c234823e74311f34 Samit Basu <basu.samit@gmail.com> 1789104348 -0700	rebase (pick): Exit-egui phase 9d: the shell is five parts, and the frame is their order
e199feb29d4a0f4e624b1fa8c234823e74311f34 5708876ed8bd1331118c96d68533d0c9d1d991b2 Samit Basu <basu.samit@gmail.com> 1789104348 -0700	rebase (pick): Exit-egui phase 9e: strip the citations, keep the sentence
5708876ed8bd1331118c96d68533d0c9d1d991b2 5708876ed8bd1331118c96d68533d0c9d1d991b2 Samit Basu <basu.samit@gmail.com> 1789104348 -0700	rebase (finish): returning to refs/heads/exit-egui
5708876ed8bd1331118c96d68533d0c9d1d991b2 17478bbd8687a724960b6438edadfd50e9e1ebc3 Samit Basu <basu.samit@gmail.com> 1789104809 -0700	commit: The core as seen from a React-style front end
17478bbd8687a724960b6438edadfd50e9e1ebc3 a8d6a50309d534466848e75711b56ce02d45a780 Samit Basu <basu.samit@gmail.com> 1789105737 -0700	commit: React interface: the in-place editor is invisible, and the core draws the text
a8d6a50309d534466848e75711b56ce02d45a780 c64727a3bf1ebd75270b9219d804519d5152f9aa Samit Basu <basu.samit@gmail.com> 1789105750 -0700	commit (amend): React interface: the in-place editor is invisible, and the core draws the text
c64727a3bf1ebd75270b9219d804519d5152f9aa a6ac80fc510038f92973d47c115945ac7466051e Samit Basu <basu.samit@gmail.com> 1789108677 -0700	commit: Commands in, delegations out: the shell owns every substate and every cancel
a6ac80fc510038f92973d47c115945ac7466051e e13d23d75e57c6b7f1d564b5ee1f0ae15a9db743 Samit Basu <basu.samit@gmail.com> 1789138273 -0700	commit: Retire the icon tool; the image cell's drop is the shell's own gesture
e13d23d75e57c6b7f1d564b5ee1f0ae15a9db743 fab1f87b4e50a2ea29cf8eaaf3533c3cf5ba314c Samit Basu <basu.samit@gmail.com> 1789143007 -0700	commit: The registry decides permission; the shell performs its own commands
fab1f87b4e50a2ea29cf8eaaf3533c3cf5ba314c 23437337bc6d3fa42676ddd369df84526702cd8d Samit Basu <basu.samit@gmail.com> 1789143276 -0700	commit: React interface: commands in, one slot out, no queries
23437337bc6d3fa42676ddd369df84526702cd8d cbac6c0d0c9d489d0411200de7ff279754dee906 Samit Basu <basu.samit@gmail.com> 1789143775 -0700	commit: React interface: the facade is a typed Rust API, and it is update, not frame
cbac6c0d0c9d489d0411200de7ff279754dee906 c21daedfa710e40b10c793e70b190230ad80facd Samit Basu <basu.samit@gmail.com> 1789143796 -0700	commit: React interface: open returns a Result at the glue edge too
c21daedfa710e40b10c793e70b190230ad80facd 3813c893d1df0fe2a7e5c30fbaf79e91f2d6331e Samit Basu <basu.samit@gmail.com> 1789144576 -0700	commit: A command in, a result in the slot: the shell never queries the editor
3813c893d1df0fe2a7e5c30fbaf79e91f2d6331e 3b2b328e0dd319c96e00de4faa9c4a1c3e73b93d Samit Basu <basu.samit@gmail.com> 1789145212 -0700	commit: React interface: time and the viewport are events, not arguments
3b2b328e0dd319c96e00de4faa9c4a1c3e73b93d 893f547db9032fb570dc6b6d16778771ba046955 Samit Basu <basu.samit@gmail.com> 1789146279 -0700	commit: Everything the front end says is an event, time and the viewport included
893f547db9032fb570dc6b6d16778771ba046955 893f547db9032fb570dc6b6d16778771ba046955 Samit Basu <basu.samit@gmail.com> 1789165604 -0700	checkout: moving from exit-egui to shell-on-kernel
893f547db9032fb570dc6b6d16778771ba046955 a5b1e318f814776ecc68d986aa5e083cc30f21c1 Samit Basu <basu.samit@gmail.com> 1789165654 -0700	commit: Shell-on-kernel phase 0: the playbook
a5b1e318f814776ecc68d986aa5e083cc30f21c1 5c53a08798d9429707d34fec3ffcb83581db590a Samit Basu <basu.samit@gmail.com> 1789168181 -0700	commit: Shell-on-kernel phase 1: the replayer
5c53a08798d9429707d34fec3ffcb83581db590a 53b45fa4c1d717231141e370f5a82dbbfc75d30e Samit Basu <basu.samit@gmail.com> 1789189847 -0700	commit: Shell-on-kernel phase 2: the chrome model
53b45fa4c1d717231141e370f5a82dbbfc75d30e 193c634acc482b05b05dab2e180812057863c85a Samit Basu <basu.samit@gmail.com> 1789190966 -0700	commit: Shell-on-kernel phase 3: pointer resolution
193c634acc482b05b05dab2e180812057863c85a e60a3acb58962c8e9a67a2c585ae0586799be3c7 Samit Basu <basu.samit@gmail.com> 1789192243 -0700	commit: Shell-on-kernel phase 4: the camera
e60a3acb58962c8e9a67a2c585ae0586799be3c7 0cc899244d71779ded219a0a940a3e494273ee2b Samit Basu <basu.samit@gmail.com> 1789193981 -0700	commit: Shell-on-kernel phase 5: in-place editing
0cc899244d71779ded219a0a940a3e494273ee2b 8c73f8ccd7398f88022439a2b5d83829d6f76c91 Samit Basu <basu.samit@gmail.com> 1789223497 -0700	commit: Shell-on-kernel phase 6: App::update is one batch, one kernel call, one replay
8c73f8ccd7398f88022439a2b5d83829d6f76c91 042c33ae893ac20f5824df772829c432b4e81b7a Samit Basu <basu.samit@gmail.com> 1789225231 -0700	commit: A click on the glass no longer leaves a press on the canvas; editors align to their labels
042c33ae893ac20f5824df772829c432b4e81b7a e40138cdaa05e9e9e2c192186308ead37ea2df7d Samit Basu <basu.samit@gmail.com> 1789313901 -0700	commit: Todo: the UI nits found in use, and what the UI/kernel split still needs
e40138cdaa05e9e9e2c192186308ead37ea2df7d c34a91cc3348a4dddcf5af307cfbca3be6ccae48 Samit Basu <basu.samit@gmail.com> 1789313923 -0700	checkout: moving from shell-on-kernel to main
c34a91cc3348a4dddcf5af307cfbca3be6ccae48 e65b9052f0cbe07a2efd313dd36256701388aec4 Samit Basu <basu.samit@gmail.com> 1789313924 -0700	pull -q origin main: Fast-forward
e65b9052f0cbe07a2efd313dd36256701388aec4 0cfc57d9265224ad9efaaf70487812bb0c4f7401 Samit Basu <basu.samit@gmail.com> 1789313940 -0700	pull -q origin main: Fast-forward
0cfc57d9265224ad9efaaf70487812bb0c4f7401 0cfc57d9265224ad9efaaf70487812bb0c4f7401 Samit Basu <basu.samit@gmail.com> 1789315034 -0700	checkout: moving from main to ui-ux-split-completion
0cfc57d9265224ad9efaaf70487812bb0c4f7401 69a069c31f66424caa50d81d2e719dab8e9eb105 Samit Basu <basu.samit@gmail.com> 1789315414 -0700	commit: UI/kernel split completion: the branch playbook and the resolved todo section
69a069c31f66424caa50d81d2e719dab8e9eb105 7923a811c3c33963ae67725d41d96c781af300bb Samit Basu <basu.samit@gmail.com> 1789315863 -0700	commit: Errand is Effect: the standard name for what a pure update hands the host
7923a811c3c33963ae67725d41d96c781af300bb ff9b78f3662c73ccf7c21e623573ef7d73d2aff6 Samit Basu <basu.samit@gmail.com> 1789329277 -0700	commit: E3: the text editor is the front end's; only the text comes back
ff9b78f3662c73ccf7c21e623573ef7d73d2aff6 0ec8c0c9029f06d68742a491329be84012731210 Samit Basu <basu.samit@gmail.com> 1789329601 -0700	pull -q --ff-only origin ui-ux-split-completion: Fast-forward
0ec8c0c9029f06d68742a491329be84012731210 076d742c0ffb4b6d00bfd9bc65e48ccfafb985ed Samit Basu <basu.samit@gmail.com> 1789330432 -0700	commit: E1: no Tool crosses the call; chaining stays
076d742c0ffb4b6d00bfd9bc65e48ccfafb985ed 48002bec7b762afc0941f3654c22ef33aa082f7b Samit Basu <basu.samit@gmail.com> 1789331120 -0700	commit: E8: serde on everything that crosses the kernel call
48002bec7b762afc0941f3654c22ef33aa082f7b 0d2878fb690a1f56f4a00a650f7b488c855c1f4c Samit Basu <basu.samit@gmail.com> 1789331165 -0700	commit: Cargo.lock for E8's serde dependencies
0d2878fb690a1f56f4a00a650f7b488c855c1f4c abbb680db4621393c5447f89cc4633cae3011fff Samit Basu <basu.samit@gmail.com> 1789331410 -0700	commit: Deliver a call's hand-offs before replaying its display list
abbb680db4621393c5447f89cc4633cae3011fff 7db9511322e04c3ed37f50f8fe0e9558596eb72f Samit Basu <basu.samit@gmail.com> 1789331453 -0700	commit: Playbook: E1 names the tool hand-off as it landed
7db9511322e04c3ed37f50f8fe0e9558596eb72f 0b0db69863058bdbaedec6ff48a7f7c183c64268 Samit Basu <basu.samit@gmail.com> 1789334247 -0700	commit: Draw in-place editors over the picture, not under it
0b0db69863058bdbaedec6ff48a7f7c183c64268 0da981b0746e59e4b96a5fec8c4c377f166a03ca Samit Basu <basu.samit@gmail.com> 1789336499 -0700	commit: Make in-place editors stand out from the drawing
0da981b0746e59e4b96a5fec8c4c377f166a03ca 7c1eb6a3acd25d4e7661f83ce5cb06eb56f85898 Samit Basu <basu.samit@gmail.com> 1789336629 -0700	commit: Fix the text box tool's doc link to box_width
7c1eb6a3acd25d4e7661f83ce5cb06eb56f85898 0080c8616061c69d7f16c849e74a9e555bae93da Samit Basu <basu.samit@gmail.com> 1789358635 -0700	commit: E6: the palette crosses the seam as a command
0080c8616061c69d7f16c849e74a9e555bae93da f1fdd839cdcb09946d4efa407bf1eece86c49820 Samit Basu <basu.samit@gmail.com> 1789358710 -0700	commit: CLAUDE.md: the theme reaches the kernel as SetPalette, not as a host fact
f1fdd839cdcb09946d4efa407bf1eece86c49820 f1fdd839cdcb09946d4efa407bf1eece86c49820 Samit Basu <basu.samit@gmail.com> 1789358786 -0700	checkout: moving from ui-ux-split-completion to ui-ux-split-completion
f1fdd839cdcb09946d4efa407bf1eece86c49820 f1fdd839cdcb09946d4efa407bf1eece86c49820 Samit Basu <basu.samit@gmail.com> 1789358786 -0700	checkout: moving from ui-ux-split-completion to ui-polish
f1fdd839cdcb09946d4efa407bf1eece86c49820 5aaa334bc59a5e35d70bb5448d67378143c08be6 Samit Basu <basu.samit@gmail.com> 1789358786 -0700	commit: ui-polish: the branch playbook for the UI nits
5aaa334bc59a5e35d70bb5448d67378143c08be6 31ed2089888f2483b710aaa933fb0f332edd8c27 Samit Basu <basu.samit@gmail.com> 1789359197 -0700	commit: P1: rename Paint to DrawOp, and the display list to DrawList
31ed2089888f2483b710aaa933fb0f332edd8c27 c256c456214dce3e210b8002e36cc4ac1dc5f1b4 Samit Basu <basu.samit@gmail.com> 1789360597 -0700	commit: P2: the text and port tools stamp on a click; text boxes cap their rows
c256c456214dce3e210b8002e36cc4ac1dc5f1b4 82cb22e79947c07b10dc3e47d5a4ab1fec2339e6 Samit Basu <basu.samit@gmail.com> 1789361855 -0700	commit: P4: the add-pin tool returns; routing out of a fresh pin is retired
82cb22e79947c07b10dc3e47d5a4ab1fec2339e6 dbdba0d530ef48d04947ef74b481ca89b58f0bd5 Samit Basu <basu.samit@gmail.com> 1789361857 -0700	pull --rebase origin ui-polish (start): checkout dbdba0d530ef48d04947ef74b481ca89b58f0bd5
dbdba0d530ef48d04947ef74b481ca89b58f0bd5 d7251210833beb0c5d6cc64ad043160f986735a4 Samit Basu <basu.samit@gmail.com> 1789362257 -0700	rebase (continue): P4: the add-pin tool returns; routing out of a fresh pin is retired
d7251210833beb0c5d6cc64ad043160f986735a4 d7251210833beb0c5d6cc64ad043160f986735a4 Samit Basu <basu.samit@gmail.com> 1789362257 -0700	rebase (finish): returning to refs/heads/ui-polish
d7251210833beb0c5d6cc64ad043160f986735a4 d7251210833beb0c5d6cc64ad043160f986735a4 Samit Basu <basu.samit@gmail.com> 1789363300 -0700	checkout: moving from ui-polish to ui-polish
d7251210833beb0c5d6cc64ad043160f986735a4 763a78d098de329b8bd785e5fad7b04425257a5c Samit Basu <basu.samit@gmail.com> 1789363300 -0700	merge origin/ui-polish: Fast-forward
763a78d098de329b8bd785e5fad7b04425257a5c 86de4585ba779af48e08cf8d6b8b12152790d443 Samit Basu <basu.samit@gmail.com> 1789363301 -0700	rebase (start): checkout origin/main
86de4585ba779af48e08cf8d6b8b12152790d443 0181057a128e4541549df4ea2e6ecc8a9624ba52 Samit Basu <basu.samit@gmail.com> 1789363301 -0700	rebase (pick): ui-polish: the branch playbook for the UI nits
0181057a128e4541549df4ea2e6ecc8a9624ba52 2ddec432bd57b310712fb6cfcd476ad705482e72 Samit Basu <basu.samit@gmail.com> 1789363301 -0700	rebase (pick): P1: rename Paint to DrawOp, and the display list to DrawList
2ddec432bd57b310712fb6cfcd476ad705482e72 14b7d593cce447fba6ce7691fab6cb1e938dc9e4 Samit Basu <basu.samit@gmail.com> 1789363301 -0700	rebase (pick): P2: the text and port tools stamp on a click; text boxes cap their rows
14b7d593cce447fba6ce7691fab6cb1e938dc9e4 f241c7a2b5e7861fe3a042bba618f492b108ff0b Samit Basu <basu.samit@gmail.com> 1789363301 -0700	rebase (pick): P5: the selection overlay shows five controls, and the rest behind …
f241c7a2b5e7861fe3a042bba618f492b108ff0b f29bd290239969219f52b660d1b338ffd19c613b Samit Basu <basu.samit@gmail.com> 1789363301 -0700	rebase (pick): P5: remove the share bundle and the JSON export and import doors
f29bd290239969219f52b660d1b338ffd19c613b 5d6b14833e5162eb81f8c0e08335f6da55e191c7 Samit Basu <basu.samit@gmail.com> 1789363301 -0700	rebase (pick): P4: the add-pin tool returns; routing out of a fresh pin is retired
5d6b14833e5162eb81f8c0e08335f6da55e191c7 d5db52fb9ade408fea3482ff5e610071e4cfc49b Samit Basu <basu.samit@gmail.com> 1789363301 -0700	rebase (pick): P3: resize handles and their grab grow together, defined once
d5db52fb9ade408fea3482ff5e610071e4cfc49b 380671a369683f388919716c47d86e4dbd1c16cb Samit Basu <basu.samit@gmail.com> 1789363301 -0700	rebase (pick): P3: a selected text box resizes from its corners; its width is stored
380671a369683f388919716c47d86e4dbd1c16cb 380671a369683f388919716c47d86e4dbd1c16cb Samit Basu <basu.samit@gmail.com> 1789363301 -0700	rebase (finish): returning to refs/heads/ui-polish
380671a369683f388919716c47d86e4dbd1c16cb aab4a062f995322fbe4507d40fa67b14cbd0e579 Samit Basu <basu.samit@gmail.com> 1789363301 -0700	commit: ui-polish playbook: the split it builds on is merged
aab4a062f995322fbe4507d40fa67b14cbd0e579 0cfc57d9265224ad9efaaf70487812bb0c4f7401 Samit Basu <basu.samit@gmail.com> 1789364112 -0700	checkout: moving from ui-polish to main
0cfc57d9265224ad9efaaf70487812bb0c4f7401 6f8b9011f3d94c9d0fa293c0b1e04810de21e19f Samit Basu <basu.samit@gmail.com> 1789364113 -0700	pull -q --ff-only origin main: Fast-forward
6f8b9011f3d94c9d0fa293c0b1e04810de21e19f 6f8b9011f3d94c9d0fa293c0b1e04810de21e19f Samit Basu <basu.samit@gmail.com> 1789403095 -0700	checkout: moving from main to dioxus-web-shell
6f8b9011f3d94c9d0fa293c0b1e04810de21e19f 61062df669bfa7e590f5276ffdff80a0486357bb Samit Basu <basu.samit@gmail.com> 1789403095 -0700	commit: Dioxus web shell: the playbook
61062df669bfa7e590f5276ffdff80a0486357bb 61062df669bfa7e590f5276ffdff80a0486357bb Samit Basu <basu.samit@gmail.com> 1789404461 -0700	reset: moving to HEAD
61062df669bfa7e590f5276ffdff80a0486357bb 9b8576e4a6bf460b352cf38516e4d735156783fe Samit Basu <basu.samit@gmail.com> 1789404900 -0700	commit: blockworx-text: shaping and glyph outlines lifted out of the exporters
9b8576e4a6bf460b352cf38516e4d735156783fe 71cd58d17ebbce86385bc20c56b596ff52b72bf7 Samit Basu <basu.samit@gmail.com> 1789407057 -0700	commit: blockworx-canvas2d: the web backend
71cd58d17ebbce86385bc20c56b596ff52b72bf7 7e4ff796f274bee6c2f833079995a39db2012365 Samit Basu <basu.samit@gmail.com> 1789407175 -0700	merge dioxus-web-shell-storage: Fast-forward
7e4ff796f274bee6c2f833079995a39db2012365 e5188d4a7c2b84f96ee853051ca7e7ef8a36afd7 Samit Basu <basu.samit@gmail.com> 1789407477 -0700	commit: The store's clock through web-time, not js-sys
e5188d4a7c2b84f96ee853051ca7e7ef8a36afd7 7b50a7346e7d238e73ae1981732d3c3fa081f449 Samit Basu <basu.samit@gmail.com> 1789410355 -0700	commit: blockworx-web: the Dioxus shell skeleton
7b50a7346e7d238e73ae1981732d3c3fa081f449 0a6a95afdeab99438ce5756d39e26ba03e327570 Samit Basu <basu.samit@gmail.com> 1789411443 -0700	commit: Undo and redo are rows in the binding table
0a6a95afdeab99438ce5756d39e26ba03e327570 2ecb70c3531ae3af503ff80f903cbf5fec2d1f83 Samit Basu <basu.samit@gmail.com> 1789413126 -0700	merge dioxus-web-shell-opfs: Fast-forward
2ecb70c3531ae3af503ff80f903cbf5fec2d1f83 cae80a37dc1bac5f5381b9b298842055aef20074 Samit Basu <basu.samit@gmail.com> 1789415404 -0700	merge worktree-agent-aace4999cdf555490: Fast-forward
cae80a37dc1bac5f5381b9b298842055aef20074 b05089264e5799e3fb6b12c32b1d79feed7756ff Samit Basu <basu.samit@gmail.com> 1789419056 -0700	merge worktree-agent-ac8c177e58945a814: Fast-forward
b05089264e5799e3fb6b12c32b1d79feed7756ff a0a9a08a4d24bc94ebe4ea64db94b48ac8e13d62 Samit Basu <basu.samit@gmail.com> 1789420709 -0700	merge worktree-agent-ab8bcdcf847fbeda0: Fast-forward
a0a9a08a4d24bc94ebe4ea64db94b48ac8e13d62 79d481efa3f633e54806730f76466ec5461b440e Samit Basu <basu.samit@gmail.com> 1789424153 -0700	merge worktree-agent-a77df19db696a1b3c: Fast-forward
79d481efa3f633e54806730f76466ec5461b440e a9289f97a094cd644ccc4b9b19289acbd3b21ae4 Samit Basu <basu.samit@gmail.com> 1789443219 -0700	commit: Web shell fixes from a first real use, and a dev wasm that fits in memory
a9289f97a094cd644ccc4b9b19289acbd3b21ae4 d887f2762a57a1fbf14dedf2d86bb93c2684991b Samit Basu <basu.samit@gmail.com> 1789486087 -0700	commit: Web shell round two: keyboard and focus, a toolbar of divs, archives, stamped logs
d887f2762a57a1fbf14dedf2d86bb93c2684991b 1d9437710bfff228520a14f392865aedf0601469 Samit Basu <basu.samit@gmail.com> 1789486929 -0700	commit: todo.md: gather the performance findings into one deferred block
1d9437710bfff228520a14f392865aedf0601469 a26ea052026dd95c64c880b9a52009f25f4ecf77 Samit Basu <basu.samit@gmail.com> 1789491279 -0700	commit: Web shell UI nits: ground, cursors, easing, right-drag, renames that undo, PDF room
a26ea052026dd95c64c880b9a52009f25f4ecf77 a26ea052026dd95c64c880b9a52009f25f4ecf77 Samit Basu <basu.samit@gmail.com> 1789491294 -0700	checkout: moving from dioxus-web-shell to web-shell-sidebar
a26ea052026dd95c64c880b9a52009f25f4ecf77 f8cd6e1a25d71a38ad2ddea0fdc814bbad35ad73 Samit Basu <basu.samit@gmail.com> 1789491538 -0700	commit: S1 sidebar: the playbook, and the UI spec amended before any code
f8cd6e1a25d71a38ad2ddea0fdc814bbad35ad73 e4f44e87970bfef46863e483327dd613d052ce50 Samit Basu <basu.samit@gmail.com> 1789492998 -0700	commit: S1 sidebar: status line and notices move out from under the panel
e4f44e87970bfef46863e483327dd613d052ce50 4c235681809bc476f4698a979910d2e21a5559a7 Samit Basu <basu.samit@gmail.com> 1789494524 -0700	commit: S1 P1–P2: tools in use order and three groups; the web toolbar at the bottom
4c235681809bc476f4698a979910d2e21a5559a7 06a2d151a7c21f31f196af075fa5e756abef39d7 Samit Basu <basu.samit@gmail.com> 1789495836 -0700	commit: S1 P3–P6: the web shell's sidebar — Diagrams, Parts, History, Settings
06a2d151a7c21f31f196af075fa5e756abef39d7 fc60167d3f6308b6719c112d69871ada6a49afdb Samit Basu <basu.samit@gmail.com> 1789536972 -0700	commit: Web shell: the theme cards follow the switch, tags that read, a card that balances
fc60167d3f6308b6719c112d69871ada6a49afdb 6f8b9011f3d94c9d0fa293c0b1e04810de21e19f Samit Basu <basu.samit@gmail.com> 1789536997 -0700	checkout: moving from web-shell-sidebar to main
6f8b9011f3d94c9d0fa293c0b1e04810de21e19f 956516e2d29fc06984c585606f6e16cfbe6a6f75 Samit Basu <basu.samit@gmail.com> 1789536999 -0700	pull --ff-only: Fast-forward
956516e2d29fc06984c585606f6e16cfbe6a6f75 956516e2d29fc06984c585606f6e16cfbe6a6f75 Samit Basu <basu.samit@gmail.com> 1789537046 -0700	checkout: moving from main to web-drop-import
956516e2d29fc06984c585606f6e16cfbe6a6f75 b167c464b29092b03ba965015895f5ad0a29dea1 Samit Basu <basu.samit@gmail.com> 1789594191 -0700	commit: Web shell: a file dropped on the diagram comes in through its own door
b167c464b29092b03ba965015895f5ad0a29dea1 94e3ae93e760d3ab27c7f4ff8c6749509d38b141 Samit Basu <basu.samit@gmail.com> 1789620139 -0700	commit: Two drop zones: a document filed, or embedded as a block
94e3ae93e760d3ab27c7f4ff8c6749509d38b141 9eb0a8be6fb36f4718d0bbf1354c0397b3aeba0b Samit Basu <basu.samit@gmail.com> 1789622712 -0700	commit: Read an embedded archive the way the library opens one
9eb0a8be6fb36f4718d0bbf1354c0397b3aeba0b 956516e2d29fc06984c585606f6e16cfbe6a6f75 Samit Basu <basu.samit@gmail.com> 1789663931 -0700	checkout: moving from web-drop-import to main
956516e2d29fc06984c585606f6e16cfbe6a6f75 956516e2d29fc06984c585606f6e16cfbe6a6f75 Samit Basu <basu.samit@gmail.com> 1789663933 -0700	checkout: moving from main to retire-projection
956516e2d29fc06984c585606f6e16cfbe6a6f75 956516e2d29fc06984c585606f6e16cfbe6a6f75 Samit Basu <basu.samit@gmail.com> 1789663952 -0700	checkout: moving from retire-projection to main
956516e2d29fc06984c585606f6e16cfbe6a6f75 479b2c52966a2171574743dc2ce1806f8379a585 Samit Basu <basu.samit@gmail.com> 1789663953 -0700	pull --ff-only: Fast-forward
479b2c52966a2171574743dc2ce1806f8379a585 479b2c52966a2171574743dc2ce1806f8379a585 Samit Basu <basu.samit@gmail.com> 1789663953 -0700	checkout: moving from main to retire-projection
479b2c52966a2171574743dc2ce1806f8379a585 7dd62e4a8ea05477ab92cf25b5db39ce0cca7ba0 Samit Basu <basu.samit@gmail.com> 1789664068 -0700	commit: The playbook for retiring document.json
7dd62e4a8ea05477ab92cf25b5db39ce0cca7ba0 567b03f169e29b4ba2f9ba603c013b082306ccbe Samit Basu <basu.samit@gmail.com> 1789665484 -0700	commit: Retire document.json
567b03f169e29b4ba2f9ba603c013b082306ccbe 479b2c52966a2171574743dc2ce1806f8379a585 Samit Basu <basu.samit@gmail.com> 1789691275 -0700	checkout: moving from retire-projection to main
479b2c52966a2171574743dc2ce1806f8379a585 39c31a23d29cf007ff6b42c0211784100588bb27 Samit Basu <basu.samit@gmail.com> 1789691277 -0700	pull --ff-only: Fast-forward
39c31a23d29cf007ff6b42c0211784100588bb27 39c31a23d29cf007ff6b42c0211784100588bb27 Samit Basu <basu.samit@gmail.com> 1789693958 -0700	checkout: moving from main to fix-middle-click-paste
39c31a23d29cf007ff6b42c0211784100588bb27 c619392a286638dde03effe06f9026fa21942061 Samit Basu <basu.samit@gmail.com> 1789693958 -0700	commit: Clicking the scroll wheel no longer pastes
c619392a286638dde03effe06f9026fa21942061 5ca11b5179d985a09c85ec31d08fade3c1d31a90 Samit Basu <basu.samit@gmail.com> 1789695829 -0700	commit: Close G6: pin what makes its symptom unreachable
5ca11b5179d985a09c85ec31d08fade3c1d31a90 fed07b1048947909499fd05666967a431fa0c141 Samit Basu <basu.samit@gmail.com> 1789696823 -0700	commit: A refused move says so while the drag is still in the hand
fed07b1048947909499fd05666967a431fa0c141 6546357f60be364a50e3d8684e5c329b0dc24ab8 Samit Basu <basu.samit@gmail.com> 1789696836 -0700	commit: todo: the block-onto-block paper cut, diagnosed and half done
6546357f60be364a50e3d8684e5c329b0dc24ab8 0e99a9c8d60150610eb93750b5552711741f6e59 Samit Basu <basu.samit@gmail.com> 1789712114 -0700	commit: todo: the nudge refusal is skipped, not owed
0e99a9c8d60150610eb93750b5552711741f6e59 8c465864a614ca52cebe88f7dfe48b8eba251cd5 Samit Basu <basu.samit@gmail.com> 1789739813 -0700	commit: todo: two editor nits — the grabbable block icon, and route labels clamped onto the pin
8c465864a614ca52cebe88f7dfe48b8eba251cd5 227ff7d9ba279c9214f3ef3db718794c2189a8e3 Samit Basu <basu.samit@gmail.com> 1789741280 -0700	commit: Hatch the overlap: a conflict is what two shapes share
227ff7d9ba279c9214f3ef3db718794c2189a8e3 1f32b98328e484c18a73f3b28c2b89581e582ef4 Samit Basu <basu.samit@gmail.com> 1789744179 -0700	commit: An icon takes a drag only while it is the selection
1f32b98328e484c18a73f3b28c2b89581e582ef4 39c31a23d29cf007ff6b42c0211784100588bb27 Samit Basu <basu.samit@gmail.com> 1789744623 -0700	checkout: moving from fix-middle-click-paste to main
39c31a23d29cf007ff6b42c0211784100588bb27 30a3661d828957008d9688adc918020f18e1f526 Samit Basu <basu.samit@gmail.com> 1789744624 -0700	pull --ff-only: Fast-forward
30a3661d828957008d9688adc918020f18e1f526 30a3661d828957008d9688adc918020f18e1f526 Samit Basu <basu.samit@gmail.com> 1789745511 -0700	checkout: moving from main to retire-egui
30a3661d828957008d9688adc918020f18e1f526 bb115825f242f25418df2103ab658380a81922c3 Samit Basu <basu.samit@gmail.com> 1789745571 -0700	commit: The playbook for retiring the egui shell
bb115825f242f25418df2103ab658380a81922c3 d420c75514704d8d8070ee4c7da09da6620dd55d Samit Basu <basu.samit@gmail.com> 1789745822 -0700	commit: The three open questions, decided
d420c75514704d8d8070ee4c7da09da6620dd55d 7f6b9a8d9a9b4e1a3e3495f05d131c9062e6fb27 Samit Basu <basu.samit@gmail.com> 1789745858 -0700	commit: todo: the egui retirement's three decisions
7f6b9a8d9a9b4e1a3e3495f05d131c9062e6fb27 72f88a7e775e1e6151e6f2c21aaa6381934f6e4f Samit Basu <basu.samit@gmail.com> 1789747514 -0700	commit: P1: the test harness measures through the shaper, not egui
72f88a7e775e1e6151e6f2c21aaa6381934f6e4f 7f6b9a8d9a9b4e1a3e3495f05d131c9062e6fb27 Samit Basu <basu.samit@gmail.com> 1789748011 -0700	reset: moving to HEAD~1
7f6b9a8d9a9b4e1a3e3495f05d131c9062e6fb27 105ac6df6dd8a3d049f5ac515dff30a52acaf992 Samit Basu <basu.samit@gmail.com> 1789748035 -0700	commit: P1: the test harness measures through the shaper, not egui
105ac6df6dd8a3d049f5ac515dff30a52acaf992 175400a9dc538f3195d92466d0bc9b7e8e15c9dd Samit Basu <basu.samit@gmail.com> 1789748045 -0700	commit: Ignore the scratch at the repo root
175400a9dc538f3195d92466d0bc9b7e8e15c9dd 86a6d8c07289c7334728696ce68593555e900c32 Samit Basu <basu.samit@gmail.com> 1789748174 -0700	commit: P2: the CLI stops sharing a file with the shell
86a6d8c07289c7334728696ce68593555e900c32 afb26985937de05b5318d6ebb6713613ef417d36 Samit Basu <basu.samit@gmail.com> 1789749519 -0700	commit: Drop --trace, and keep a demo container to test against
afb26985937de05b5318d6ebb6713613ef417d36 675368e14c10a23133f54925de83b6b6fb95b32c Samit Basu <basu.samit@gmail.com> 1789750829 -0700	commit: P3: the egui shell is deleted
675368e14c10a23133f54925de83b6b6fb95b32c 9d16c8d03450d60713717bcc5c4631d5ef57dc52 Samit Basu <basu.samit@gmail.com> 1789751893 -0700	commit: P4: the gates narrow, and one of them tightens
9d16c8d03450d60713717bcc5c4631d5ef57dc52 fcba142f7084a79a81d29789474a21f6e157707b Samit Basu <basu.samit@gmail.com> 1789752073 -0700	commit: P5: walked, and the branch's state recorded
fcba142f7084a79a81d29789474a21f6e157707b 30a3661d828957008d9688adc918020f18e1f526 Samit Basu <basu.samit@gmail.com> 1789766851 -0700	checkout: moving from retire-egui to main
30a3661d828957008d9688adc918020f18e1f526 a12d6b21f99626e2401215e9be72e5819010bfbb Samit Basu <basu.samit@gmail.com> 1789766852 -0700	pull --ff-only: Fast-forward
a12d6b21f99626e2401215e9be72e5819010bfbb dd6e8eb381c93e3b7dfe885a7f41b444ab566ca3 Samit Basu <basu.samit@gmail.com> 1789767134 -0700	commit: todo: the egui retirement is landed
dd6e8eb381c93e3b7dfe885a7f41b444ab566ca3 a12d6b21f99626e2401215e9be72e5819010bfbb Samit Basu <basu.samit@gmail.com> 1789767155 -0700	reset: moving to origin/main
a12d6b21f99626e2401215e9be72e5819010bfbb a12d6b21f99626e2401215e9be72e5819010bfbb Samit Basu <basu.samit@gmail.com> 1789768003 -0700	checkout: moving from main to profile-the-solve-rider
a12d6b21f99626e2401215e9be72e5819010bfbb 6fe091937a16ea6afbee6ca67f739c9e7f63561d Samit Basu <basu.samit@gmail.com> 1789768003 -0700	commit: Name the phases a nudge spends its time in
6fe091937a16ea6afbee6ca67f739c9e7f63561d ee5b884c754f8e343f8d684960a3480b12490d20 Samit Basu <basu.samit@gmail.com> 1789768700 -0700	commit: Name the phases inside RouterNG::update
ee5b884c754f8e343f8d684960a3480b12490d20 bd4bf1784903e82cce7b8e82a2834efd258edbee Samit Basu <basu.samit@gmail.com> 1789769910 -0700	commit: The router's node index wants hashing, not ordering
bd4bf1784903e82cce7b8e82a2834efd258edbee 1f08fefe531f7081624d64554a7fd5cf2ae437fb Samit Basu <basu.samit@gmail.com> 1789770675 -0700	commit: A hugging wire is offset from the index, not outside it
1f08fefe531f7081624d64554a7fd5cf2ae437fb ee5b884c754f8e343f8d684960a3480b12490d20 Samit Basu <basu.samit@gmail.com> 1789788681 -0700	checkout: moving from profile-the-solve-rider to ee5b884
ee5b884c754f8e343f8d684960a3480b12490d20 1f08fefe531f7081624d64554a7fd5cf2ae437fb Samit Basu <basu.samit@gmail.com> 1789788726 -0700	checkout: moving from ee5b884c754f8e343f8d684960a3480b12490d20 to profile-the-solve-rider
1f08fefe531f7081624d64554a7fd5cf2ae437fb 0a588462a5a56a6856bb0dba09583b8a9c90f51d Samit Basu <basu.samit@gmail.com> 1789790307 -0700	commit: The settled 50×50, as a container to open
0a588462a5a56a6856bb0dba09583b8a9c90f51d aacacba5ee3aa23730df6051c9acb0fd34656bfe Samit Basu <basu.samit@gmail.com> 1789796467 -0700	commit: Design note: the baked router
aacacba5ee3aa23730df6051c9acb0fd34656bfe 935d59c45672c548de543b7140eb2c778fcc8594 Samit Basu <basu.samit@gmail.com> 1789797207 -0700	commit: Two decisions on the baked router: selection-dependent, eager
935d59c45672c548de543b7140eb2c778fcc8594 997c3f0b888cbf498822704cabaf6ded3b97b0b4 Samit Basu <basu.samit@gmail.com> 1789798293 -0700	commit: The 50×50's boundary ports were all stacked at the origin
997c3f0b888cbf498822704cabaf6ded3b97b0b4 096f3450ad9863dbda0b24370c2a6a5cbd7be3f7 Samit Basu <basu.samit@gmail.com> 1789829266 -0700	commit: Foreground and background, not baked and unbaked
096f3450ad9863dbda0b24370c2a6a5cbd7be3f7 220093936844d0c2f68a52ed070d2d8771ca1fe4 Samit Basu <basu.samit@gmail.com> 1789829864 -0700	commit: The foreground: what a gesture may write
220093936844d0c2f68a52ed070d2d8771ca1fe4 88819c7f9e39e23c269d90f42e223199d158bf49 Samit Basu <basu.samit@gmail.com> 1789830823 -0700	commit: The rider solves what the gesture disturbed, not the sheet
88819c7f9e39e23c269d90f42e223199d158bf49 bea6300dd5f2be6b5369fbf764a08b9c16f7429f Samit Basu <basu.samit@gmail.com> 1789831869 -0700	commit: An overlay for seeing what the selection raises
bea6300dd5f2be6b5369fbf764a08b9c16f7429f bf23ffc9f2cdb33ef50c4b886040b1a02b064a89 Samit Basu <basu.samit@gmail.com> 1789837013 -0700	commit: Replaying a foreground onto a background, and the test that it is exact
bf23ffc9f2cdb33ef50c4b886040b1a02b064a89 31f459da3ab354ed8074859afd95eaefcb72e57c Samit Basu <basu.samit@gmail.com> 1789839600 -0700	commit: A block reaches as far as its moat, so the foreground does too
31f459da3ab354ed8074859afd95eaefcb72e57c c750aed895e370678750d7e00a406c7df114e2f0 Samit Basu <basu.samit@gmail.com> 1789847788 -0700	commit: Time the interaction, not the worst case
c750aed895e370678750d7e00a406c7df114e2f0 b5b982f976b9b6af3473c5e6a005191e0d186009 Samit Basu <basu.samit@gmail.com> 1789848361 -0700	commit: A lattice costs what its region holds
b5b982f976b9b6af3473c5e6a005191e0d186009 62488aae5e5c47f804dc957a8f75a39f9ec5741d Samit Basu <basu.samit@gmail.com> 1789849131 -0700	commit: Time a drag frame, and what raising a selection costs
62488aae5e5c47f804dc957a8f75a39f9ec5741d 2c834ccb34a35454d30dfb009e5dc9c7a1e620a2 Samit Basu <basu.samit@gmail.com> 1789886265 -0700	commit: A commit builds no lattice when nothing needs routing
2c834ccb34a35454d30dfb009e5dc9c7a1e620a2 0893d4356187cb03b61f68065f67611d333c3289 Samit Basu <basu.samit@gmail.com> 1789944471 -0700	commit: One mechanism: a router bounded by a rectangle
0893d4356187cb03b61f68065f67611d333c3289 4db70bcb73fa6170084bdb1367b3b4c9bc543364 Samit Basu <basu.samit@gmail.com> 1789945084 -0700	commit: A router takes a rectangular boundary, and a heal names its region
4db70bcb73fa6170084bdb1367b3b4c9bc543364 11d7ce42c68eacdc0e74c88ad1712fd635d0a3c0 Samit Basu <basu.samit@gmail.com> 1789945845 -0700	commit: Name the phases a nudge's 67 ms is spent in
11d7ce42c68eacdc0e74c88ad1712fd635d0a3c0 991061995ceca10c9452c34e2feeedf6d0574c3f Samit Basu <basu.samit@gmail.com> 1789953817 -0700	commit: present_document, because that is what it is for
991061995ceca10c9452c34e2feeedf6d0574c3f c9ed4680e5d8b5b038d7f6e6517f0d3c8f7cf617 Samit Basu <basu.samit@gmail.com> 1789954625 -0700	commit: reconstruct, which is the word the docs were already using
c9ed4680e5d8b5b038d7f6e6517f0d3c8f7cf617 13dcf0644e56cff3ad0e383b6c5d094f716e9d05 Samit Basu <basu.samit@gmail.com> 1789954851 -0700	commit: A preview supposing nine wires re-reconstructs 7,550
13dcf0644e56cff3ad0e383b6c5d094f716e9d05 8d6dd09c62aabc306cbcb4c0676c731770ba0639 Samit Basu <basu.samit@gmail.com> 1789955826 -0700	commit: suppose → preview, from the nomenclature sheet
8d6dd09c62aabc306cbcb4c0676c731770ba0639 8d6dd09c62aabc306cbcb4c0676c731770ba0639 Samit Basu <basu.samit@gmail.com> 1789956000 -0700	reset: moving to HEAD
8d6dd09c62aabc306cbcb4c0676c731770ba0639 96e0081eae6284dcf5980d1891136fe3f9e16543 Samit Basu <basu.samit@gmail.com> 1789956936 -0700	commit: Scope the reconstruction and the anchor pass to what changed
96e0081eae6284dcf5980d1891136fe3f9e16543 e329bbd79f9ecc5ce9fed0c0a2b0488143449199 Samit Basu <basu.samit@gmail.com> 1789957172 -0700	commit: Bring the playbook up to what has landed
e329bbd79f9ecc5ce9fed0c0a2b0488143449199 d84f2122a3e763de7da884e24abb9df16e6631d0 Samit Basu <basu.samit@gmail.com> 1789957971 -0700	commit: A preview names the wires it drew, not the document
d84f2122a3e763de7da884e24abb9df16e6631d0 dcc376fbab4ad681e25f045c9cd8be8dee5260a9 Samit Basu <basu.samit@gmail.com> 1789958382 -0700	commit: A preview solves its foreground, in a lattice over its region
dcc376fbab4ad681e25f045c9cd8be8dee5260a9 78388bacd88b9930efe188670d7b9856997bbba9 Samit Basu <basu.samit@gmail.com> 1789959273 -0700	commit: Crossings leave the presentation: hops are computed where wires are drawn
78388bacd88b9930efe188670d7b9856997bbba9 78388bacd88b9930efe188670d7b9856997bbba9 Samit Basu <basu.samit@gmail.com> 1789960607 -0700	reset: moving to HEAD
78388bacd88b9930efe188670d7b9856997bbba9 a2afcd150664cd0a26b60b84a47e547a1449fc1f Samit Basu <basu.samit@gmail.com> 1789961334 -0700	commit: The unresolved list: a wire no lattice routes is retried, recorded, shown
a2afcd150664cd0a26b60b84a47e547a1449fc1f 6a36a7d531c0d693cd0c27391c538143098dfdd6 Samit Basu <basu.samit@gmail.com> 1789961436 -0700	commit: Test that an unresolved wire is drawn amber over its accent
6a36a7d531c0d693cd0c27391c538143098dfdd6 b9806f70c1f53de85f5b086a0526d32f648283a5 Samit Basu <basu.samit@gmail.com> 1789963661 -0700	commit: Illegal wires settle on their L, hatched where they cross a block
b9806f70c1f53de85f5b086a0526d32f648283a5 147f86155de968153fd030d69057f2327a1b1047 Samit Basu <basu.samit@gmail.com> 1789965190 -0700	commit: Criterion is the benchmark: kernel scenarios and a span tally
147f86155de968153fd030d69057f2327a1b1047 ef22674604b4cda29e68411854ba5f8bb6e6f3b0 Samit Basu <basu.samit@gmail.com> 1789966714 -0700	commit: Trace the untraced time: every scenario within 0.6 ms of its wall
ef22674604b4cda29e68411854ba5f8bb6e6f3b0 26ba1cddf5c1e202841ccf16eacb6e5be3dfc64e Samit Basu <basu.samit@gmail.com> 1789968618 -0700	commit: A drop's wire trims are one authoring, not one per wire
26ba1cddf5c1e202841ccf16eacb6e5be3dfc64e 7f79dc1231f29595c7a62a48321cbfb2b3a33faa Samit Basu <basu.samit@gmail.com> 1789969222 -0700	commit: The diagnostic overlay shows the regional router's bound and lattice
7f79dc1231f29595c7a62a48321cbfb2b3a33faa 7f79dc1231f29595c7a62a48321cbfb2b3a33faa Samit Basu <basu.samit@gmail.com> 1789969285 -0700	reset: moving to HEAD
7f79dc1231f29595c7a62a48321cbfb2b3a33faa 4cd7e9c7cfe013b744920bcfce0152e21d9ece8c Samit Basu <basu.samit@gmail.com> 1789969653 -0700	commit: Wires and titles drew green: theme.json named a removed role
4cd7e9c7cfe013b744920bcfce0152e21d9ece8c cd32dab16b374473e337a1dc10c9aff33723e698 Samit Basu <basu.samit@gmail.com> 1789970076 -0700	commit: A frame-rate readout, toggled from the palette
cd32dab16b374473e337a1dc10c9aff33723e698 595c0baa791a1ef3549dce2da5046a0849ae68f2 Samit Basu <basu.samit@gmail.com> 1789970874 -0700	commit: A hover scenario: the pointer crossing the fitted 50×50
595c0baa791a1ef3549dce2da5046a0849ae68f2 2f089f20d443fc8c697b139f92efdb768b9e4907 Samit Basu <basu.samit@gmail.com> 1789972413 -0700	commit: Build the web bundle for speed: opt-level 3, wasm-opt at level 3
2f089f20d443fc8c697b139f92efdb768b9e4907 683edb53ff134900219a4622cd353480931f47e8 Samit Basu <basu.samit@gmail.com> 1790006564 -0700	checkout: moving from profile-the-solve-rider to gpu-scene-scoping
683edb53ff134900219a4622cd353480931f47e8 939afcd1e39e49b6af3caf2142cf9cd4af59f5bb Samit Basu <basu.samit@gmail.com> 1790006604 -0700	commit: Scope a retained GPU scene for rendering at far zoom
939afcd1e39e49b6af3caf2142cf9cd4af59f5bb 001ae4461ee350a100fbf2568e72fd7b29a63924 Samit Basu <basu.samit@gmail.com> 1790007031 -0700	commit: Scope replacing the text engine alongside the renderer
001ae4461ee350a100fbf2568e72fd7b29a63924 95348c7f85ba7dc38a86e4cbc8fdae675d6e736a Samit Basu <basu.samit@gmail.com> 1790008428 -0700	commit: R0 test 1: where the far-zoom canvas time goes
95348c7f85ba7dc38a86e4cbc8fdae675d6e736a 683f1b2cb14173b45d334ae19226d534f09b4f06 Samit Basu <basu.samit@gmail.com> 1790013631 -0700	commit: R0 test 1 on a GPU browser, and the combined variant
683f1b2cb14173b45d334ae19226d534f09b4f06 848a69cb44adbd0b58c156b60183b3363ffa4b92 Samit Basu <basu.samit@gmail.com> 1790013717 -0700	commit: Canvas replay bench: a device-pixel-ratio option, and Chrome on the MBP
848a69cb44adbd0b58c156b60183b3363ffa4b92 32f9402f5824d3f459ecc19ef866deb7cffb8e16 Samit Basu <basu.samit@gmail.com> 1790014097 -0700	commit: Far-zoom rendering: take the Canvas2D route first
32f9402f5824d3f459ecc19ef866deb7cffb8e16 ed1223b9f2ea672141bb8bd2b99f2018090de0b5 Samit Basu <basu.samit@gmail.com> 1790014451 -0700	commit: Far-zoom rendering: mid zoom sends it back to the GPU scene
ed1223b9f2ea672141bb8bd2b99f2018090de0b5 90a7b4856aa61f5e787b932cb95d98dfdb68ac4b Samit Basu <basu.samit@gmail.com> 1790015179 -0700	commit: R0 test 2: what the world-space scene costs to build and hold
90a7b4856aa61f5e787b932cb95d98dfdb68ac4b 3a36ff9f004cec4c6c2476ed06578ff2a56729eb Samit Basu <basu.samit@gmail.com> 1790015656 -0700	commit: R0 test 2: epaint is host-free; the headless gate names it by policy
3a36ff9f004cec4c6c2476ed06578ff2a56729eb b3526a3b62b97ea77296b6986c475bb1440c0efc Samit Basu <basu.samit@gmail.com> 1790016700 -0700	commit: R0 test 2b: epaint doing all of it, text included
b3526a3b62b97ea77296b6986c475bb1440c0efc c92d54d79d1d8cb81c24c3811823effddfe65fb8 Samit Basu <basu.samit@gmail.com> 1790018071 -0700	commit: R0t: epaint as the one layouter, exports as text
c92d54d79d1d8cb81c24c3811823effddfe65fb8 09b5ac4c98473c4b1cfe49de12542019aca63fcd Samit Basu <basu.samit@gmail.com> 1790018262 -0700	commit: R0t: Safari agrees; epaint is the renderer and the one layouter
09b5ac4c98473c4b1cfe49de12542019aca63fcd f1736a8087c24f3453d3051b603998ad14f3ccd8 Samit Basu <basu.samit@gmail.com> 1790019985 -0700	commit: R1: the GPU spike — epaint's frame in WebGL2, immediate and retained
f1736a8087c24f3453d3051b603998ad14f3ccd8 2b33725cbf5e577ca6b7cc7a21cc9516ff27ac90 Samit Basu <basu.samit@gmail.com> 1790022514 -0700	commit: R1 results: epaint in WebGL2 holds 60 fps at 10% and 24% on the MBP
2b33725cbf5e577ca6b7cc7a21cc9516ff27ac90 65c3fb02d9f95d4ac50dc2d32c90a64db7b4d948 Samit Basu <basu.samit@gmail.com> 1790024312 -0700	commit: Far-zoom rendering: drop retained mode; immediate epaint only (user)
