Commit Graph

54 Commits

Author SHA1 Message Date
pdmarf
49e939c137 Merge branch 'stable-rebuild' 2026-04-24 09:11:34 +01:00
pdmarf
bb021633a3 v1.0.35: re-assert setState(0) after setSettings on stop path
setSettings() resets the visual state in both directions. The start
path already re-asserted setState(1) after setSettings. The stop path
was missing the equivalent setState(0), leaving the button green.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 09:11:30 +01:00
pdmarf
7e66939fdb Merge branch 'stable-rebuild' 2026-04-24 09:07:58 +01:00
pdmarf
93616d3a1a v1.0.34: fix both buttons showing green simultaneously
When pressing B while A was running, B went green immediately but A
stayed green until getGlobal()+getRunningEntryId() resolved. Now uses
settingsCache to turn off all running buttons in the same synchronous
pass as turning B on — no async gap where both appear active.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 09:07:55 +01:00
pdmarf
ea15f72215 Merge branch 'stable-rebuild' 2026-04-24 09:05:44 +01:00
pdmarf
2fd2b6ad8a v1.0.33: instant button feedback on key press
Visual state change now happens before any async work (getGlobal,
getRunningEntryId, API calls). Previously the button waited for
getGlobal() to resolve before going green, causing a 1-2s delay.
Also reverts optimistic state on API error.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 09:05:41 +01:00
pdmarf
e493c19cc8 Merge branch 'stable-rebuild' 2026-04-24 09:01:58 +01:00
pdmarf
e3a19234a9 v1.0.32: re-assert button state after setSettings resets it
setSettings() causes Stream Deck to reset the button visual back to
its default state (state 0). The optimistic setState(1) was correct
but got overridden. Now setState(1) is called again after setSettings
completes to ensure the button stays green.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 09:01:55 +01:00
pdmarf
51c83f572e Merge branch 'stable-rebuild' 2026-04-24 08:58:47 +01:00
pdmarf
a233cfc4fd v1.0.31: fix name selection being wiped when refreshProjects fires
Selecting a name called saveCredentials, which sent refreshProjects,
which re-fetched users and called populateUsers(users, globalUserId)
with globalUserId still empty — immediately clearing the selection.

Fix: saveCredentials now updates globalUserId immediately, and
refreshProjects is only triggered by token changes (scheduleCredSave),
not by name changes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 08:58:42 +01:00
pdmarf
a21e849ea3 Merge branch 'stable-rebuild' 2026-04-24 08:56:40 +01:00
pdmarf
036567bc7c v1.0.30: auto-updater now updates HTML and images, not just plugin.js
Previous versions of checkForUpdates only wrote plugin.js, leaving
property-inspector.html stale on all machines that used Check for
Updates. PI fixes (name dropdown, refreshProjects) never reached them.
Now downloads and writes all UI and image assets before restarting.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 08:56:37 +01:00
pdmarf
617c8773de Merge branch 'stable-rebuild' 2026-04-24 08:53:19 +01:00
pdmarf
ccc6d90578 v1.0.29: fix userId not restoring due to race condition
onSendToPropertyInspector (users list) arrives before
onDidReceiveGlobalSettings (saved userId) in most cases, leaving
globalUserId empty when populateUsers runs. Now cachedUsers stores
the list, and onDidReceiveGlobalSettings re-populates if users
already arrived — handles both orderings.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 08:53:15 +01:00
pdmarf
2eb4c8f53a Merge branch 'stable-rebuild' 2026-04-24 08:50:43 +01:00
pdmarf
c3add8da27 v1.0.28: fix name dropdown not restoring when switching buttons
onDidReceiveGlobalSettings fired before the users list was populated,
so the saved userId couldn't be selected. Now stored in globalUserId
variable and applied when populateUsers runs, regardless of order.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 08:50:39 +01:00
pdmarf
53c0ae7993 Merge branch 'stable-rebuild' 2026-04-24 08:43:36 +01:00
pdmarf
5426a388ba v1.0.27: auto-load projects/users after API token is entered
Previously staff had to close and reopen the property inspector
after entering their token to trigger the fetch. Now saving the
token immediately sends a refreshProjects event to the plugin,
which fetches and returns the project list and name dropdown.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 08:43:12 +01:00
pdmarf
d9ca28d125 Merge stable-rebuild into master; everything now on master
Install script and auto-updater both point at master. No more
separate branches needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 07:52:00 +01:00
pdmarf
52216495c2 Deploy stable-rebuild v1.0.26 plugin.js to master
Staff on v1.0.25 check master's version.json for updates. Previously
master was on 1.0.22 (< 1.0.25) so the updater always said "already
up to date". Now master serves the stable-rebuild v1.0.26 binary so
staff can self-update via Check for Updates.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 07:50:44 +01:00
pdmarf
034c951d9b v1.0.26: point auto-updater at stable-rebuild branch
GITEA_BASE was pointing at master (v1.0.22), so Check for Updates
always said "already up to date". Now points at stable-rebuild so
updates are served from the correct branch. Also bumps version.json
to 1.0.26.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 07:49:03 +01:00
pdmarf
d6d695e6c0 v1.0.26: eliminate double-green flash when switching timers
Both buttons now flip to their final visual state immediately on key
press, before any API calls. Previously the old button stayed green
throughout the stopTimer network round-trip (~0.5–2s), causing a
window where both buttons appeared green simultaneously.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 07:47:32 +01:00
pdmarf
47d8c7d98d v1.0.25: update manifest version to 1.0.25
Stream Deck plugin settings panel was showing "version 1" because
manifest.json had a hardcoded "Version": "1.0.0".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 21:43:46 +01:00
pdmarf
3a91fafe8f v1.0.25: add Check for Updates button
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 21:41:29 +01:00
pdmarf
d9a91fe5b1 v1.0.23: stable-rebuild base from v1.0.15
Known-good state: blue icons, cross-folder timer fix, name dropdown.
Versioned above master (1.0.22) so auto-updater does not overwrite.
Install script points at stable-rebuild branch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 21:13:39 +01:00
pdmarf
c06240f03b v1.0.22: refresh projects/users when API token is saved
Previously onPropertyInspectorDidAppear fired once on PI open — if the
token wasn't saved yet (first-time setup), the dropdown stayed empty
forever. Now saving credentials sends a refresh event to the plugin,
which re-fetches and repopulates projects and names immediately.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 20:49:33 +01:00
pdmarf
ad776c9aa9 v1.0.21: auto-updater removes legacy SVG icons on update
Staff machines still had idle.svg/running.svg in their installed plugin
folder (Stream Deck merges rather than replaces on reinstall), causing
the old SVGs to shadow the new PNG icons added in v1.0.15. The
auto-updater now explicitly deletes these legacy files when applying an
update.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 20:43:24 +01:00
pdmarf
3df4468605 v1.0.20: fix button icons and surface user-fetch errors
- Remove stale idle.svg/running.svg from zip (were shadowing the PNG
  icons added in v1.0.15, causing old grey icons to show instead of
  the Aurora timer images)
