Exercise every simulator profile in a matrix - #116
Open
abhishek-anand wants to merge 34 commits into
Open
Conversation
There was a problem hiding this comment.
🔵 Needs a closer look
It changes safety-critical installer/bootstrapping and credential-handling paths alongside broad protocol/simulator updates, and needs careful human verification beyond automated review.
Pull request overview
This pull request broadens the simulator and release tooling to cover all supported device profiles, while introducing protocol-12 compatibility rules, app-scoped credential storage (with in-app setup), and a stable launch/bootstrap path that remains valid across OTA-managed version tree swaps.
Changes:
- Extend release/version tooling for protocol 12 (minimum Cobalt 0.3.5) and tighten “compatible-change” isolation (including Cargo.lock gating).
- Add app-scoped credential install/read paths (including
SetSecret+ SDKCredentialSetup) and update docs/apps to the new minimum/runtime behavior. - Introduce a stable
.adds/cobalt-launch.shbootstrap and safer install/undo semantics, plus expanded simulator profile documentation/testing.
File summaries
| File | Description |
|---|---|
| tools/check-app-versions.test.mjs | Adds protocol-12 and lock isolation tests |
| tools/check-app-versions.mjs | Protocol minimums + Cargo.lock isolation logic |
| tools/app-release-compatible-changes.json | Protocol-12 reviewed compatible blob set |
| SECURITY.md | Clarifies OTA vs USB activation behavior |
| SDK.md | Documents app-scoped credentials + setup flow |
| scripts/shoot-apps.sh | Updates gallery/launcher shot routes for Folio |
| README.md | Reframes simulator as profile-driven |
| examples/launcher/README.md | Updates launcher screenshots/copy for Folio |
| examples/launcher/Cargo.toml | Adds kobo-profile dev dependency |
| examples/gallery/src/main.rs | Adds Folio/V2 acceptance + ghosting page |
| examples/gallery/README.md | Documents V2/Folio acceptance surface |
| docs/RELEASE-TRAIN.md | Adds protocol-transition acceptance steps |
| docs/INSTALL.md | Bumps version to 0.3.5 + bootstrap/undo notes |
| docs/DEVICES.md | Adds simulator profile facts and bootstrap path |
| docs/DEVELOPING.md | Documents matrix runs + per-profile simulation |
| docs/CONTRIBUTING_APPS.md | Updates beta workflow + credential setup guidance |
| docs/apps/zotero-reader/index.html | Bumps app + minimum Cobalt to 0.3.5 |
| docs/apps/gallery/index.html | Bumps app + minimum Cobalt to 0.3.5 |
| docs/APP_STORE.md | Documents beta-only publishing + protocol-12 rules |
| crates/kobod/src/main.rs | Simulation profile metrics + host secret handling |
| crates/kobod/src/device.rs | Adds per-app protocol version + SetSecret handling |
| crates/kobo-ui/Cargo.toml | Adds unicode-width + profile dev dependency |
| crates/kobo-text/src/lib.rs | Adds serif display discovery + legacy typography split |
| crates/kobo-sdk/src/terminal.rs | Reworks terminal keyboard layout + extensive tests |
| crates/kobo-sdk/src/lib.rs | Adds Folio primitives + SetSecret API |
| crates/kobo-sdk/src/keyboard.rs | Adds masked secret entry helpers |
| crates/kobo-sdk/src/credentials.rs | New SDK modal credential setup flow |
| crates/kobo-sdk/Cargo.toml | Adds dev deps for profile/layout tests |
| crates/kobo-profile/src/lib.rs | Adds hardware capability facts + pose validation |
| crates/kobo-policy/src/tasks.rs | App-scoped secret lookup with global fallback |
| crates/kobo-policy/src/services.rs | Simulated SetSecret response wiring |
| crates/kobo-policy/src/credentials.rs | App-scoped secret install + validation |
| crates/kobo-cli/src/setup.rs | Installs bootstrap; safer undo with recovery slots |
| crates/kobo-cli/src/panel.rs | Fixes present option parsing formatting |
| crates/kobo-cli/src/package.rs | Allows reviewed bootstrap member + new folder writers |
| crates/kobo-cli/src/menu.rs | NickelMenu entry now targets stable bootstrap |
| crates/kobo-cli/src/bootstrap.rs | New stable bootstrap install/migration/remove logic |
| crates/kobo-cli/Cargo.toml | Adds protocol/sdk deps for CLI features |
| crates/kobo-abi/src/lib.rs | Adds open_read_nofollow helper |
| Cargo.toml | Bumps workspace version to 0.3.5 |
| Cargo.lock | Updates workspace crate versions/deps |
| assets/cobalt-launch.sh | New stable launch script outside version trees |
| apps/zotero-reader/src/main.rs | Adds credential setup + retries on NoCredential |
| apps/sudoku/src/main.rs | Moves actions to top bar |
| apps/catalog.json | Bumps gallery/zotero versions + minimum Cobalt |
| apps/backgammon/src/main.rs | Avoids empty points grid layout |
| apps/arxiv/src/main.rs | Moves Search to top bar glyph |
Review details
- Files reviewed: 52/54 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+63
to
+71
| if temporary.exists() { | ||
| let kind = fs::symlink_metadata(&temporary) | ||
| .map_err(|_| kobo_protocol::DeviceError::Backend)? | ||
| .file_type(); | ||
| if !kind.is_file() && !kind.is_symlink() { | ||
| return Err(kobo_protocol::DeviceError::Backend); | ||
| } | ||
| fs::remove_file(&temporary).map_err(|_| kobo_protocol::DeviceError::Backend)?; | ||
| } |
…file-matrix # Conflicts: # Cargo.lock # apps/catalog.json # crates/kobo-cli/Cargo.toml # crates/kobo-cli/src/main.rs # docs/APP_STORE.md # docs/CONTRIBUTING_APPS.md # docs/apps/chat/index.html # tools/check-app-versions.mjs
…file-matrix # Conflicts: # crates/kobo-cli/src/main.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test plan
kobosimulator matrix job produces a report for each profileNeed help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.