Iris's call once the upload route was working: put it in Dev Updater properly. So the app now exposes its own ring through a ContentProvider at `<applicationId>.devlog` -- Dev Updater's contract, written down in that project's README, not something invented here -- and Dev Updater's phone app reads it on the same device and forwards it to its own build machine. No tunnel, no token, no second enrolment, and any app that server delivers can implement the same and get the same Runtime tab. `DevLogProvider.java` plus `devlog.rs` are the platform glue only: a flat `String[]` across JNI, a `MatrixCursor` on the Java side, and `nativeReady` telling Rust the authority the provider actually registered, so the Diagnostics pane can name somewhere a reader can query rather than composing a guess. `LogRing::newest_seq()` is the one addition in `client-core`: an in-memory ring starts again at zero, so it is what lets a reader notice the process restarted instead of silently skipping everything since. Deleted with it, so there is one mechanism: `client_core::log_upload`, `POST /client-log` on ai-server, the `AI_APP_LOG_*` baking (which left `build.rs` with nothing to do), and the uploader on both Android clients. Kept: the ring, `RingLogger`, `install_process_logger`, and the Diagnostics line -- whose second half is now `devlog provider: content://<authority>`. Verified end to end on this checkout's emulator: iris's own `iris::android::view` startup lines read out of the provider by the shell, forwarded by Dev Updater's Runtime tab, and served back from `GET /apps/android-app/components/app/logs?kind=runtime`. A component whose package has no provider says so in as many words. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
21 lines
460 B
Rust
21 lines
460 B
Rust
//! The app's pure logic, shared between the server and any Rust client --
|
|
//! see `docs/CLIENT_CORE.md` for what lives here and what does
|
|
//! not yet.
|
|
|
|
pub mod ansi;
|
|
pub mod api;
|
|
pub mod config;
|
|
pub mod durations;
|
|
pub mod event_stream;
|
|
pub mod highlight;
|
|
pub mod log_ring;
|
|
pub mod markdown_blocks;
|
|
pub mod notifications;
|
|
pub mod sse;
|
|
pub mod tool_summary;
|
|
pub mod transcript_cache;
|
|
pub mod transcript_fold;
|
|
pub mod transcript_source;
|
|
|
|
pub use event_model::*;
|