Repository navigation
docs: final doc pass (phase 9) #18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,14 +1,25 @@ | ||
| # TinySecurity roadmap | ||
|
|
||
| The current bootstrap PR implements conservative policy evaluation, ordered checks, | ||
| versioned wire contracts, SDK init/reinit and native loading. Publishing those | ||
| contracts/artifacts remains pending upstream review and release. It intentionally does | ||
| not close the security extraction tracker. | ||
|
|
||
| The [implementation plan](docs/plans/security-module.md) orders the remaining | ||
| work: full host policy/command parity, unified redaction, connection-pinned | ||
| egress, TinyBox sandbox planning, durable audit/approvals, optional Jev, | ||
| native conformance and release gates, reviewed policy expansion, crypto last. | ||
|
|
||
| Production OpenHuman callers move only after upstream capabilities are merged, | ||
| released and validated with published checksums and native latency budgets. | ||
| Tracked by [OpenHuman #7328](https://github.com/tinyhumansai/openhuman/issues/7328). | ||
|
|
||
| ## Delivered | ||
|
|
||
| Policy evaluation and ordered checks, scoped and immutable path policies, redaction | ||
| (including the boot diagnostic floor, [ADR 0007](docs/adr/0007-boot-diagnostic-redaction-floor.md)), | ||
| scoped egress grants, durable exact approvals, optional judge scoring, sandbox | ||
| planning, audit, confidential device, secret, cipher, password, keyring and pairing | ||
| members, and a CI-enforced release latency budget ([performance](docs/performance.md)). | ||
| `max_cost_per_day_cents` was removed from the contract ([ADR 0006](docs/adr/0006-remove-max-cost-per-day.md)). | ||
|
|
||
| ## Open | ||
|
|
||
| - Confidential delivery to an ordinary (non-native) admitted host callback, needed | ||
| for config-cipher plaintext delivery and pairing `Begin`/`Verify` (TinyBus gap). | ||
| - Native conformance on macOS and Windows runners for device and secret members. | ||
| - Fault-injection and timeout latching conformance in the SDK. | ||
| - Windows alias, ADS and device-path handling and rich shell grammar parity. | ||
| - Calls-per-turn measurement against a representative OpenHuman workload. | ||
|
|
||
| Host callers move to a member only after it is merged, released and validated with | ||
| published checksums and the native latency budget. See [MODULE.md](MODULE.md) for the | ||
| current surface. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -20,18 +20,21 @@ a controlled runner and representative workload. | |
|
|
||
| The characterized host debug path over two checks was 35 us p50 / 63 us p99. | ||
| The native boundary is substantially slower in this debug workload. These | ||
| numbers do not establish release-build performance, or a product migration | ||
| budget. A provisional gate to measure before migration is <=1 ms p50 and | ||
| <=10 ms p99 per batched Check on the same supported native runner. That gate | ||
| must be agreed against a representative released-module workload and its | ||
| number of calls per turn before host callers move. Bootstrap remains | ||
| release-gated irrespective of this synthetic result. | ||
| debug numbers are historical; the release-build figures and the agreed budget | ||
| below supersede them. | ||
|
|
||
| ## Release budget (enforced in CI) | ||
|
|
||
| Release build, same workload (500 samples per method, Linux x86_64, October 14, | ||
| 2026): Evaluate 50.6 us p50 / 62.9 us p99; Check (two checks) 52.1 us p50 / | ||
| 68.6 us p99. | ||
| Release build, same workload (500 samples per method, Linux 7.0.0-31-generic | ||
| x86_64, October 14, 2026): | ||
|
|
||
| | Native method | p50 | p99 | | ||
| | --- | --- | --- | | ||
| | Evaluate | 50.6 us | 62.9 us | | ||
| | Check (two checks) | 52.1 us | 68.6 us | | ||
|
Comment on lines
+28
to
+34
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: git diff --unified=12 b93ae39d86cb02a21b87bb54b704dc12fd2202dc e30554299084f160589e97bee9b24b05f9234bfb -- docs/performance.md
sed -n '1,48p' docs/performance.md
sed -n '155,190p' crates/tinysecurity-module/examples/verify_module.rsRepository: tinyhumansai/tinysecurity Length of output: 5967 Describe the release workload as interleaved calls. The release table is labeled “same workload,” but Suggested fix-The native verifier sends 500 sequential Evaluate calls (one pure diagnostic)
-and 500 Check calls (two checks, allow plus unconditional floor deny) through
-the real MemoryBus broker and dynamically loaded native module. Each sample
-uses exactly one bus call.
+The native verifier sends 500 iterations through the real MemoryBus broker and
+dynamically loaded native module. Each iteration contains one Evaluate call
+(one pure diagnostic) followed by one Check call (two checks, allow plus
+unconditional floor deny). Each sample uses exactly one bus call.🤖 Prompt for AI Agents |
||
|
|
||
| Release is roughly 9x faster at p50 than the debug run above, so debug numbers | ||
| must not be used for budgeting. | ||
|
|
||
| The agreed budget per bus call on a supported native runner is p50 <= 1 ms and | ||
| p99 <= 10 ms for both Evaluate and Check, roughly 20x and 150x headroom over | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This present-tense claim implies that admitted sandbox plans are currently enforced at launch, but the module only produces and consumes plan artifacts:
crates/tinysecurity-sandbox/README.md:26-30anddocs/specs/security-module.md:279-288explicitly say that process launching and concrete confinement are not implemented and that a future launcher must perform the checks. An integrator relying on this summary could mistake successful planning for actual isolation, so this should say TinyBox must enforce the plan and the launcher integration should remain listed as open.AGENTS.md reference: AGENTS.md:L162-L163
Useful? React with 👍 / 👎.