v0.28.3 - ClockSmith Refactoring (2026-03-21)¶
What Changed?¶
This release refactors ClockSmith in the gears module, applying the same cleanup pattern as JunkPocket in v0.28.2.
Duplicate globalThis registration has been removed, @group tags corrected, and three logging bugs in ClockSmith have been fixed.
A new push:release task was also added to the Taskfile for streamlined GitLab release creation.
What's New¶
Main Feature: ClockSmith Refactoring¶
What it does:
Cleans up ClockSmith and Clock to remove redundant code and fix incorrect debug log messages that caused confusion during timer debugging.
How to use it:
No API changes. Existing code using ClockSmith or Clock continues to work as before.
Code example:
TypeScript
const smith = new ClockSmith();
smith.start("task1");
// ... operation ...
smith.stop("task1");
// elapsed() now logs "Clock elapsed" (was incorrectly "Clock stopped")
const ms = smith.elapsed("task1");
Logger.log(`task1: ${ms}ms`);
// clearAll() now emits a debug log (was silent before)
smith.clearAll();
Added¶
docs/modules/clocksmith.md: new module overview page forClockSmithandClockdocs/modules/junkpocket.mdanddocs/modules/clocksmith.mdadded to Gears nav inmkdocs.ymlReleasessection added tomkdocs.ymlnavigationpush:releasetask added to Taskfile for creating GitLab releases with release notes
Changed¶
ClockSmith.elapsed(): log message corrected from"Clock stopped"to"Clock elapsed"ClockSmith.reset(): debug log now records timestamps captured before the reset (were alwaysnullafter reset)ClockSmith.clearAll(): debug log added, consistent with other mutating methods@grouptag corrected fromTorchtoGearsin allClockandClockSmithmember docstrings (18 occurrences)
Fixed¶
fix(gears): incorrect log messages and missing log inClockSmithfix(taskfile): correct--note-fileto--notes-fileinpush:releasetaskfix(taskfile):push:releasetask now validates version argument and release notes file
Removed¶
- Duplicate
globalThis.Clock/globalThis.ClockSmithregistration inclocksmith.ts(already handled byindex.ts)
Is It Safe to Upgrade?¶
- Breaking Changes: No
- Backward Compatible: Yes
All public APIs remain unchanged. Changes are internal (logging behavior and globalThis registration).
Release Details¶
- Date: 2026-03-21
- Version: v0.28.3
- gaslamp: (unchanged)
- pilotlamp: (unchanged)
- Files Changed: 105
- Commits:
082e2fabump: version 0.28.2 → 0.28.3565f766build(docs): regenerate TypeDoc API documentation574a2f3docs(mkdocs): add JunkPocket and ClockSmith module pages to Gears navf3c4f0edocs(gears): add clocksmith.md module documentation98b965cfix(gears): fix incorrect log messages and missing log in ClockSmith814a8c6docs(gears): fix @group tag from Torch to Gears in clocksmith.tsefb3009refactor(gears): remove duplicate globalThis registration from clocksmith.ts820d4dcbuild(docs): regenerate TypeDoc API docs and bundle for v0.28.2677902efix(taskfile): correct --note-file to --notes-file in push:release task41edd59fix(taskfile): add push:release task for GitLab release creation692bf5fdocs(mkdocs): add Releases section to navigation0454576docs(releases): add v0.28.2 release notes
Known Issues¶
- None
Next Steps¶
- Add dedicated unit tests for
ClockSmithandClock - Add dedicated unit tests for
JunkPocket - Review
counter.tsfor the same@groupandglobalThisissues