Skip to content

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 for ClockSmith and Clock
  • docs/modules/junkpocket.md and docs/modules/clocksmith.md added to Gears nav in mkdocs.yml
  • Releases section added to mkdocs.yml navigation
  • push:release task 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 always null after reset)
  • ClockSmith.clearAll(): debug log added, consistent with other mutating methods
  • @group tag corrected from Torch to Gears in all Clock and ClockSmith member docstrings (18 occurrences)

Fixed

  • fix(gears): incorrect log messages and missing log in ClockSmith
  • fix(taskfile): correct --note-file to --notes-file in push:release task
  • fix(taskfile): push:release task now validates version argument and release notes file

Removed

  • Duplicate globalThis.Clock / globalThis.ClockSmith registration in clocksmith.ts (already handled by index.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:
    • 082e2fa bump: version 0.28.2 → 0.28.3
    • 565f766 build(docs): regenerate TypeDoc API documentation
    • 574a2f3 docs(mkdocs): add JunkPocket and ClockSmith module pages to Gears nav
    • f3c4f0e docs(gears): add clocksmith.md module documentation
    • 98b965c fix(gears): fix incorrect log messages and missing log in ClockSmith
    • 814a8c6 docs(gears): fix @group tag from Torch to Gears in clocksmith.ts
    • efb3009 refactor(gears): remove duplicate globalThis registration from clocksmith.ts
    • 820d4dc build(docs): regenerate TypeDoc API docs and bundle for v0.28.2
    • 677902e fix(taskfile): correct --note-file to --notes-file in push:release task
    • 41edd59 fix(taskfile): add push:release task for GitLab release creation
    • 692bf5f docs(mkdocs): add Releases section to navigation
    • 0454576 docs(releases): add v0.28.2 release notes

Known Issues

  • None

Next Steps

  • Add dedicated unit tests for ClockSmith and Clock
  • Add dedicated unit tests for JunkPocket
  • Review counter.ts for the same @group and globalThis issues