Commit Graph

  • 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