Skip to content

Staging#29

Merged
MichaelWheeley merged 5 commits intoMichaelWheeley:feature/thai-language-devfrom
accius:Staging
Mar 26, 2026
Merged

Staging#29
MichaelWheeley merged 5 commits intoMichaelWheeley:feature/thai-language-devfrom
accius:Staging

Conversation

@MichaelWheeley
Copy link
Copy Markdown
Owner

What does this PR do?

Type of change

  • Bug fix
  • New feature
  • Performance improvement
  • Refactor / code cleanup
  • Documentation
  • Translation
  • Map layer plugin

How to test

Checklist

  • App loads without console errors
  • Tested in Dark, Light, and Retro themes
  • Responsive at different screen sizes (desktop + mobile)
  • If touching server.js: caches have TTLs and size caps (we serve 2,000+ concurrent users)
  • If adding an API route: includes caching and error handling
  • If adding a panel: wired into Modern, Classic, and Dockable layouts
  • No hardcoded colors — uses CSS variables (var(--accent-cyan), etc.)
  • No .bak, .old, console.log debug lines, or test scripts included

Screenshots (if visual change)

ceotjoe and others added 5 commits March 26, 2026 11:57
… rig control

- Phase 1: Optimistic PTT/frequency updates in RigContext with SSE-based server push
  (replaces 2 s polling with instant server-side events on rig state changes)
- Phase 3: Graceful exponential back-off in useRotator to avoid hammering unavailable endpoints
- Phase 4: Long-poll /relay/commands endpoint so cloud-relay plugin receives commands
  within ~100 ms instead of waiting for the next push cycle
- Phase 5: Updated rig-bridge README documenting cloud-relay plugin, long-poll flow,
  all new endpoints, and changed configuration keys
- Fix: added 'OpenHamClock (Express dev API)' launch entry running Express on port 3001
  so Vite's proxy target is always reachable in development (all /api 500s resolved)
- All rig-bridge / rotator errors are now handled gracefully and never surface as
  unhandled exceptions or crash the main application

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Local Claude Code config (launch.json, memory, etc.) is
machine-specific and should not be tracked in the repo.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- cloud-relay.js: remove dead `pollInterval` variable and matching JSDoc
  entry — long-poll replaced all uses; update log line accordingly
- rig-bridge.js: close orphaned SSE stream clients (relayStreamClients)
  in the session TTL cleanup, alongside the existing waiter cleanup,
  so expired sessions don't leave ghost connections in the map
- useRotator.js: replace flat 30 s back-off with true exponential back-off
  (2 s → 4 → 8 → 16 → 30 s cap) that resets to 2 s on a successful poll;
  source=none still uses a flat 30 s pause as it is not an error condition
- RigContext.jsx: replace internal "Phase N" dev comments with descriptive
  comments about what the code does

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add frontend modules for rig-bridge plugins that lacked UI:
- DigitalModesPanel: unified status/control for MSHV, JTDX, JS8Call
  (frequency, mode, TX state, halt TX, free text)
- WinlinkPanel: gateway discovery, Pat inbox/outbox, compose messages
- useDigitalModes/useWinlink hooks for data fetching and actions
- Registered in DockableApp under "Rig Bridge" panel group

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: optimistic UI, SSE push, long-poll relay and dev server fix for…
@MichaelWheeley MichaelWheeley merged commit c20e494 into MichaelWheeley:feature/thai-language-dev Mar 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants