Repository navigation
Security migration roll-up #140
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
Merged
M3gA-Mind
merged 246 commits into
tinyhumansai:main
from
senamakel:epic/8369-security-migration
Nov 3, 2026
Merged
Changes from all commits
Commits
Show all changes
246 commits
Select commit
Hold shift + click to select a range
95e49a0
chore: bump workspace version to 0.2.3
senamakel 1863d45
Merge pull request #60 from senamakel/sec-59-tinybox-acceptance
senamakel ca314f0
feat(tinybox-bus): derive JsonSchema for LocalGrantConfig
senamakel 862d7ed
test(tinybox-bus): assert json schema properties in local grant confi…
senamakel 58f0d09
feat(tinybox-bus): add native shell client helper
senamakel ee3f274
fix(native-shell): capture timeout before shell is moved
senamakel 0df5fe2
fix(tinybox-bus): report timeouts accurately and clean up on failure
senamakel e530279
refactor(tinybox-bus): make native shell client object-safe
senamakel 4e97beb
test(tinybox-bus): run native shell test on futures-executor
senamakel 357718f
fix(tinybox-bus): reject output batches that do not advance the cursor
senamakel 4617d12
refactor(tinybox-bus): satisfy clippy lints in native shell
senamakel ac8496c
test(native-shell): cover cancellation and create failure cleanup
senamakel 965629e
test(native-shell): reformat assertions to satisfy line width
senamakel 880e4ac
fix(native-shell): report timed out executions as timeouts
senamakel 9437a53
feat(native-shell): support yielding a running shell process
senamakel 9799e8c
feat(native-shell): support yielding long-running shell executions
senamakel 1591545
test(tinybox-bus): cover native shell timeout and yield outcomes
senamakel ca5d6b3
test(tinybox-bus): import ExecutionFailure in native shell tests
senamakel 1d6a660
docs(tinybox-bus): format TinyBox as code in doc comment
senamakel 9640ab3
refactor(tinybox-bus): replace mock client flags with behavior enum
senamakel e95c5a1
fix(native_shell): ignore yield_after when it exceeds the timeout
senamakel 5888f2e
docs(tinybox-bus): expand crate summary to cover lifecycle orchestration
senamakel 2f40d88
chore(tinybox-bus): drop stale clippy allow on run_native_shell
senamakel 8bbb41b
refactor(native-shell): extract native shell execution into a state m…
senamakel 5904804
fix(tinybox-bus): bind native shell process and fix cancellation muta…
senamakel 0eacfd9
refactor(native-shell): extract terminal state handling into helper
senamakel 8715dc0
test(tinybox-bus): cover native shell failure and cleanup paths
senamakel 1b987df
test(native-shell): cover failed execution with close failure
senamakel b47b19c
test(native-shell): cover timeout cancellation and invalid cursor cle…
senamakel 97c781c
test(tinybox-bus): cover running state for cancelled and timed out mocks
senamakel 3217e09
test(native-shell): cover stderr accumulation when polling without yield
senamakel ee3c393
test(tinybox-bus): use wrapping add for mock read counter
senamakel 6980ea7
test(tinybox-bus): use named cancel and chunk helpers in native shell…
senamakel 8429981
test(native-shell): add never_cancel and cancel_now helpers
senamakel 4b65c2a
test(native-shell): return results from failure-path tests
senamakel b1951c6
test(tinybox-bus): propagate assertion failures in native shell tests
senamakel 7ca4bba
test(tinybox-bus): annotate closure return type in native shell test
senamakel 0882241
test(tinybox-bus): relax native shell call ordering assertions
senamakel 8a6ef31
Merge pull request #61 from senamakel/sec-6-tinybox-native-shell
senamakel 83e789a
chore(release): bump workspace version to 0.2.4
senamakel 279dcef
Merge pull request #62 from senamakel/sec-6-tinybox-release
senamakel 05de9d5
fix(storage): align TinyBox with TSD 2.1.2
senamakel c78a87c
fix(storage): consume TSD security fix
senamakel f36d77e
Merge pull request #63 from senamakel/sec-654-tinybox-tsd2
senamakel 3a69426
chore(vendor): bump tinybus submodule
senamakel 1deb31b
test(sandbox): cover hard requirements for unsupported and supported …
senamakel a4ce4b6
feat(spec): add hard requirements to box specs
senamakel 37ad482
test(sandbox): cover hard requirement rejection for best-effort cpu
senamakel 9d5dc1a
test(passthrough): cover rejection of hard requirements before storage
senamakel 092fb7c
chore(vendor): bump tinybus submodule
senamakel 7e96981
docs(runtime): document errors for require_spec
senamakel 28430a9
test(spec): cover defaulting of hard requirements for older specs
senamakel 608cf71
test(spec): use explicit expect messages in legacy spec test
senamakel 7969ee9
chore(tinybox-core): add serde_json as a dev-dependency
senamakel 60a6a16
test(spec): replace panics with errors in legacy spec test
senamakel 5af126a
fix(storage): preserve hard requirements through v1 conversion
senamakel 9f9319e
test(record): cover defaulting hard requirements for older records
senamakel 56609ef
test(record): reformat older stored records test setup
senamakel d7ea523
test: assert empty store lists with assert_eq
senamakel 2639e80
test: assert empty hard requirements with assert_eq
senamakel a3aa757
test(sandbox): cover refusal of unsupported hard requirements
senamakel 3cb2960
refactor(sandbox): drop redundant spec check in create
senamakel 68480d0
fix(docker): validate spec before creating a sandbox
senamakel c1e308b
Merge pull request #64 from senamakel/sec-27-hard-constraints
senamakel 5b62c81
chore(vendor): bump tinybus submodule
senamakel 9a31af1
chore(vendor): bump tinybus submodule
senamakel 63de2d7
test(sandbox): cover resource enforcement selection and setrlimit fal…
senamakel 88661ae
feat(jail): add windows appcontainer backend module
senamakel 858f066
feat(sandbox): add setrlimit memory fallback when cgroup v2 is unavai…
senamakel 2ac5314
style: reformat sandbox constraint support and tests
senamakel fa80ab8
build: relax workspace unsafe_code lint to deny
senamakel f1eb4fe
feat(windows): enforce cpu, memory and process limits via job objects
senamakel 1a3c249
fix(jail): report no constraint support when appcontainer is unavailable
senamakel f81e0a9
chore(tinybox-jail): enable job objects and system information window…
senamakel d13c577
refactor(tinybox-jail): tidy windows imports and test module declaration
senamakel fadb597
feat(jail): add captured spawn support on windows
senamakel a5290c4
fix(tinybox-jail): report appcontainer availability via owned-child path
senamakel 9fe1c4e
feat(jail): add owned-child backend detection
senamakel 98aaca9
feat(tinybox-jail): return a working child from appcontainer spawn
senamakel 3d8c614
fix(tinybox-jail): import SetHandleInformation from Foundation on win…
senamakel 77841d9
fix(windows): correct job object cpu rate and pipe imports
senamakel cc98c27
fix(windows): restrict inherited handles and cap job memory
senamakel 8d09ef6
refactor(sandbox): extract setrlimit wrapping into a reusable helper
senamakel 27391d5
docs(tinybox-jail): document the owned Windows AppContainer backend
senamakel 2d2aeb2
fix(tinybox-jail): annotate inherited handle array with explicit HAND…
senamakel ec9b3a3
feat(jail): add explicit hard requirements for backend constraints
senamakel 092e510
fix(tinybox-jail): allow resource hard requirements without resource …
senamakel 74e56cd
test(jail): require resource constraints in facade refusal test
senamakel 0df67cc
fix(jail): enforce all hard requirements and default windows job limits
senamakel ce69c65
refactor(jail): remove unused resource constraints constant
senamakel 6e26114
docs(tinybox-jail): wrap `AppContainer` in backticks in doc comments
senamakel 8ace90c
fix(tinybox-jail): validate win32 structure sizes before narrowing to…
senamakel 1b856e4
fix(windows): remove needless borrow when building the command line
senamakel 328fa0d
fix(windows): apply job object limits only for hard constraints
senamakel 34b6851
fix(tinybox-jail): only apply hard job limits for required constraints
senamakel d4cd19a
test(windows): cover owned appcontainer child capture and teardown
senamakel 5517280
refactor(sandbox): extract prlimit program resolution for testability
senamakel 7a0d407
feat(jail): add box spec helpers for resources and hard requirements
senamakel 043a325
test(sandbox): assert trusted program by file name
senamakel a18df4e
test(jail): cover box spec preflight on explicit hard requirements
senamakel 95b4c4c
test(sandbox): assert trusted program path is absolute
senamakel 7f712f6
refactor(tinybox-jail): use clone_from and document require_spec errors
senamakel 1cc0915
refactor(sandbox): inject prlimit resolver into exec argument builder
senamakel 5cafb33
test(windows): drop redundant unsafe_code allow from windows tests
senamakel e2ab119
refactor(sandbox): expose trusted_prlimit_program to the parent module
senamakel e59153a
fix(sandbox): pass prlimit program by value to wrap_setrlimit
senamakel a180a34
Merge pull request #65 from senamakel/sec-27-linux-resource-limits
senamakel e560642
ci: add windows unsafe boundary check
senamakel 189a286
docs(tinybox-linux): update unsafe_code policy description
senamakel 454b7b8
feat(jail): add env-aware captured spawn hook
senamakel 88c06a5
feat(jail): pass explicit environment to windows appcontainer children
senamakel 21004e2
feat(jailed): pass approved environment to owned jail children
senamakel b835714
test(jailed): cover approved environment for owned backend on windows
senamakel db0c063
feat(jail): pass approved environment through captured spawn
senamakel 8c1568a
test(windows): update spawn helper calls to backend-aware variant
senamakel 662fc54
style: apply rustfmt formatting to jailed host and windows jail code
senamakel 3a01fea
fix(tinybox-host): gate unix-only imports and silence clippy on non-unix
senamakel cc43af2
ci: replace ripgrep with grep in windows unsafe boundary check
senamakel 1448c2f
fix(native_jail): treat explicit native jail budgets as hard requirem…
senamakel 5704d0a
refactor(tinybox-module): extract required resource constraints helper
senamakel e36c49a
refactor(tinybox-module): extract resource setup into configure_resou…
senamakel 83cd9fc
fix(windows): forward LOCALAPPDATA into the AppContainer environment
senamakel e896e69
fix(jail): inject LOCALAPPDATA into the explicit environment block
senamakel d42f630
test: cover environment overrides and session bus vars in jail tests
senamakel bf3381f
test(tinybox-module): prepare jail before copying bus env vars
senamakel 2dafd44
test(tinybox-module): pass approved env to observed command runner
senamakel 1f7fa9d
chore(tinybox-jail): use u16::from for equals sign in environment block
senamakel 427df50
test(windows): assert acl and network enforcement in capability report
senamakel cad477c
fix(tinybox-jail): forward SystemRoot into the AppContainer environment
senamakel 944fbe3
test(jailed): add windows test module wiring
senamakel a9f113f
test(tinybox-module): pass session bus environment to resource descen…
senamakel 9de6497
test(limited): qualify Result in jailed windows test signature
senamakel dc4fb74
docs(limited): add backticks around `AppContainer` in test module doc
senamakel 6c691bb
test(limited): include stderr and exit code in environment assertion
senamakel 91a28bc
test(windows): resolve cmd.exe via SystemRoot in jail tests
senamakel 41a840f
test(limited): use fallible lookup for system root in windows test
senamakel 1338416
refactor(jail): extract owned backend selection into a helper
senamakel 2ca61bc
test(jail): cover owned spawn wrappers and approved environment
senamakel 6b57559
test(tinybus_module): cover cancellation winning over late command fa…
senamakel f7e41a4
fix(tinybus_module): report cancelled state when a cancelled executio…
senamakel a47b744
test: reformat test code to satisfy rustfmt
senamakel cd62294
test: tighten assertions for sandbox escape and cancellation output
senamakel db537f7
test(jail): correct swapped exit status assertions in windows tests
senamakel 92886bd
fix(tinybus-module): only mark cancelled state on backend failure
senamakel bcea2e7
test(tinybus_module): return result from cancellation ordering test
senamakel 817bac0
test(tinybox-jail): make spawn wrapper tests robust across platforms
senamakel 2cb228b
style(tinybox-jail): reformat approved environment map in test
senamakel 84721ec
Merge pull request #66 from senamakel/sec-27-windows-resource-limits
senamakel cbed9de
test(tinybus-module): cover process lifecycle event broadcasts
senamakel 3304718
test(tinybus): clone process id in exec lifecycle test
senamakel d62789c
test(tinybus_module): start test storage host in lifecycle tests
senamakel ee9fb58
test(tinybus): run process lifecycle tests on a multi-threaded runtime
senamakel 4e75c6a
test(tinybus_module): remove duplicate tokio test attribute
senamakel f01caf2
feat(bus): add process-scoped sandbox lifecycle events
senamakel 75d6e3d
feat(tinybox-module): publish process lifecycle events to tinybus
senamakel d0dfe88
test(bus): update contract version assertions to 2.2
senamakel f29e6a7
docs(tinybus-module): document contract 2.1 and 2.2 additions
senamakel 14c104d
refactor(tinybox-module): split chained let-else into early returns
senamakel e9cd35e
style: reformat long lines to satisfy rustfmt
senamakel c60b1f9
test(bus): import contract constants for event wire label tests
senamakel 5f68d9f
refactor(tinybus-module): move publish_process_events next to the con…
senamakel fa1c540
refactor(tinybus-module): widen stream execution visibility to module…
senamakel 34c3333
test(tinybus): assert start exec result and no extra lifecycle events
senamakel 5f7da5e
test(tinybox-bus): update contract compatibility expectations to vers…
senamakel 2cbb8f5
docs(tinybox-bus): format `TinyBox` as code in the `ProcessEvent` doc…
senamakel ab65387
docs: clarify process event start methods and exclusions
senamakel 9d71521
Merge pull request #67 from senamakel/sec-27-process-events-clean
senamakel 01eefe1
test(tinybox-module): cover cpu quota cause forwarding before exit
senamakel 9fadb0e
feat(runtime): report provider-proven cpu quota terminations
senamakel cfec5f4
feat(core): export TerminationCause from runtime
senamakel d9baaae
feat(host): report cpu quota throttling from jailed executions
senamakel 0b5445a
feat(sandbox): sample cgroup cpu counters before the scope stops
senamakel 583358e
test(host): cover cpu throttling counter parsing and jail env
senamakel 7dfc4a7
test(sandbox): assert the jail command uses the configured binary
senamakel 19917c3
docs: document cpu limit hit observation
senamakel ff229fa
test(sandbox): assert cpu event scope wrapper in native jail argv
senamakel 8f21c03
test(sandbox): assert cpu.stat in native jail argv
senamakel e8ca72d
test(sandbox): drop stale cpu.stat assertion from jail command test
senamakel 67cccc9
test(sandbox): match cpu event file env var by substring
senamakel c17b61b
test(sandbox): reformat cpu event file assertion
senamakel bc01054
test(sandbox): match cpu.stat as a substring in argv
senamakel 570a97b
refactor(limited): extract cpu event report helpers
senamakel 89c01b4
refactor(limited): extract jail command setup into helper
senamakel ceae1af
test(tinybox-module): drop unused Result from cpu quota observer test
senamakel e28acae
refactor(limited): extract runtime dir lookup into prepare_in
senamakel 713f68e
test(limited): add debug output to cpu event report test
senamakel 6c0f04a
test(limited): tighten permissions on temp dir in cpu event report test
senamakel 533514c
test(limited): move permissions import above tempdir setup
senamakel 3696cbc
fix(limited): reject runtime dirs outside /run before preparing cpu e…
senamakel 0868c5c
test(limited): cover cpu event report for masked run paths
senamakel e76cf40
test(limited): clear env before unmetered systemd-run check
senamakel 811cd80
test(runtime): cover observers receiving a cpu quota termination cause
senamakel 3880c28
fix(tinybox-core): silence unused parameter warning in termination_cause
senamakel 15edac9
chore(runtime): prevent inlining of termination_cause default
senamakel e7081be
test(runtime): coerce observer to trait object in cpu quota test
senamakel ce44d62
test(public_api): cover observer termination causes through the publi…
senamakel 0b557cc
feat(core): return whether termination cause was recorded
senamakel 8e8b188
refactor(core): make termination_cause a required observer method
senamakel 6dda06f
feat(core): add termination_cause to ExecutionObserver
senamakel ce097af
test: add termination_cause stubs to observer test fixtures
senamakel 6c87eed
refactor(core): give execution observers a default termination_cause
senamakel 7c4d394
refactor(runtime): move ExecutionObserver into types module
senamakel 0c74bd1
test(runtime): cover default observer termination causes
senamakel 7a6d4a9
test(runtime): remove redundant cpu quota observer test
senamakel 224cd10
test(runtime): update observer test for renamed default observer
senamakel 75464ae
refactor(runtime): move execution observer into output module
senamakel 4c7c11c
test(docker): cover forwarding of provider termination causes
senamakel 7f7d8d5
Merge pull request #68 from senamakel/sec-27-resource-events
senamakel 5f6e27e
chore(vendor): bump tinybus submodule
senamakel 3ada694
test(storage): cover declaration serialization and nonempty names
senamakel 29e9275
chore(vendor): bump tinybus submodule
senamakel ddaea54
refactor(native-shell): move native shell orchestration into the host…
senamakel fb41247
refactor(tinybox-host): move native-shell orchestration out of the bu…
senamakel 6c58ed6
refactor(native_shell): import bus types directly instead of via crat…
senamakel 04ed030
refactor: move futures dependencies from tinybox-bus to tinybox-host
senamakel ebbd99c
fix(migrations): build collection specs from declaration names
senamakel 21e5af4
feat(shell): add supervised native shell execution request and result…
senamakel 7d572b4
feat(tinybox-bus): export native shell run request and result types
senamakel 395626f
feat(bus): add module-owned native shell execution
senamakel 7f6908b
test(tinybox-module): cover run native shell completion, yielding and…
senamakel fcd7e7e
test(tinybox-bus): update contract version assertions to 2.3
senamakel be22737
test(tinybox-bus): cover RunNativeShell result serialization
senamakel 5e4f70b
test(bus): update contract version assertions to 2.3
senamakel e25ba21
test(tinybus-module): use echo in native shell tests
senamakel 3189a6d
test(tinybus-module): add diagnostics to native shell exit code asser…
senamakel ea9b2af
fix(native_shell): yield before polling output to avoid starvation
senamakel 997b777
test(tinybox-bus): update wire snapshot to contract version 2.3
senamakel fa739f0
Merge tinybox main into the security migration roll-up
M3gA-Mind 29e08b5
Record the OpenShell backend under contract 2.3
M3gA-Mind 76fca97
Fail the unsafe boundary check on every spelling of a relaxation
M3gA-Mind b46ca5e
Pin the storage crates to canonical tinystoragedrivers v2.1.2
M3gA-Mind 465353e
Satisfy clippy in the storage collection contract and its tests
M3gA-Mind dcb6327
Cover a native shell run that fails to start
M3gA-Mind 2871c47
Cover a native shell run cancelled at its timeout
M3gA-Mind c7af699
Satisfy clippy in the native shell run tests
M3gA-Mind 496dca4
Fail the unsafe boundary check on a crate that drops the workspace lints
M3gA-Mind e756e4f
Start a native shell with its normalized timeout and check chunk order
M3gA-Mind 92c989e
Give a jailed native shell its approved environment and keep timeout …
M3gA-Mind 1496e57
Report the setrlimit fallback's memory cap as best effort and check p…
M3gA-Mind 609d9c3
Deny what a jail's hard requirements deny and apply the approved envi…
M3gA-Mind fadf833
Keep Windows profiles distinct, CPU rates honest and command env intact
M3gA-Mind 027aa84
Allow the canonical tinystoragedrivers git source
M3gA-Mind 0d6c04c
Run the native shell output tests portably on Windows
M3gA-Mind b0c3884
Say why tinybox-host's tests depend on futures-executor
M3gA-Mind 4a9b24c
Report a jailed run's CPU throttling before returning its collection …
M3gA-Mind 3dc5fdb
Apply rustfmt and share the setrlimit fallback's prlimit check
M3gA-Mind File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.