Closed tickets
A copy of the Hazel Work Dashboard that Matthew runs on his laptop, published at most ten minutes after each change to its notes, and to the status from GitHub, which it reads every 15 minutes. Its localhost links work only there.
← the Hazel Work Dashboard. Updated 2026-11-03 15:05 MST. Our tickets once closed, newest first: done, or closed for another reason (not needed, dropped, superseded), with what came of each. A number is never reused; the open tickets are on the dashboard: the work queue and the full backlog.
| Ticket | Area | Status, closed | Outcome | The ticket, as it last read |
|---|---|---|---|---|
^ticket(682) | dress-up, scripting, hazeljs: undo and redo of a script, on the usual keys | done 2026-11-03 | Undo and redo in Messed Up Dress Up's Scripting tab on the usual keys, in text and in tiles alike, with each step's cost in the console. Dress Up 0.0.477 (the boxes' history: Ctrl/Cmd+Z, Ctrl/Cmd+Shift+Z, Ctrl+Y; with no box focused, the box changed last; '[scripts] edit / undo / redo: N ms (Hazel's analysis and run M ms of it)') and 0.0.478 (tiles edits as steps, and the frame's history message), both speed runs green; embed-editable 68142486cf forwards the keys from an editable cell, live at build.hazel.org/embed-editable since its deploy was fixed (8e0dcac982, CI green). Check: tools/checks/undo682.mjs, 14 of 14 on GitHub.⏱ opened 2026-11-03 10:16, closed 15:03 (288 min) · 2 messages from Matthew, 0 questions to him · ~375 chars (~93 tokens) · ~0.0 min together · 📖 ~0.1 min to read, 🎧 ~0.2 min to hear (1 reply, ~8 s / ~12 s each) · 🧠 Opus 5.5 · Xhigh 100% | Undo and redo in the Scripting panel, on the usual keys. Ctrl+Z to undo and Ctrl+Shift+Z or Ctrl+Y to redo (⌘ on a Mac), for the script being edited, in text and in tiles alike. hazeljs has no undo of its own (it holds no editor: the page holds the text, its README says so since 11-03), so the game keeps each script's history: the texts it has had, one step per edit or per tiles edit message. A text box's own browser undo does not cover it: the page writes the tiles' edits into the boxes, which breaks the box's native history. Questions: whether Hazel's tiles frame (embed-editable) takes Ctrl+Z itself, and if so whose history wins; how a step is grouped (a word, a pause, a tiles edit). Also (Matthew, 11-03): console lines with timings, in ms: the cost of each edit, each undo and each redo. from Matthew, 2026-11-03, in chat, on hazeljs having no undo or redo: "in MUDU, it would be nice to bind them to the usual key combinations, for instance" Then: "in MUDU, i'd also like console messages that give timing information: * cost per edit * cost per undo * cost per redo -- in ms" |
^ticket(680) | hazel, Hazlet: where the Hazlet work stands (a report) | done 2026-11-03 | ^report(39), Hazlets, So Far, published as work in progress 2026-11-03 (homepage e5570d2); Matthew kept the title. https://matthewhammer.org/hazel/reports/039/⏱ opened 2026-11-03 07:31, closed 08:58 (88 min) · 1 message from Matthew, 0 questions to him · ~17 chars (~4 tokens) · ~0 min together | ^report(39), Hazlets, So Far. No standalone Hazlet report existed (the nearest are ^report(33) and ^report(34)). What a Hazlet is, with a figure of one event and one edit in the game; progress since 10-20, dated; each piece's state as of 11-03 (#2711 and #2719 draft, #2711 conflicting with dev; embed-editable with no PR; hazeljs 0.0.1 on npm); speed; the package; next steps (^ticket(672) to ^ticket(678)); the meeting's questions. Linked from ^report(37)'s Hazlet section.from Matthew, 2026-11-03 07:18, in chat: "likewise, if we don't have a standalone report for Hazlets, and I think we already maybe have a draft, let's create one there, with our progress thus far with current status, and next steps." |
^ticket(679) | hazel, performance: undo in time and space (a report) | done 2026-11-03 | ^report(38), Undo, in Time and Space: published 07:38, corrected 07:52 (the outline is in the undos), and republished 08:58 with the double syntax pass and its fix and the sidebar's outline on every edit (homepage ffa2fad). https://matthewhammer.org/hazel/reports/038/⏱ opened 2026-11-03 07:31, closed 08:58 (88 min) · 1 message from Matthew, 0 questions to him · ~17 chars (~4 tokens) · ~0 min together | ^report(38), Undo, in Time and Space. One report on what undo costs: the space story (^report(14)'s update: the uncapped history of whole page models, 1,048 MB after 12 edits on #2597, 159 with Andrew Blinn's compaction, how it was found in five steps after a cap that never ran), the time story (^report(36)), and a new measurement: the modular editors' outline rebuild separated from the rest of each undo and redo. Linked from ^report(37)'s undo item.from Matthew, 2026-11-03 07:16, in chat: "one part of agenda claims a big savings in the undo cost, in terms of space, without summarizing the improvement, and how we found it. Let's draft a new wip report all about undo cost, in time and space, to detail this ongoing investigation, and next steps. Put the details there and link with agenda report." Then: "for undo/redo, let's have a part of the report that separates out the outline-rebuilding cost (specific to modular editors) from the rest of the costs." |
^ticket(674) | hazel, Hazlet, npm, Dress Up: the game loads its Hazel from the published package | done 2026-11-03 | Messed Up Dress Up loads its Hazel from the npm package, hazeljs 0.0.1 on jsDelivr, since 0.0.476; its speed run passed on GitHub (run 41662562115: the gate, the leak in Chrome and Firefox, the on-screen controller audit; recorded in dress-up/speed.json). ⏱ opened 2026-11-02 10:22, closed 11:19 (1,497 min) · 1 message from Matthew, 0 questions to him · ~1,396 chars (~349 tokens) · ~0.0 min together · 📖 ~0.1 min to read, 🎧 ~0.2 min to hear (1 reply, ~8 s / ~12 s each) · 🧠 Opus 5.5 · Xhigh 100% | Dress Up on the package. Part of ^ticket(668). Messed Up Dress Up, the first Hazlet, loads hazel-lib.js from a branch build of #2719. Once ^ticket(673)'s first publish is out, load it from the package instead (unpkg or jsDelivr, pinned to a version), so the game is the package's first real user. A Dress Up release as usual; the Scripting tab's speed run is the check (^report(32)).from Matthew, 2026-11-02, in chat, under the agenda's Hazlet item ( ^report(37)): "can we add a task for you: What does it take to create a prototype npm package that other people can download and use via npm, that's documented the way that npm documents things, etc? for each discrete task, please create tickets that inter-link with each other"; and: "if it's possible to register our \"Hazlet\" work today under npm, I'd like to try that" |
^ticket(672) | hazel, Hazlet, npm: examples, and a check that installs the packed package into fresh projects | done 2026-11-03 | Examples (Node require and import, TypeScript strict, a plain page) and an install check that packs the package and runs them; the source's home is https://github.com/hazelgrove/hazeljs (public, created on Matthew's word), whose Install check passes on Node 18, 20 and 22, the page in headless Firefox: https://github.com/hazelgrove/hazeljs/actions/runs/41669572023 ⏱ opened 2026-11-02 10:22, closed 09:01 (1,359 min) · 1 message from Matthew, 0 questions to him · ~114 chars (~28 tokens) · ~0 min together | Hazlet package: the install check. Part of ^ticket(668). examples/: node with require, node with import, a plain HTML page, and TypeScript (^ticket(670)'s types under tsc --noEmit). A GitHub workflow packs ^ticket(669)'s package, installs the tarball into each example as a user would, and runs it, the page in headless Firefox as the deck workflow does (the laptop cannot run a headless browser). So the README's snippets (^ticket(671)) are tested as users will get them. Before each publish (^ticket(673)).from Matthew, 2026-11-02, in chat, under the agenda's Hazlet item ( ^report(37)): "can we add a task for you: What does it take to create a prototype npm package that other people can download and use via npm, that's documented the way that npm documents things, etc? for each discrete task, please create tickets that inter-link with each other"; and: "if it's possible to register our \"Hazlet\" work today under npm, I'd like to try that" |
^ticket(671) | hazel, Hazlet, npm: the README the npm way, and a CHANGELOG | done 2026-11-03 | hazeljs 0.0.4 on npm (latest since 14:49): hazel-lib.js from #2719 at 1ba138ef28, whose analyzeProgram and runProgram measure ms (58.96 ms for a call timed at 59.21 from outside, from jsDelivr in Node). The cause: HazelLibCore read the clock with an inlined JS expression js_of_ocaml took for pure and moved after the call; now Util.JsUtil.precise_timestamp, a method call (a260518eb9, with a test). Built on GitHub by hazeljs's Build workflow, byte for byte Hazel's own deploy of 1ba138ef28 (whose deploys had failed since 10-29: fixed in 1ba138ef28 and on embed-editable).⏱ opened 2026-11-02 10:22, closed 14:49 (1,708 min) · 1 message from Matthew, 0 questions to him · ~1,646 chars (~411 tokens) · ~2.0 min together · 📖 ~1.1 min to read, 🎧 ~1.7 min to hear (1 reply, ~68 s / ~102 s each) · 🧠 Opus 5.5 · Xhigh 100% | Hazlet package: docs. Part of ^ticket(668). The README that npmjs.com shows on the package's page: what a Hazlet is, in a paragraph; install; a quick start for node and for the browser (a CDN script tag); the API, call by call, with ^ticket(670)'s types; the values table; programs of modules; that errors do not stop a run; speed (^report(34)'s measured calls); limits (experimental, no stability promise yet, runs on the page's own thread); what a Hazel program can and cannot reach on the page; license; links to Hazel, the source and the issue tracker. A CHANGELOG.md with 0.0.1. Written from docs/hazel-as-a-js-library.md (#2719). Its examples are ^ticket(672)'s, so the check runs every snippet.from Matthew, 2026-11-02, in chat, under the agenda's Hazlet item ( ^report(37)): "can we add a task for you: What does it take to create a prototype npm package that other people can download and use via npm, that's documented the way that npm documents things, etc? for each discrete task, please create tickets that inter-link with each other"; and: "if it's possible to register our \"Hazlet\" work today under npm, I'd like to try that" |
^ticket(670) | hazel, Hazlet, npm: TypeScript declarations for the API and the value mapping | done 2026-11-03 | index.d.ts for hazeljs 0.0.1 (HazelValue, Analysis, Result, ProgramSpec, ProgramAnalysis, ProgramResult, HazelLib); checked by tsc in strict mode by the install check of ^ticket(672), green on Node 18, 20 and 22: https://github.com/hazelgrove/hazeljs/actions/runs/41669572023⏱ opened 2026-11-02 10:22, closed 09:16 (1,374 min) · 0 messages from Matthew, 0 questions to him · ~0 chars (~0 tokens) · ~0 min together | Hazlet package: types. Part of ^ticket(668). An index.d.ts for what ^ticket(669) exports: version, build, analyze, run, analyzeProgram, runProgram, the program spec (preamble, modules, tail) and its result (ok, errors with their module, holes, incomplete, ms), and the values Hazel gives back (number, boolean, string, arrays, null for (), objects for labeled tuples, {tag, value} constructors, functions, {hazel} for anything else). Read from docs/hazel-as-a-js-library.md and src/web/HazelLibCore.re on #2719. Checked by tsc --noEmit on ^ticket(672)'s TypeScript example; documented in ^ticket(671)'s README.from Matthew, 2026-11-02, in chat, under the agenda's Hazlet item ( ^report(37)): "can we add a task for you: What does it take to create a prototype npm package that other people can download and use via npm, that's documented the way that npm documents things, etc? for each discrete task, please create tickets that inter-link with each other"; and: "if it's possible to register our \"Hazlet\" work today under npm, I'd like to try that" |
^ticket(663) | hazel, livelits, #2635: livelits × modular editors brought up to date: dev's 10-29 merge day merged in | done 2026-11-03 | #2635 is up to date with dev's merge day (2cab658ef1), and its deck runs green again: the three Firefox failures were the deck's reset missing the branch's own database (fixed in 243874eecd, pushed with the undo fix 9df1b2601e on Matthew's word). On 243874eecd: CI (Fast checks, Static checks, Full tests) run 41673654085 and the Livelit deck in Firefox, run by hand, 41686775198: all green.⏱ opened 2026-11-02 07:09, closed 11:31 (1,703 min) · 1 message from Matthew, 0 questions to him · ~163 chars (~40 tokens) · ~0 min together | #2635 up to date. Andrew's modular-editors (#2469) has not moved since 10-26 (af81c60054), and #2635 already has it. What moved is dev: 149 commits (98 not merges) since #2635's last dev merge (183bd76716), merge day 10-29 among them. Merge dev into integration/livelits-modular-editors, resolve, build, run the local CI gate (dune build @check --profile release; dune fmt; the touched test groups), push.from Matthew, 2026-11-02 07:05, in chat: "let's stick to hazel tickets. In particular, let's start by getting livelits x modular editors up to date with whatever has happened with modular editors recently"; 07:08, his pick: "Merge dev (Recommended)" |
^ticket(662) | dress up: the 💧 watering can waters the plant the friend faces; and no stray comma on 🎒 cards (0.0.474) | done 2026-11-02 | 0.0.474, live with an ok speed run: the 💧 watering can waters the plant nearest the can in the friend's hand (in front of them), and a tapped plant is the one watered; where two beds meet it no longer waters the one behind. The 🎒 card of a thing picked up off the floor no longer starts with a comma. can660.mjs checks both. ⏱ opened 2026-11-02 05:28, closed 08:31 (183 min) · 1 message from Matthew, 0 questions to him · ~6 chars (~1 tokens) · ~0 min together | Water the plant in front. Where two beds meet (one in front of the friend, one behind), the can counted both as equally near and could water the one behind, whichever was put first. When plants are equally near, prefer the one on the side the friend faces. Also: the 🎒 backpack cards show a stray comma before the date (", Nov 2, 2:12 AM"). Found while taking ^du_report(24)'s pouring picture (^ticket(661)).from Matthew, 2026-11-02 05:28, in chat: "Fix it" (the box's ask: "Fix the watering can's aim as 0.0.474?"; my note offered the 🎒 cards' stray comma in the same release) |
^ticket(661) | dress up, reports: ^du_report(24), a young player's guide to what is new since ^du_report(23) (0.0.465 to 0.0.471: the sword cuts plants, night and day and sleeping, plants grow back, the garden and the spring) | done 2026-11-01 | ^du_report(24), Night, Day and the Garden, published as a work-in-progress draft: https://matthewhammer.org/kids-choice-games/dress-up/reports/024/ (on the series index, the landing page https://matthewhammer.org/hazel/dress-up/reports/ and the nav). 12 chapters, 20 pictures taken on GitHub against 0.0.471. If 0.0.472 (the plants) ships, its plants move from Coming soon to a chapter of their own. 17:50: the plants added as chapter 9, PLANT A GARDEN, with five pictures, all pictures now of 0.0.472. 19:25: the watering can added as chapter 10 (0.0.473), all pictures now of 0.0.473. ⏱ opened 2026-11-01 11:09, closed 14:41 (212 min) · 2 messages from Matthew, 0 questions to him · ~190 chars (~47 tokens) · ~0 min together | A new Dress Up report, in the style of ^du_report(23) (the retro young player's guide), explaining every new feature between that report (0.0.464) and the current release: the 🗡️ sword cutting plants, 🌗 night and day and sleeping, 🌱 cut plants growing back, the 🌻 garden and the 💧 spring, and the fixes (one dungeon kept, every room its things, the 📜 Hazel tiles). Pictures from a run on GitHub, as 023's were. from Matthew, 2026-11-01 ~11:05, in chat, while he and M tried the garden: "We'd like a new du_report in the style of du_report 23, now explaining all new features between that report and the current release." |
^ticket(660) | dress up: a 🌻 garden: Colorado flower beds and US vegetables to plant, a 💧 watering can from the tree house, a spring, and plants that grow as they are watered | done 2026-11-01 | Released in three parts, all live with ok speed runs: 0.0.471 the 🌻 garden and the 💧 spring; 0.0.472 🌷 flower beds (8 Colorado wildflowers) and 🥕 vegetable patches (8 US vegetables), with 🌱 how grown; 0.0.473 the 💧 watering can from the tree room, filled at any water, a 3-💧 meter per plant, and growth from water. Shown in ^du_report(24) chapters 7-10. Found while taking its pictures, not fixed: where two beds meet, the can can water the bed behind the friend. ⏱ opened 2026-10-30 07:43, closed 20:33 (3,711 min) · 14 messages from Matthew, 8 questions to him · ~47,555 chars (~11,888 tokens) · ~63.0 min together · 📖 ~32.0 min to read, 🎧 ~47.5 min to hear (25 replies, ~77 s / ~114 s each) · 🧠 Opus 5.5 · Xhigh 100% | A garden to grow. New placeable things: flower beds of 8 Colorado flowers, and 8 vegetables grown in the United States. A new 🌻 garden place to put them in, and a new spring place (like the pond, but land on every side). The 💧 watering can is found in the tree house: fill it at the spring, the pond, the castle moat or other water, then water the plants. Each plant has a water level you can see while on its screen, and grows as it is watered. from Matthew, 2026-10-30 07:4x, in chat: "let's mint some new placeable items, and a new background: garden area. flower beds. Chose 8 actual types, from Colorado. vegetables. Choose 8 types that grow in the United States. Watering can is in the tree house. Add a spring background (like pond, but contained so that land is on all sides of the screen). We can fill up the watering can at the spring or the pond, or castle moat, etc --- and then water plants. Each plant has a watering level, and a way to get the watering level when we are on the same screen. Plants grow based on how much they are watered." |
^ticket(659) | dress up: plants the 🗡️ sword cuts grow back (🌱 in ⚙️ Advanced, under 🌗 night and day) | done 2026-11-01 | Released in 0.0.470 (dfb3bb61, live 2026-11-01 over https and http): 🌱 cut plants grow back, in ⚙️ Advanced under 🌗 night and day, on to start; after 1 to 30 minutes (2 to start), or by the next morning with night and day on; placed bushes and cacti grow back where they were. Check tools/checks/regrow659.mjs runs in the tag's speed run. ⏱ opened 2026-10-30 07:37, closed 08:57 (3,020 min) · 3 messages from Matthew, 1 question to him · ~34,352 chars (~8,588 tokens) · ~13.0 min together · 📖 ~2.5 min to read, 🎧 ~3.6 min to hear (3 replies, ~49 s / ~73 s each) · 🧠 Opus 5.5 · Xhigh 100% | M wants the cut plants to regrow. A 🌱 cut plants grow back setting in ⚙️ Advanced, under 🌗 night and day, on to start: a cut plant comes back by itself about 2 minutes after it was cut (a slider for how long), even while you are somewhere else; with 🌗 night and day on, by the next morning, so sleeping in a bed grows back everything you cut. Plants put in a place (a bush, a cactus) are kept as cut, not deleted, so they can grow back too. Later, maybe: a 🌱 sprout where a plant was cut. from Matthew, 2026-10-30 07:3x, in chat: "M wants a way for the plants that are cut to regrow --- What do you think? Where should we control that?" Then, to the plan (on to start, ~2 minutes; by the next morning with night and day on; in ⚙️ Advanced): "build it. good plan." |