-
2c04c2600a
feat: add Views settings tab with inline rename, reorder, and delete
Brian Krabach
2026-04-15 18:23:56 -07:00
-
5732436f88
feat: add showNewViewInput inline creation flow for New View dropdown
Brian Krabach
2026-04-15 18:08:43 -07:00
-
a891fada46
feat: keyboard shortcuts — backtick, number keys, arrow navigation in handleGlobalKeydown
Brian Krabach
2026-04-15 18:00:53 -07:00
-
9180fbbfa9
fix: remove escapeHtml() from textContent assignment on view label
Brian Krabach
2026-04-15 17:54:39 -07:00
-
9afa4b2347
feat: task-6 header dropdown view switching (renderViewDropdown, toggleViewDropdown, closeViewDropdown, switchView)
Brian Krabach
2026-04-15 17:46:01 -07:00
-
8ed0e94f80
feat: add view dropdown CSS styles (task-5)
Brian Krabach
2026-04-15 17:34:08 -07:00
-
7f42d6cbe2
feat: add view dropdown trigger and menu to app header (task-4)
Brian Krabach
2026-04-15 17:23:00 -07:00
-
ecca48a1ad
feat: auto-add new session to active user view on creation
Brian Krabach
2026-04-15 17:17:11 -07:00
-
c3eb714977
feat: rewrite getVisibleSessions() to honor active view (task-2)
Brian Krabach
2026-04-15 17:08:04 -07:00
-
acdfc9bafd
docs: update patch_state docstring to include active_view
Brian Krabach
2026-04-15 17:03:17 -07:00
-
b69a1f8c15
feat: add active_view to StatePatch model and patch_state handler
Brian Krabach
2026-04-15 16:56:43 -07:00
-
ab5560a623
fix: address COE verification findings — bell-clear regression, active_view fallback, device_id consistency
Brian Krabach
2026-04-15 14:42:50 -07:00
-
70822d8033
feat: remove 'filtered' gridViewMode, keep only flat and grouped
Brian Krabach
2026-04-15 14:05:28 -07:00
-
68fa80b694
feat: update frontend to use device_id-based session keys and API URLs
Brian Krabach
2026-04-15 13:59:03 -07:00
-
5510d9d008
feat: tag sessions with device_id-based sessionKey in federation_sessions
Brian Krabach
2026-04-15 13:48:39 -07:00
-
c26c61b7da
fix: extract auth_headers to local var to prevent ruff splitting inline guards
Brian Krabach
2026-04-15 13:02:32 -07:00
-
665b74b455
style: apply ruff format to main.py (task-9 follow-up)
Brian Krabach
2026-04-15 12:42:56 -07:00
-
8d7990b1c5
feat: switch federation proxy endpoints to device_id lookup (task-9)
Brian Krabach
2026-04-15 12:16:56 -07:00
-
cc9bb81bc9
feat: add _lookup_remote_by_device_id helper for federation proxy
Brian Krabach
2026-04-15 11:45:06 -07:00
-
6984c71823
style: add explanatory comment and remove redundant import
Brian Krabach
2026-04-15 11:37:00 -07:00
-
a3ff22dc02
feat: wire post-sync mutual exclusion invariant repair into apply_synced_settings
Brian Krabach
2026-04-15 11:33:49 -07:00
-
569ba44848
feat: add --reset-device-id CLI command (task-6)
Brian Krabach
2026-04-15 11:26:32 -07:00
-
ad2c0e1fe2
feat: extend /api/instance-info to return device_id
Brian Krabach
2026-04-15 11:20:08 -07:00
-
353ea5fd76
feat: add views.py with mutual exclusion invariant and name validation
Brian Krabach
2026-04-15 11:10:34 -07:00
-
eb2c02b477
feat: add views to DEFAULT_SETTINGS and SYNCABLE_KEYS
Brian Krabach
2026-04-15 11:03:42 -07:00
-
d9e9ab2fb6
feat: update state path to muxplex, add MUXPLEX_STATE_DIR env var, add active_view field
Brian Krabach
2026-04-15 10:59:57 -07:00
-
59b1672275
feat: add device identity module with persistent UUID v4 storage
Brian Krabach
2026-04-15 10:56:11 -07:00
-
93889f7dda
docs: add Views feature design
Brian Krabach
2026-04-15 09:38:29 -07:00
-
3894a585c5
chore: release v0.3.6 -- browser context menu fix
Brian Krabach
2026-04-14 11:10:18 -07:00
-
56f7b99fd8
fix: suppress browser context menu on plain right-click in terminal pane
Brian Krabach
2026-04-14 11:10:15 -07:00
-
655b9ecab0
chore: release v0.3.5 -- connection pool exhaustion fix
Brian Krabach
2026-04-14 06:36:07 -07:00
-
2e57358e2e
fix: replace setInterval with self-scheduling setTimeout for async polls
Brian Krabach
2026-04-14 05:30:39 -07:00
-
8345ee3323
chore: release v0.3.4 -- federation UI fixes
Brian Krabach
2026-04-13 14:56:42 -07:00
-
b247f01ebc
fix: remoteId=0 falsy bug in renderSheetList — use null check
Brian Krabach
2026-04-13 14:18:25 -07:00
-
f7519a8058
fix: zero-session devices show 'No sessions' tile + grace period prevents flapping
Brian Krabach
2026-04-13 14:12:18 -07:00
-
26a4d30d6f
fix: status tiles show device name instead of blank — use deviceName not name
Brian Krabach
2026-04-13 13:20:29 -07:00
-
2c65e5b4c2
fix: filter status entries from visible sessions — no more duplicate blank/offline tiles
Brian Krabach
2026-04-13 12:01:32 -07:00
-
8d271ddd58
chore: release v0.3.3 -- iOS/iPadOS touch scroll fix
Brian Krabach
2026-04-13 08:50:50 -07:00
-
e3cedb70a2
Merge pull request #4 from samueljklee/fix/ios-touch-scroll
Brian Krabach
2026-04-13 08:34:04 -07:00
-
-
f206485f0a
Fix touch scrolling on iOS and iPadOS devices
Samuel Lee
2026-04-11 11:01:56 -07:00
-
-
0b2ec74ee5
chore: release v0.3.2 -- hidden sessions federation fix
Brian Krabach
2026-04-09 02:38:22 -07:00
-
df1960b7f9
fix: apply hidden sessions filter to all sessions including remote/federated
Brian Krabach
2026-04-09 02:37:18 -07:00
-
9424dcff5b
chore: release v0.3.1 -- federation auth hotfix
Brian Krabach
2026-04-08 23:17:55 -07:00
-
d541612843
fix: read federation key live on each request and check PUT sync response
Brian Krabach
2026-04-08 22:39:03 -07:00
-
c4ff5c618f
chore: release v0.3.0 -- federation state propagation
Brian Krabach
2026-04-08 22:06:20 -07:00
-
2ebd3b9929
feat: add settings sync logic to poll cycle with 30-second interval
Brian Krabach
2026-04-08 21:15:44 -07:00
-
a0ad4921cf
feat: add PUT /api/settings/sync federation endpoint with newer-wins logic
Brian Krabach
2026-04-08 21:03:23 -07:00
-
349f49824b
feat: add GET /api/settings/sync federation endpoint
Brian Krabach
2026-04-08 20:50:46 -07:00
-
29cfb3c141
feat: sync-aware patch_settings and apply_synced_settings
Brian Krabach
2026-04-08 20:37:52 -07:00
-
ce001d2b05
feat: add SYNCABLE_KEYS allowlist and settings_updated_at to settings
Brian Krabach
2026-04-08 20:35:08 -07:00
-
783611d143
fix: filter hidden sessions in browser indicators + add federation plan
Brian Krabach
2026-04-08 20:32:19 -07:00
-
e7379c46c9
chore: fix step numbering in _run_poll_cycle comments
Brian Krabach
2026-04-08 19:40:04 -07:00
-
8fcb25adee
fix: capture exception in federation bell clear warning log
Brian Krabach
2026-04-08 19:32:20 -07:00
-
f5ae0df9f5
feat: add heartbeat-driven bell clearing for remote sessions in poll cycle
Brian Krabach
2026-04-08 18:50:17 -07:00
-
5eb727fe86
fix: use s.remoteId == null check instead of !s.remoteId in getVisibleSessions()
Brian Krabach
2026-04-08 18:04:45 -07:00
-
4856094ca9
docs: add federation state propagation design
Brian Krabach
2026-04-08 17:38:08 -07:00
-
37c2b47ec9
fix: read version from package metadata — single source of truth (pyproject.toml)
Brian Krabach
2026-04-08 14:36:58 -07:00
-
e39e37d585
docs: update CHANGELOG and README for settings consolidation
Brian Krabach
2026-04-08 13:59:33 -07:00
-
4b0718eff9
fix: terminal.js fontSize regression and stale test references
Brian Krabach
2026-04-08 12:27:34 -07:00
-
5f09d0b0f0
refactor: eager settings load on startup and update all frontend tests
Brian Krabach
2026-04-08 11:55:31 -07:00
-
5da5fa8a45
refactor: rewrite sidebar functions to use server-side settings
Brian Krabach
2026-04-08 11:29:55 -07:00
-
ecc5e6d42a
test: update frontend tests for server-side display settings
Brian Krabach
2026-04-08 11:18:16 -07:00
-
0467d522c4
refactor: replace loadDisplaySettings/saveDisplaySettings callsites with server-settings API
Brian Krabach
2026-04-08 10:37:20 -07:00
-
9d18954a21
refactor: replace localStorage display settings with server-settings cache
Brian Krabach
2026-04-08 10:21:43 -07:00
-
122d9c30c8
feat: add 10 display settings keys to DEFAULT_SETTINGS
Brian Krabach
2026-04-08 10:03:51 -07:00
-
3bb3944b52
docs: add design for consolidating settings server-side
Brian Krabach
2026-04-08 09:24:12 -07:00
-
1b5207b5af
chore: release v0.2.0 -- version bump, changelog, FastAPI version fix
Brian Krabach
2026-04-08 08:32:05 -07:00
-
12c8f8f550
feat: add federation proxy for deleting remote sessions
Brian Krabach
2026-04-08 08:21:22 -07:00
-
67d68d8cf0
fix: resolve federation, settings, and session creation bugs
Brian Krabach
2026-04-08 07:55:12 -07:00
-
9335964494
chore: release prep v0.1.1 — version bump, changelog, README update
Brian Krabach
2026-04-07 10:01:34 -07:00
-
12ad92986e
fix: consolidate WS proxy Bearer header guard to single line for CI test
Brian Krabach
2026-04-07 08:10:14 -07:00
-
d2691b9205
refactor: remove ALL custom paste handlers — clean slate per COE review
Brian Krabach
2026-04-07 07:44:14 -07:00
-
e4a4c97eec
feat: restore Ctrl+Shift+V via synthetic paste event on xterm textarea
Brian Krabach
2026-04-07 02:12:49 -07:00
-
ced0c62dd6
fix: decode UTF-8 WebSocket output before writing to xterm.js
Brian Krabach
2026-04-06 22:16:19 -07:00
-
c71a551b06
fix: remove custom Ctrl+Shift+V handler — let xterm.js handle paste natively
Brian Krabach
2026-04-06 20:37:12 -07:00
-
0a3a20a1b9
fix: hybrid paste — bracketed paste markers + direct UTF-8 WebSocket send
Brian Krabach
2026-04-06 20:04:12 -07:00
-
085379981a
fix: use _term.paste() for Ctrl+Shift+V — enables bracketed paste mode
Brian Krabach
2026-04-06 19:09:32 -07:00
-
ad3c961770
fix: terminal reconnect uses federation connect path for remote sessions
Brian Krabach
2026-04-06 18:18:21 -07:00
-
add9e03718
fix: persist active_remote_id in state for remote session restore
Brian Krabach
2026-04-06 18:08:19 -07:00
-
50abb4f40b
fix: WebSocket federation proxy accepts self-signed TLS certificates
Brian Krabach
2026-04-06 17:25:25 -07:00
-
89158241c0
fix: prevent double paste on Ctrl+Shift+V
Brian Krabach
2026-04-06 07:53:56 -07:00
-
d10c3b0088
fix: guard Bearer header in WebSocket federation proxy for empty key
Brian Krabach
2026-04-06 06:16:10 -07:00
-
4beffc2cf9
fix: guard openSession against empty name from unreachable federation tiles
Brian Krabach
2026-04-06 05:43:09 -07:00
-
39f076502f
fix: skip Authorization header when federation key is empty
Brian Krabach
2026-04-06 05:25:18 -07:00
-
2c21dfeb3e
fix: federation client accepts self-signed TLS certificates
Brian Krabach
2026-04-06 04:57:23 -07:00
-
7fb803c6b5
fix: new session input stays open when clicking device select dropdown
Brian Krabach
2026-04-04 19:33:05 -07:00
-
33b2d52af8
fix: mock _check_dependencies in CLI tests for CI (ttyd not in Ubuntu repos)
Brian Krabach
2026-04-04 15:41:22 -07:00
-
3494ca6f76
chore: update uv.lock with resolved cryptography transitive deps
Brian Krabach
2026-04-04 14:59:01 -07:00
-
6294c075bc
fix: address code review — publish.yml permissions, test docstrings
Brian Krabach
2026-04-04 14:53:40 -07:00
-
1a4fd4cbed
ci: add PyPI publish workflow (OIDC Trusted Publisher on tag push)
Brian Krabach
2026-04-04 14:45:03 -07:00
-
aac5703bc4
docs: clarify checkout step intent in CI workflow
Brian Krabach
2026-04-04 14:42:05 -07:00
-
96c68915e8
ci: add GitHub Actions test workflow (Python 3.11–3.13)
Brian Krabach
2026-04-04 14:39:29 -07:00
-
ee4d0cf708
feat: route upgrade command based on install source (PyPI vs git)
Brian Krabach
2026-04-04 14:27:51 -07:00
-
94dbdb6a3a
chore: exclude test files from wheel
Brian Krabach
2026-04-04 14:23:56 -07:00
-
8c0b9073d0
fix: use absolute URL for README image (PyPI rendering)
Brian Krabach
2026-04-04 14:15:16 -07:00
-
23a6dfac31
feat: add PyPI metadata — authors, classifiers, keywords
Brian Krabach
2026-04-04 14:09:33 -07:00
-
547c89ac6d
docs: add search, clickable URLs, image rendering to README
Brian Krabach
2026-04-04 09:23:24 -07:00
-
1fd8bf46e8
docs: add bell-clear, device selector, activity title, favicon badge to README + move branding writeup
Brian Krabach
2026-04-04 09:16:08 -07:00
-
b333c1fccd
fix: update createNewSession regex tests to match 2-param signature
Brian Krabach
2026-04-04 08:34:36 -07:00
-
9aac14212a
chore: lint/format fixes
Brian Krabach
2026-04-04 08:22:36 -07:00