Say what the code actually does, in the three places that had drifted
A doc comment is not compiled, so nothing catches one that has outlived what it described. `cargo doc` does catch a subset, and it was failing: three unresolved intra-doc links in config.rs, all mine from today -- two naming `parse`/`render` from outside the module that defines them, and one `format` that is ambiguous with the macro. Rustdoc now runs clean with broken_intra_doc_links denied. auth.rs's module doc pointed at a test called `token_is_never_logged`, which no longer exists: it was folded into the combined gating+logging test because tracing caches callsite interest process-wide. The doc now describes the test that is there and says why it is one test. AGENTS.md contradicted itself twice, both checked against a running server rather than by reading. Its curl example passed `--cacert certs/ca.pem`, a path relative to the checkout, while the bullet above it correctly says the CA is generated under $XDG_CONFIG_HOME -- so the documented command fails before it connects; with the real path it returns `[]`. And it said wg0 "doesn't exist on this machine yet" as the reason for --bind 127.0.0.1, which the section below it already contradicts: wg0 is up at 10.66.0.1, and the actual reason is that the emulator dials 10.0.2.2 and cannot reach it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017xn8nHw1tw1R6PtiY1eEtw
This commit is contained in:
1 parent
2136ba4380
commit
f014094fcd
3 files changed
+16
-10
No files matched your search
@@ -75,11 +75,15 @@ real-phone/WireGuard bring-up, which is operational rather than code.
|
|||||||
generated into a constant. So the server must have started once on that
|
generated into a constant. So the server must have started once on that
|
||||||
machine first — the build stops with that instruction otherwise — and an
|
machine first — the build stops with that instruction otherwise — and an
|
||||||
APK built in this VM only works against a server in this VM.
|
APK built in this VM only works against a server in this VM.
|
||||||
- Run the server for development with `--bind 127.0.0.1` (wg0 doesn't exist
|
- Run the server for development with `--bind 127.0.0.1`. Without it the
|
||||||
on this machine yet; the default fails closed). First run prints the
|
server binds wg0, which exists here but is unreachable from the emulator
|
||||||
enrollment QR/URI with the token — capture it from the log.
|
(it dials 10.0.2.2). First run prints the enrollment QR/URI with the
|
||||||
|
token — capture it from the log.
|
||||||
- Prefer exercising the server directly over going through the UI:
|
- Prefer exercising the server directly over going through the UI:
|
||||||
`curl --cacert certs/ca.pem -H "Authorization: Bearer …" https://127.0.0.1:8443/sessions`.
|
`curl --cacert ~/.config/ai-app/certs/ca.pem -H "Authorization: Bearer …" https://127.0.0.1:8443/sessions`.
|
||||||
|
The CA is wherever `--certs` put it — by default under
|
||||||
|
`$XDG_CONFIG_HOME` (`~/.config` when that is unset), never in the
|
||||||
|
checkout, so a relative `certs/ca.pem` finds nothing.
|
||||||
The emulator app reaches it at `https://10.0.2.2:8443`; enroll it with
|
The emulator app reaches it at `https://10.0.2.2:8443`; enroll it with
|
||||||
`adb shell "am start -a android.intent.action.VIEW -d 'aiapp://enroll?host=10.0.2.2&port=8443&token=…'"`
|
`adb shell "am start -a android.intent.action.VIEW -d 'aiapp://enroll?host=10.0.2.2&port=8443&token=…'"`
|
||||||
(quote so the device shell doesn't eat the `&`s).
|
(quote so the device shell doesn't eat the `&`s).
|
||||||
|
|||||||
+3
-2
@@ -9,8 +9,9 @@
|
|||||||
//! defense in depth rather than the sole gate.
|
//! defense in depth rather than the sole gate.
|
||||||
//!
|
//!
|
||||||
//! Nothing in this module -- and nothing anywhere else -- may log the
|
//! Nothing in this module -- and nothing anywhere else -- may log the
|
||||||
//! Authorization header or the token; `token_is_never_logged` below holds a
|
//! Authorization header or the token; the test below holds a tripwire
|
||||||
//! tripwire against a logging change silently starting to.
|
//! against a logging change silently starting to. It is one test covering
|
||||||
|
//! both gating and logging on purpose -- see the note in it.
|
||||||
|
|
||||||
use std::net::SocketAddr;
|
use std::net::SocketAddr;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
//! funnels through `SessionManager` (the registry pattern), so in-memory
|
//! funnels through `SessionManager` (the registry pattern), so in-memory
|
||||||
//! and on-disk state can't come apart.
|
//! and on-disk state can't come apart.
|
||||||
//!
|
//!
|
||||||
//! The file is RON, in the shape the [`format`] module describes -- the
|
//! The file is RON, in the shape the [`mod@format`] module describes -- the
|
||||||
//! same format, and the same two house rules, as the sibling dev-updater
|
//! same format, and the same two house rules, as the sibling dev-updater
|
||||||
//! project's config, because both are written and read by hand.
|
//! project's config, because both are written and read by hand.
|
||||||
//!
|
//!
|
||||||
@@ -30,9 +30,10 @@ use crate::private;
|
|||||||
///
|
///
|
||||||
/// **No outer parentheses.** A file *is* the body of the struct, so nothing
|
/// **No outer parentheses.** A file *is* the body of the struct, so nothing
|
||||||
/// in it is indented for the sake of a wrapper. RON has no implicit
|
/// in it is indented for the sake of a wrapper. RON has no implicit
|
||||||
/// top-level struct (`de/mod.rs` requires the `(`), so [`parse`] adds it
|
/// top-level struct (`de/mod.rs` requires the `(`), so [`format::parse`]
|
||||||
/// and [`render`] takes it back off. The opening paren is not followed by a
|
/// adds it and [`format::render`] takes it back off. The opening paren is
|
||||||
/// newline, so a parse error's line number still points at the real line.
|
/// not followed by a newline, so a parse error's line number still points
|
||||||
|
/// at the real line.
|
||||||
///
|
///
|
||||||
/// **`Some` is implicit.** Enabled on the deserializer rather than by a
|
/// **`Some` is implicit.** Enabled on the deserializer rather than by a
|
||||||
/// `#![enable(implicit_some)]` header the file would have to carry, and
|
/// `#![enable(implicit_some)]` header the file would have to carry, and
|
||||||
|
|||||||
Reference in new issue
Block a user