Commit Graph

459 Commits

Author SHA1 Message Date
2937fb2372 Add mDNS republish logic with exponential backoff 2026-04-13 16:55:07 -07:00
c66a40df96 Add server uptime tracking to settings 2026-04-13 16:53:41 -07:00
00c37bd9e8 0.0.19 2026-04-04 19:36:32 -07:00
99492a35e8 Fix SSE ping heartbeat message format 2026-04-04 19:36:28 -07:00
cf018004a2 Bump @because/toes to 0.0.18 2026-04-04 15:57:00 -07:00
efead147fb 0.0.18 2026-04-04 15:56:36 -07:00
7ca1f94160 Add payload validation before parsing JSON 2026-04-04 15:46:54 -07:00
e6afc0d797 0.0.17 2026-04-04 15:05:10 -07:00
211e441dd4 Update appUrl import path to @because/toes/tools 2026-04-04 15:05:04 -07:00
184a77f909 0.0.16 2026-04-04 15:01:03 -07:00
70f52a9b55 Add x-app-url header to tunnel requests 2026-04-04 14:56:29 -07:00
eb2e5a4436 Add appUrl() helper and x-app-url header 2026-04-04 14:40:07 -07:00
db46287695 Remove old CLI binary before install 2026-03-27 15:02:45 -07:00
5ab634e245 Enable colored output in CLI 2026-03-27 11:56:16 -07:00
5f4d512cdf Bump @because/toes to 0.0.15 2026-03-27 11:45:05 -07:00
5e13948be3 0.0.15 2026-03-25 21:12:15 -07:00
164abebeba my my 2026-03-25 21:12:13 -07:00
433eb0b990 0.0.14 2026-03-25 21:12:00 -07:00
5ce65b3096 oh, that too 2026-03-25 21:11:59 -07:00
3c3a90b4f5 0.0.13 2026-03-25 21:10:58 -07:00
0e467a1bdf Fix git init failing when no default branch or user config is set 2026-03-24 18:40:06 -07:00
7588ef5564 Reorder setup steps and remove quiet wrapper 2026-03-23 18:26:31 -07:00
df05cbd3aa Add error handling for lsof and pgrep commands 2026-03-23 16:58:44 -07:00
1f0c7bd099 Remove try-catch from perfToggle and fix perf timing flag read
Let errors propagate to the caller instead of catching locally,
simplify the request body construction, and snapshot perf.timing
before the fetch to avoid a TOCTOU race.
2026-03-19 11:50:10 -07:00
4cc0ff2bed Inline PerfState interface and move subscriptions before routes
The PerfState interface was only used twice, so inline it. Move
onChange/onHostLog subscriptions above the route definitions to keep
side-effects grouped. Skip perf.now() in proxy when timing is off.
2026-03-19 11:29:17 -07:00
9a19c0a861 Consolidate perfTiming state into a single perf object
Removes the separate variable and setter in favor of a plain object,
making the mutable state easier to track and eliminating a needless
abstraction.
2026-03-19 11:21:50 -07:00
b9f94a6c98 Move setPerfTiming next to perfTiming and always capture request start time
Colocate the setter with its variable for readability. Remove the
conditional around performance.now() since the call is negligible
and simplifies the timing logic.
2026-03-19 11:09:27 -07:00
c42c73fe70 Simplify perf toggle by deduplicating branching logic
Early-return on invalid input, then unify the GET/POST and display
paths so each concern is handled once instead of per-subcommand.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 11:02:06 -07:00
c3ad78f1be Add CLI perf command to toggle request timing on proxied apps 2026-03-19 10:50:23 -07:00
1e4d66cbe4 Fix log search filtering to match against plain text instead of ANSI escape codes
Move styles array outside the parse loop in ansiToHtml so styles accumulate across sequences, and use stripAnsi when filtering live logs so search matches visible text.
2026-03-18 11:23:06 -07:00
a824d62058 Refactor ANSI parser to support SGR reset (code 39) and bold/dim styles
Merge color and style maps into a unified STYLES table, hoist the
regex to module scope, export stripAnsi for use in log parsing, and
handle SGR 39 (default foreground) by removing only color styles
instead of clearing all styles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 11:14:03 -07:00
33d91747af Combine ANSI style codes into a single span element
Multiple SGR parameters in one escape sequence (e.g. bold + color)
were each opening a new span, losing earlier styles. Collect styles
per sequence and emit one span with all of them.
2026-03-18 10:59:07 -07:00
33d21777d3 Add ANSI color code to HTML conversion for log display
Terminal color codes were rendering as raw escape sequences in the
web UI, making logs hard to read.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 10:55:31 -07:00
62f936cdef Merge branch 'switch-kleur-ansis' 2026-03-17 21:35:47 -07:00
3a6ed5d546 Handle -c flag position for both shebang and compiled argv layouts
When run via shebang, bun prepends itself so -c appears at argv[2]
instead of argv[1]. Search both positions to support either mode.
2026-03-17 21:35:19 -07:00
3328009af6 Promote status to the primary command over list and info
Hide `list` and `info` as aliases so existing scripts keep working
while surfacing `status` as the canonical entry point in help output.
2026-03-17 19:44:57 -07:00
c12d60119f Add hidden status command for listing and inspecting apps 2026-03-17 19:22:46 -07:00
99a3a25131 Merge branch 'cli' 2026-03-17 19:18:30 -07:00
35a9053308 Reduce nesting in SSH-disabled command setup with early continue 2026-03-17 19:18:26 -07:00
0abf03e64e Disable shell, get, and open commands for SSH sessions
These commands require local access and cannot function when
connected over SSH (USER=cli).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 19:17:12 -07:00
bbed8c49b7 Add .hushlogin creation to setup-ssh script 2026-03-17 17:46:32 -07:00
a9f8a3885d Remove deploy scripts and npm tasks 2026-03-17 17:42:37 -07:00
21c6c27c92 Add SSH CLI access and update install docs 2026-03-16 16:35:19 -07:00
195be426f1 Convert getAppMetrics to async and replace spawnSync with async Bun.spawn
spawnSync blocks the event loop while waiting for ps and du, which
stalls the SSE metrics stream and other requests. Running these
concurrently with async spawn (and Promise.all for du) keeps the
server responsive under load.
2026-03-16 16:32:17 -07:00
926e57e34e Make install.sh executable 2026-03-16 16:19:11 -07:00
0a7c2b0f1f Add CLI build and install to deploy, handle SSH login shell commands
The deploy script now builds the CLI binary and copies it to /usr/local/bin.
SSH passes commands as `toes -c "command args"`, so parse that form
before falling through to the interactive shell or normal arg handling.
2026-03-16 16:14:31 -07:00
aebafdf496 Remove package.json requirement, auto-deploy bare repos 2026-03-12 14:45:57 -07:00
63b0709649 shout 2026-03-10 15:51:38 -07:00
0471e7b26d yea 2026-03-10 15:43:31 -07:00
18834fcd2b Replace kleur with ansis for CLI colors 2026-03-09 18:39:14 -07:00