Skip to content

Releases: NXT549/pip

Release list

v1.2.0

Choose a tag to compare

@NXT549 NXT549 released this 05 Oct 12:00
325e88d

Changelog

1.2.0

Pip dresses up for the season and remembers your last four weeks. The code
also moved under src/, and the repo gained CI, templates and a setup guide
for each system.

Changed

  • The app's own code now all lives under src/: main.js, preload.js,
    settings/ and debug/ moved to src/main.js, src/preload.js,
    src/settings/ and src/debug/. Nothing about how Pip behaves changed.
  • The settings window no longer says Windows: launch at login starts Pip
    "when you sign in to your computer", and the footer mentions the menu bar
    as well as the system tray.

Added

  • Seasonal flavours. Three new flavours, bubblegum, pumpkin and candy
    cane, pickable all year. With the new Seasonal flavors setting (on by
    default) Pip wears bubblegum for 1 to 14 February, pumpkin in October and
    candy cane in December, says so once, and changes back afterwards. A
    flavour you pick mid-season is kept, and turning the setting off changes
    him straight back.
  • A four-week streak calendar in Settings. Pip now keeps the last 70 days
    of tallies instead of only today's, and draws them as a Monday-to-Sunday
    grid tinted in his flavour, with this week's Pomodoros, water and active
    days and your current day streak.
  • CI on GitHub Actions runs npm test on every pull request and every push
    to main.
  • Issue templates for bug reports and ideas, a pull request template with
    the checks from the agent workflow, and a LICENSE file for the MIT
    licence package.json already declared.
  • .nvmrc, an engines field, .editorconfig and .gitattributes, so
    every checkout uses Node 22, two-space indents and LF line endings, even on
    Windows with core.autocrlf on.
  • AGENTS.md and docs/agents/: a short guide for coding agents covering
    the workflow, which files each common change touches, and the bugs that
    have already shipped once. CLAUDE.md loads it for Claude Code.
  • docs/SETUP.md: step-by-step setup for Windows, macOS and Linux, with
    what does and does not work on each. Windows and macOS are supported;
    Linux is not, and needs XWayland on Wayland desktops.
  • macOS support. npm run dist:mac builds Pip.app in a .dmg, so a
    Mac can run Pip at real speed instead of only in dev mode. On a Mac he
    stays out of the Dock and ⌘-Tab, lives in the menu bar (any click on his
    icon opens his menu), follows you to every Space and over full-screen
    apps, treats Control-click as a right-click, brings his settings window
    to the front, and comes over when you open Pip.app again. His onboarding
    points at the menu bar instead of the tray.
  • CI now also runs on macOS: the tests, the smoke test from source, builds
    of Pip.app for Apple silicon and Intel with a signature and Info.plist
    check, and the smoke test against each build (Intel under Rosetta), whose
    .dmgs it keeps for 14 days.
  • scripts/smoke.js can smoke-test a packaged app: pass the path to its
    executable.

Fixed

  • A glass of water logged in the seconds after midnight went on the day
    before, and then the Today panel kept showing yesterday's numbers until
    the next midnight. The day now rolls over on the stored date itself.

Tests

  • test/seasons.test.js and test/history.test.js cover the season rules
    and the calendar, including week boundaries and daylight-saving changes.
    main.test.js runs Pip across midnight and across the end of October.
  • storage.test.js checks that every toggle has a checkbox in the settings
    window, and that a hand-edited history loses only its bad rows.
  • test/docs.test.js fails when the agent guide names a file, function,
    channel, npm script or ARCHITECTURE.md section that no longer exists.
  • The smoke test counts flavour previews from the palette, so adding a
    flavour no longer fails it.
  • Four main.test.js scenarios boot Pip as a Mac: Dock, Spaces, the menu
    bar click, the onboarding, and opening Pip.app again.