- Fix package script to always delete and recreate zip so removed files
  don't persist across builds
- Show a clear error in the name dropdown when fetchUsers fails (e.g.
  Notion integration missing "Read user information" capability)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 20:39:51 +01:00
pdmarf
3632300d08 v1.0.19: auto-updater now replaces UI and image assets
Previously only plugin.js was replaced on auto-update, leaving
property-inspector.html, idle.png, and running.png at the originally
installed version. Staff would see the old button colours and missing
UI elements (username dropdown, Update button) even after the code
updated successfully.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 20:02:14 +01:00
pdmarf
8d63a6c7c4 v1.0.18
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 18:35:50 +01:00
pdmarf
e34394c1b4 v1.0.17: reload PI after manual update to show new version
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 18:34:29 +01:00
pdmarf
4cfe58cde3 v1.0.16: manual update button in property inspector
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 18:32:11 +01:00
pdmarf
c1384e942b v1.0.15: fix cross-folder timer conflict + new icons
- Stop previously running timer globally using persisted runningEntryId,
  works across nested folders and plugin restarts
- In-memory cache prevents onWillAppear flash of stale running state
- Replace SVG button icons with Aurora timer PNG icons (on/off)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 18:28:30 +01:00
pdmarf
f69eb8e841 v1.0.14: clean release (no debug logging)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 17:45:18 +01:00
pdmarf
43928309a5 Remove debug logging from auto-updater
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 17:44:08 +01:00
pdmarf
2738bed445 v1.0.13: fix cross-folder timer stop
Remove onWillDisappear cache pruning so buttons in other folders remain
in settingsCache — previously navigating away deleted their entries,
causing the stop-other-timers loop to miss them on next key press.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 17:37:58 +01:00
pdmarf
48ebd5a1ff docs: add uninstall/reinstall instructions and WHICHVM note
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 17:19:06 +01:00
pdmarf
3299ad5268 chore: bump to 1.0.12
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 17:15:21 +01:00
pdmarf
160eabb44d chore: bump to 1.0.11 to test auto-update
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 17:08:01 +01:00
pdmarf
6195b6fee7 fix: fetch users/projects when token is set but userId is missing
Fixes chicken-and-egg setup flow where new users couldn't populate
the name dropdown because isConfigured required userId to already exist.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 16:56:17 +01:00
pdmarf
30852a8112 Add README 2026-04-11 11:17:09 +01:00
pdmarf
c8a783f3b4 v1.0.9: test auto-update through Pangolin auth gate 2026-04-11 10:22:31 +01:00
pdmarf
34f16b4b87 v1.0.8: switch to public Gitea URL 2026-04-11 10:14:23 +01:00
pdmarf
f94a40e77d v1.0.7: replace PI libs with official Elgato source 2026-04-10 23:06:54 +01:00
pdmarf
c47161546b Add install.sh and packaged notion-timer.streamDeckPlugin 2026-04-10 20:54:45 +01:00
pdmarf
7fe0841024 v1.0.6: fetch timeouts and project pagination 2026-04-10 20:53:19 +01:00
pdmarf
d6282d7396 v1.0.5: user dropdown from Notion API, settingsCache pruning 2026-04-10 20:42:11 +01:00
pdmarf
2029b5187e Add security expert agent definition 2026-04-10 20:22:32 +01:00
pdmarf
84d5e96487 Add Ed25519 signature verification to auto-updater (v1.0.4) 2026-04-10 20:20:10 +01:00
pdmarf
acb90f2d69 Bump to v1.0.3 2026-04-10 19:56:09 +01:00