22 Commits
  • oh three seven the big tracing update
    37 + 73 = 100 btw
    
    1. tracing
       - much more tracing across agent and cc
       - metrics, logs and spans exported through otlp (grpc)
       - console logs, otlp logs and traces have independent filters now
       - follow a command from cc to agent, or a snapshot from collection to storage, in one trace
       - exporters retry temporary failures with backoff and keep queues bounded
       - prolonged collector outages can lose telemetry
       - exporter and transport diagnostics stay in console logs so exports don't generate more exports
       - check out them fields at docs/telemetry.md
       - process them with guides from docs/telemetry-recipes.md
    
    2. more process info
       - agent and cc report process/host uptime, process RSS, CPU time and open file descriptors
       - the FD count includes files, sockets and pipes
       - host total/available memory and 1/5/15-minute load are included where supported
       - these are available through otlp now, with a UI view planned later
    
    3. config duration now uses time strings
       - instead of `*_seconds` or `*_days` which is bullshit
       - write durations like "30s", "60d" or "1h 30m", parsed by humantime
       - check docs/config-durations.md
       - old numeric keys still load and produce a deprecation warning
       - init-config --from-config rewrites those keys into the new format and keeps your telemetry and access settings
       - api/ws numeric fields and existing numeric cli flags are unchanged
    
    4. devices
        - clearer labels in the UI
        - rename or forget saved devices
        - remember, attach and merge keep the details dialog open
        - details stay accessible even when the device drops out of your current list filters
        - presence comes from endpoints, and unnamed devices get better fallback names
        - renaming with an invalid name returns 400, while storage failures return 500
    
    5. backend cleanup
        - this helps with tracing
        - ~~no more~~ less long asf fns
        - related device reads share a SQLite transaction for a consistent view
        - snapshot traces show pool wait, transaction begin, row writes and commit separately
        - wake lookup searches the full fleet, including devices beyond the UI list's 1,000-row cap
    
    6. fleet collection caching
        - reuse the grouped view until DB or connected-agent state changes
        - if changes keep interrupting a rebuild, return 503 fleet_busy so the caller can retry
        - current fleet/device/endpoint counts are also available as metrics
        - cool
    
    7. origin auth
        - docs/origin-auth.md
        - validate Cloudflare Access tokens at the origin
        - caddy calls cc's /internal/auth/verify before proxying protected routes
        - configure [access] with the protected app's issuer and AUD
        - the signing-key URL defaults from the issuer and can be overridden
        - cache signing keys according to HTTP freshness headers and revalidate with ETag/Last-Modified
        - update the caddy config!
        - keep cc bound to loopback so requests go through caddy's auth checks
        - agent endpoints continue using their own authentication
        - closing the confirmed origin bypass requires BOTH the cc config and the caddy update
    
    8. retention + deployment bits
        - device_retention defaults to "60d", and "0d" disables expiry
        - an agent-collected device's retention age resets whenever cc receives a snapshot containing it
        - complete snapshots immediately remove rows the agent has omitted
        - saved devices and their manually attached identifiers remain saved
        - OpenWrt UCI/environment setup, credential-entry fixes and an updated copy script
    
    Ping, multi-CC, the process-info UI and profiling are planned for later.
    
    all codex btw idfk what these do
    there are things to do.
  • tweak agent term scrollback, bump vers
    bound agent terminal scrollback memory, for one term could hold a whole 32MB of stuff beforehand
  • (tried to) prioritize terminal input
    refresh interactive sessions
  • commit full of PRs
    PRs full of commit
    
    basically i used the ENTIRE mimo grant to convert a system to another. hope this one is good. may fail.
  • water bucket release!
    same version for everyone this time. This makes stuff easy
  • cant wait to do all types of shi on ts hook
    also turn all into Verifiable macros pls dont fail github