release / build (push) Successful in 4m0s
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.
39 lines
918 B
TOML
39 lines
918 B
TOML
[package]
|
|
name = "wakey-linux"
|
|
version = "0.3.7"
|
|
edition = "2024"
|
|
publish = ["gitea"]
|
|
|
|
[dependencies]
|
|
anyhow = { workspace = true }
|
|
futures = "0"
|
|
macaddr = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
tokio = { workspace = true, features = ["net", "sync"] }
|
|
tracing = "0.1"
|
|
wakey-core = { path = "../wakey-core", registry = "gitea", version = "0"}
|
|
|
|
[dev-dependencies]
|
|
serial_test = "3"
|
|
|
|
[features]
|
|
telemetry = ["wakey-core/telemetry", "dep:procfs"]
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
procfs = { version = "0.18", default-features = false, optional = true }
|
|
|
|
[dependencies.lda-ipjs]
|
|
path = "../ipjs"
|
|
registry = "gitea"
|
|
version = "0"
|
|
features = ["experimental-nl"]
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
nix = { version = "0.31", default-features = false, features = [
|
|
"signal",
|
|
"process",
|
|
"term",
|
|
] }
|
|
pty-process = { version = "0.5", features = ["async"] }
|