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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
windows-unsafe-boundary:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
- name: Test the Windows FFI allowance guard
run: scripts/ci/check-windows-unsafe-boundary_tests.sh
- name: Check the Windows FFI allowance boundary
run: scripts/ci/check-windows-unsafe-boundary.sh
module-ci:
uses: tinyhumansai/.github/.github/workflows/module-ci.yml@4adc1080fb495098e7af1aade82ed7e6e3c69bb7
with:
Expand Down
13 changes: 8 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,12 +145,15 @@ Use standard `rustfmt` output and Rust 2024 idioms. Do not hand-format around
`impl Into<String>` at boundaries; return owned, concrete types.
- Keep the public surface minimal: default to private, and export deliberately
from `src/lib.rs`.
- `unsafe` is forbidden across the workspace by `[workspace.lints]` in the root
- `unsafe` is denied across the workspace by `[workspace.lints]` in the root
Comment thread
M3gA-Mind marked this conversation as resolved.
Resolved
`Cargo.toml`, which every crate inherits with `[lints] workspace = true`.
**No crate relaxes it.** ADR 0003 reserved `tinybox-linux` as the one that
might; ADR 0005 records why it did not need to. If you find yourself wanting
`unsafe`, check first whether an existing tool already does the dangerous part
correctly — that is how the namespace backend avoided it.
**Only `crates/tinybox-jail/src/windows.rs` relaxes it**, with one file-scoped
`#![allow(unsafe_code)]` for the `AppContainer` FFI (ADR 0003);
`scripts/ci/check-windows-unsafe-boundary.sh` fails CI on any other spelling
of a relaxation. ADR 0005 records why `tinybox-linux` did not need one. If
you find yourself wanting `unsafe`, check first whether an existing tool
already does the dangerous part correctly — that is how the namespace
backend avoided it.

### Errors

Expand Down
Loading
Loading