Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2089 commits
Select commit Hold shift + click to select a range
c545ee1
test(rpcMethods): add agent chat to inference capability group
senamakel Oct 22, 2026
da09d86
chore(ci): update ignored test baseline counts
senamakel Oct 22, 2026
e2bc601
test(agent-runtime-boundary): update baseline for context-owned turn …
senamakel Oct 22, 2026
ea17039
test(security-native-fixture): assert opt-in native tests in debug pr…
senamakel Oct 22, 2026
681ff62
chore(ci): drop stale e2e suite and module boundary entry
senamakel Oct 22, 2026
f865b76
chore(feature-forwarding): document native-security-tests as not forw…
senamakel Oct 22, 2026
b4d3ce8
test(storage-owner): build cargo metadata fixtures with resolved dep …
senamakel Oct 22, 2026
4206fc4
test(scripts): update storage owner checker tests
senamakel Oct 22, 2026
6fb11b2
chore(deps): bump agent-desktop to 0.10.1 and enable sqlite storage
senamakel Oct 22, 2026
12cd29e
test: cover s3 and object_store in storage owner check
senamakel Oct 22, 2026
4fa46ad
fix(ci): normalise forbidden dependency names before comparison
senamakel Oct 22, 2026
fbc8f21
chore(e2e): drop two settings specs from the all-flows runner
senamakel Oct 22, 2026
9165ca0
chore(ci): drop tinystoragedrivers-types edges from module boundaries
senamakel Oct 22, 2026
4e14e11
test: match any following job in hosted core step regex
senamakel Oct 22, 2026
e8f15cf
chore(vendor): bump tinydocs submodule
senamakel Oct 22, 2026
3ea9056
test(mock-api): cover conversation id handling in stateful routes
senamakel Oct 22, 2026
b1b9bb2
test(mock-api): rename created conversation response variable
senamakel Oct 22, 2026
8d6ee8a
test(mock-api): remove duplicate conversation creation in stateful test
senamakel Oct 22, 2026
9a03964
feat(mock-api): add PATCH handler for conversations
senamakel Oct 22, 2026
909f264
chore(wallet): bump tinywallet module to 0.25.0
senamakel Oct 22, 2026
abc3c0f
test: match any following job in hosted core step regex
senamakel Oct 22, 2026
6345f90
test(module-build): cover tinysecurity in registry source specs
senamakel Oct 22, 2026
ca8a5d5
test(module-pins): drop tinychannels owner commit attestation test
senamakel Oct 22, 2026
01f5758
chore(registry): bump tinysecurity module to 0.17.1
senamakel Oct 22, 2026
1eb5a10
chore(scripts): include ci tests in test:scripts glob
senamakel Oct 22, 2026
00d5b81
chore(deps): update dependency lockfile and registry security records
senamakel Oct 22, 2026
61fb7fb
Merge remote-tracking branch 'origin/security-bus-7328' into epic-732…
senamakel Oct 22, 2026
c6e1563
chore(deps): downgrade workspace crates and drop uiautomation
senamakel Oct 22, 2026
aea7d2f
build(deps): bump tiny bus crate versions in lockfile
senamakel Oct 22, 2026
b80392f
chore(vendor): bump tinywallet submodule
senamakel Oct 22, 2026
54d13e4
chore(deps): drop stale tinystoragedrivers 0.11.0 lock entries
senamakel Oct 22, 2026
6582e95
build(deps): enable storage feature on tinywallet-bus
senamakel Oct 22, 2026
82c4d84
chore(vendor): bump tinywallet submodule
senamakel Oct 22, 2026
dd07e72
Merge branch 'security-bus-7328' of github.com:senamakel/openhuman in…
senamakel Oct 22, 2026
615b31e
chore(vendor): pick up TinyWallet lint fix
senamakel Oct 22, 2026
481cad4
chore(vendor): pick up TinyWallet coverage fix
senamakel Oct 22, 2026
3bf18b5
chore(vendor): update TinyComputer worker egress
senamakel Oct 23, 2026
55844e9
test(security): add comment explaining redaction test intent
senamakel Oct 23, 2026
06a09b2
chore(vendor): bump tinycomputer, tinydocs and tinywallet
senamakel Oct 23, 2026
d4aa6f9
chore(vendor): bump tinycomputer, tinydocs and tinywallet
senamakel Oct 23, 2026
c222f3f
build(deps): update lockfile for 0.10.1 release
senamakel Oct 23, 2026
8bd721f
chore(vendor): bump tinywallet submodule
senamakel Oct 23, 2026
a16f9dc
chore(vendor): bump tinywallet submodule
senamakel Oct 23, 2026
fc0fc2e
test(security): add browser egress fixture test
senamakel Oct 23, 2026
3109137
ci(security-browser-egress-fixture): allow overriding the security mo…
senamakel Oct 23, 2026
ebe1d3c
test(retry-markdown-links): cover transient request timeouts
senamakel Oct 23, 2026
18e553c
fix(ci): retry markdown links that time out
senamakel Oct 23, 2026
d168ae9
test(security): assert browser egress fixture no longer runs ignored …
senamakel Oct 23, 2026
c685115
test: drop stale ignored wording from egress fixture test name
senamakel Oct 23, 2026
af84443
Merge remote-tracking branch 'origin/security-bus-7328' into epic-732…
senamakel Oct 23, 2026
6d65d3f
chore(deps): downgrade zip and drop uiautomation from lockfile
senamakel Oct 23, 2026
e511a69
chore(vendor): bump tinywallet submodule
senamakel Oct 23, 2026
b7b9b7e
chore(vendor): bump tinywallet submodule
senamakel Oct 23, 2026
4857d7b
docs(security): update TinySecurity version and contract references
senamakel Oct 23, 2026
3b97566
chore(deps): bump workspace crates to 0.10.1 and update dependencies
senamakel Oct 23, 2026
119545e
test(browser-egress): cover loopback denial through the real TinyComp…
senamakel Oct 23, 2026
4863c64
test(browser-egress): cover tinycomputer loopback dial blocking
senamakel Oct 23, 2026
cc69751
docs: remove wallet.migrations from storage schema table
senamakel Oct 23, 2026
e55eee7
test(browser): stage tinycomputer fixture in a private directory
senamakel Oct 23, 2026
fdfb214
test(browser-egress): restrict fixture directory permissions
senamakel Oct 23, 2026
fa5ea13
test(browser_egress): reformat assertion for readability
senamakel Oct 23, 2026
4b1becf
Merge remote-tracking branch 'fork/security-bus-7328' into security-b…
senamakel Oct 23, 2026
e1bb67f
chore(deps): bump workspace crates to 0.10.1 and update dependencies
senamakel Oct 23, 2026
6388293
Merge remote-tracking branch 'fork/security-bus-7328' into security-b…
senamakel Oct 23, 2026
a5ba314
test(browser-egress): mark native loopback test as ignored
senamakel Oct 23, 2026
13a5f65
Merge remote-tracking branch 'origin/security-bus-7328' into epic-732…
senamakel Oct 23, 2026
8fba73b
test(security): cover opt-in chromium egress test in fixture
senamakel Oct 23, 2026
c6a9223
chore(vendor): bump tinycomputer submodule
senamakel Oct 23, 2026
cfdb273
chore(vendor): update tinysecurity subproject commit
senamakel Oct 23, 2026
3ee48d1
test(browser-egress): cover public-to-loopback dns rebinding
senamakel Oct 23, 2026
d58e11c
test(keyring): cover denied availability probe and backend change
senamakel Oct 23, 2026
7cb8570
test(security): cover dns rebinding fixture and bump tinysecurity
senamakel Oct 23, 2026
4e4c63b
test(security): escape dns sequence variable in egress fixture
senamakel Oct 23, 2026
a7d6c2e
test(ci): cover dns rebinding in browser egress fixture
senamakel Oct 23, 2026
35fca84
test(browser_egress_host): reorder imports in dns rebinding test
senamakel Oct 23, 2026
5169186
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
573c8cb
test(keyring): reformat availability probe assertions
senamakel Oct 23, 2026
dd0e862
docs(security): add keyring and legacy import audit notes
senamakel Oct 23, 2026
c3d3518
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
bc55755
chore(vendor): update tinysecurity subproject commit
senamakel Oct 23, 2026
513c9b1
chore(vendor): update tinysecurity submodule
senamakel Oct 23, 2026
e930229
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
527108e
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
a210701
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
48db440
docs(plans): record native DNS fixture progress and host context merge
senamakel Oct 23, 2026
695b052
Merge remote-tracking branch 'origin/security-bus-7328' into epic-732…
senamakel Oct 23, 2026
c7494c2
chore(vendor): bump tinycomputer submodule
senamakel Oct 23, 2026
de91758
test(security): cover metadata dns sequence in browser egress fixture
senamakel Oct 23, 2026
1ad386e
test(browser): cover metadata hostname egress denial
senamakel Oct 23, 2026
8eea69c
docs(plans): update upstream checkpoint for tinysecurity v0.17.1
senamakel Oct 23, 2026
50c8ee1
chore(vendor): bump tinybox submodule
senamakel Oct 23, 2026
bef47e3
chore(vendor): bump tinybox submodule
senamakel Oct 23, 2026
3b6fa4f
chore(deps): consolidate tinystoragedrivers-busproxy to 2.1.0
senamakel Oct 23, 2026
0c9d038
test(storage): cover tinybox collection contract
senamakel Oct 23, 2026
7797d5c
chore(vendor): bump tinybox submodule
senamakel Oct 23, 2026
fabb97d
chore(vendor): bump tinybox submodule
senamakel Oct 23, 2026
34f96b8
refactor(storage): use tinybox-bus collections accessor
senamakel Oct 23, 2026
5dfda13
chore(storage): drop unused IndexSpec import
senamakel Oct 23, 2026
da0b692
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
c2796d2
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
73a2f87
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
f66ebb5
docs(plans): record resolver coverage follow-up
senamakel Oct 23, 2026
b5347b6
chore(deps): replace tinystoragedrivers-core with tinystoragedrivers-…
senamakel Oct 23, 2026
3e27e40
docs(plans): record TinyComputer transport follow-up evidence
senamakel Oct 23, 2026
7306448
docs(plans): record windows ci failure in security plan
senamakel Oct 23, 2026
5993c66
docs(security): record process inventory scope check
senamakel Oct 23, 2026
fd29b47
docs(plans): update PR #103 status in security plan
senamakel Oct 23, 2026
87abd44
docs(plans): clarify tinybox branch status in security plan
senamakel Oct 23, 2026
3448e05
docs(plans): rewrap vendor/tinybox note in security plan
senamakel Oct 23, 2026
6f5d982
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
cd6b0e8
docs(plans): record windows ci timeout fix for pr #46
senamakel Oct 23, 2026
ab7a780
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
04d41bf
docs(plans): record base verification and fixture timeout follow-up
senamakel Oct 23, 2026
184051c
docs(plans): update security tracking notes for PR refreshes
senamakel Oct 23, 2026
d226b5e
feat(security): add endpoint redaction helper preserving safe path
senamakel Oct 23, 2026
cf41228
test(security): cover endpoint redaction with credentials and fragment
senamakel Oct 23, 2026
57cd096
chore(vendor): bump tiny submodules to latest commits
senamakel Oct 23, 2026
0199428
style: reorder imports in ops_install fetch module
senamakel Oct 23, 2026
df9fa09
Merge remote-tracking branch 'upstream/main' into epic-7328-continue
senamakel Oct 23, 2026
ffb2d79
test(channels): remove unused tinychannels_bus imports
senamakel Oct 23, 2026
8dbd634
test(config): update redact_home tests for suppressed output
senamakel Oct 23, 2026
45400fe
refactor(config): route home path redaction through security module
senamakel Oct 23, 2026
0320526
test(security): update redact_home import path in redaction tests
senamakel Oct 23, 2026
7f62373
docs(plans): record skill installer and startup path redaction
senamakel Oct 23, 2026
1614ca6
Merge local main while preserving epic module pins
senamakel Oct 23, 2026
a2e61f6
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
32d883b
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
d0a4bbd
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
52c632b
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
74a85b7
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
3b0b552
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
2190e29
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
36e682f
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
3646d1b
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
41533b5
fix(config): normalize redacted home paths through a helper
senamakel Oct 23, 2026
a67eb9f
refactor(config): widen normalize_redacted_path visibility
senamakel Oct 23, 2026
d3f63ce
test(config): cover forward-slash normalization of redacted windows p…
senamakel Oct 23, 2026
e06dc59
fix(config): normalize backslashes in redacted paths
senamakel Oct 23, 2026
16df046
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
f7a883b
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
512c7c8
chore(vendor): update tinysecurity subproject commit
senamakel Oct 23, 2026
134f1f9
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
413565f
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
46a7c9d
chore(vendor): update tinysecurity subproject commit
senamakel Oct 23, 2026
53c039f
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
013d789
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
a85eff2
docs(plans): record windows redaction and runtime secret scope progress
senamakel Oct 23, 2026
d8d2e3f
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
7da01cf
chore(vendor): update tinysecurity subproject commit
senamakel Oct 23, 2026
596d552
chore(vendor): update tinysecurity subproject commit
senamakel Oct 23, 2026
db639f9
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
8695f1b
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
9a6ad2f
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
b443786
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
a0a2e88
docs(plans): record TinySecurity secret-scope lifecycle review
senamakel Oct 23, 2026
aea6d6a
docs(plans): update CI status for security remaining plan
senamakel Oct 23, 2026
07475a1
chore(vendor): update tinysecurity subproject commit
senamakel Oct 23, 2026
1453db9
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
9012c3d
docs(release-policy): fix CWE-250 link
senamakel Oct 23, 2026
26cf33f
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
8daed16
chore(vendor): update tinysecurity subproject commit
senamakel Oct 23, 2026
83686c0
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
94f0bf8
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
f993436
docs(security): record tinyskills scan policy contract
senamakel Oct 23, 2026
39b3d69
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
268366a
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
463aa54
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
02d80a5
test(skills): add skill scan test module
senamakel Oct 23, 2026
75ecb89
feat(skills): gate skill scan module behind skills feature
senamakel Oct 23, 2026
1c19237
refactor(skills): pair workflows with their discovered bundles
senamakel Oct 23, 2026
b88ee98
style(skills): reorder imports and wrap long test calls
senamakel Oct 23, 2026
80d5106
feat(skills): scan workflow bundles before starting a run
senamakel Oct 23, 2026
542d0a4
feat(security): scan workflow targets before admitting run_workflow
senamakel Oct 23, 2026
3262916
fix(tinysecurity): detect run_workflow calls by tool name
senamakel Oct 23, 2026
3459fa6
docs(plans): update security rollout status with runtime adapter prog…
senamakel Oct 23, 2026
aa92cdb
test(tinyagents): cover single-use workflow scan permits
senamakel Oct 23, 2026
fc09d7c
feat(agent): add single-use workflow scan permits to run context
senamakel Oct 23, 2026
a3894dd
feat(tinyagents): share workflow scan permits with host operation con…
senamakel Oct 23, 2026
935985c
feat(skills): bind workflow scan permits to run invocations
senamakel Oct 23, 2026
f9940ca
refactor(skills): use re-exported workflow scan permit helper
senamakel Oct 23, 2026
e64573e
fix(skills): bind workflow scan permits to the scanned digest
senamakel Oct 23, 2026
221a3b5
style: format workflow run call sites
senamakel Oct 23, 2026
de3f147
feat(tools): run host-dispatched tool calls with turn origin
senamakel Oct 23, 2026
9b4706e
refactor(skills): route skills_run through the shared tool executor
senamakel Oct 23, 2026
e6a4956
refactor(skills): route runtime run through tool execution
senamakel Oct 23, 2026
75aff0a
test(tools): cover turn origin propagation through the gate
senamakel Oct 23, 2026
01f93b1
test(tools): reformat native ops test assertions
senamakel Oct 23, 2026
bb6f750
fix(skills): re-scan workflow bundle before agent exposure
senamakel Oct 23, 2026
f7eae11
fix(tinyagents): match workflow scan permits by call id
senamakel Oct 23, 2026
2be7c48
test(tinyagents): cover call id in workflow scan permit tests
senamakel Oct 23, 2026
0d696a0
fix(tinyagents): scope workflow scan permits by tool call id
senamakel Oct 23, 2026
83eabda
fix(tinysecurity): pass call id to skill scan check
senamakel Oct 23, 2026
d4b2d67
refactor(tinyagents): collapse multi-line expressions to single lines
senamakel Oct 23, 2026
e22bf86
docs(skills): clarify run_workflow tool dispatch path
senamakel Oct 23, 2026
ad35630
docs(plans): update security remaining plan progress
senamakel Oct 23, 2026
78407fa
refactor(tinysecurity): extract workflow skill scan into helper
senamakel Oct 23, 2026
8b9eea7
fix(tinysecurity): gate SkillScanVerdict import behind skills feature
senamakel Oct 23, 2026
cebcc00
chore(tinysecurity): reorder imports in tinysecurity module
senamakel Oct 23, 2026
bddc488
fix(tinysecurity): gate mutable checks binding behind skills feature
senamakel Oct 23, 2026
cd3ad90
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
d946f46
chore(tinyagents): gate workflow scan permit re-export behind skills …
senamakel Oct 23, 2026
60ea483
chore(vendor): bump tiny* submodule pointers
senamakel Oct 23, 2026
fe7d851
refactor(tinyagents): extract workflow scan permit type alias
senamakel Oct 23, 2026
5bda3fc
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
daba61d
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
3db4466
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
40fddc1
test(tinyagents): update permit lookup path in run context tests
senamakel Oct 23, 2026
0249b97
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
b75d426
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
c8da47f
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
7cc9e2f
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
d811da8
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
f13eb1a
test(security): cover native fixture module release on drop
senamakel Oct 23, 2026
510bb51
test(security): shut down native fixture host on drop
senamakel Oct 23, 2026
9e16dfa
test(security): simplify native fixture destructuring
senamakel Oct 23, 2026
768b6d3
test(security): add explicit shutdown helper to native fixture
senamakel Oct 23, 2026
fc8b27d
test(security): make native fixture host non-optional
senamakel Oct 23, 2026
dceacf4
test(security): fix native fixture teardown ordering
senamakel Oct 23, 2026
5634260
test(security): use dedicated runtime for native fixture cleanup
senamakel Oct 23, 2026
1acb367
Merge branch 'main' into epic-7328-continue
senamakel Oct 23, 2026
6adaf9a
test(security): assert native module has recipient attestation
senamakel Oct 23, 2026
8986ad2
chore(vendor): bump tinystoragedrivers submodule
senamakel Oct 23, 2026
d6eef7c
chore(vendor): bump tinymemory submodule
senamakel Oct 23, 2026
d85e319
chore(vendor): bump tinyflows submodule
senamakel Oct 23, 2026
f8e814e
chore(vendor): update tinyhosts subproject commit
senamakel Oct 23, 2026
0a95124
chore(vendor): update vendored dependencies
senamakel Oct 23, 2026
9438bbc
chore(vendor): bump tinywallet submodule
senamakel Oct 23, 2026
e76e6e7
test(security): run native fixture cleanup on the current runtime
senamakel Oct 23, 2026
274d8c6
test(security): remove redundant attestation wait from native fixture
senamakel Oct 23, 2026
0bb44fa
test(security): fix native fixture teardown ordering
senamakel Oct 23, 2026
191dadd
refactor(security): extract attestation validation into a helper
senamakel Oct 23, 2026
5e36fb2
fix(security): include underlying error in path policy failure
senamakel Oct 23, 2026
3e587ea
test(security): improve panic message on path policy registration fai…
senamakel Oct 23, 2026
df408e9
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
4dd4140
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
1a53cd3
test(security): assert module stays ready after malformed policy
senamakel Oct 23, 2026
52eb8fc
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
8e44c36
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
f95886f
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
c4be4b1
Merge remote-tracking branch 'upstream/main' into epic-7328-continue
senamakel Oct 23, 2026
9b61d1f
chore(vendor): bump tinyagents submodule
senamakel Oct 23, 2026
2e26973
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
35ced8a
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
438b5d1
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
895cffb
test(security): assert native module has recipient attestation
senamakel Oct 23, 2026
adaee44
chore(vendor): bump tinysecurity submodule
senamakel Oct 23, 2026
0428d86
chore(vendor): bump tinyagents submodule
senamakel Oct 23, 2026
e702591
Merge remote-tracking branch 'upstream/main' into epic-7328-continue
senamakel Oct 23, 2026
fea8e4f
fix(sandbox): mark unused shell exec params
senamakel Oct 23, 2026
dce75be
test(tinyagents): move workflow scan permit tests to their own module
senamakel Oct 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .github/workflows/ci-full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,9 @@ jobs:
touch .env
touch app/.env

- name: Exercise attested native security adapter and latency budget
shell: bash
run: bash scripts/ci/security-native-fixture.sh
- name: Install checksum-pinned native test modules
run: |
# Keep fixtures in a trusted tree and resolve their verified releases
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/pr-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ jobs:
id: link-check
continue-on-error: true
uses: lycheeverse/lychee-action@v2
env:
# Use authenticated API checks instead of anonymous GitHub page requests.
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
output: target/link-check/report.md
# Product Hunt denies GitHub-hosted runners (403) for the translated
Expand Down
47 changes: 47 additions & 0 deletions .github/workflows/security-browser-egress.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Security Browser Egress (Epic)

on:
pull_request:
branches: [epic/7328-security-bus]
paths:
- .github/workflows/security-browser-egress.yml
- .gitmodules
- vendor/tinysecurity
- vendor/tinycomputer
- crates/openhuman-core/src/modules/browser_egress_host.rs
- crates/openhuman-core/src/modules/browser_egress_host_tests.rs
- crates/openhuman-core/src/modules/security_egress.rs
- scripts/ci/security-browser-egress-fixture.sh
- Cargo.lock

permissions:
contents: read

concurrency:
group: security-browser-egress-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
native-callback-fixture:
name: TinySecurity browser callbacks (Linux)
runs-on: ubuntu-24.04
timeout-minutes: 60
env:
CARGO_BUILD_JOBS: "2"
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false
submodules: recursive
- name: Install native dependencies
run: sudo apt-get update && sudo apt-get install -y libasound2-dev pkg-config
- uses: dtolnay/rust-toolchain@1.99.1
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
. -> target
vendor/tinysecurity -> vendor/tinysecurity/target
key: security-browser-egress-${{ runner.os }}
- name: Exercise authenticated host callbacks against TinySecurity
shell: bash
run: bash scripts/ci/security-browser-egress-fixture.sh
96 changes: 96 additions & 0 deletions .github/workflows/security-native.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Released-artifact integration checks: the fixture loads the published
# archive through the compiled registry digest (see security-native-fixture.sh).
name: Security Native

on:
pull_request:
branches: [main, release]
paths:
- .github/workflows/security-native.yml
- .gitmodules
- vendor/tinysecurity
- crates/openhuman-core/src/modules/security*.rs
- crates/openhuman-core/src/modules/registry/records_security.rs
- crates/openhuman-core/src/security/policy/**
- scripts/ci/security-native-fixture.sh
- Cargo.lock
workflow_dispatch: {}

permissions:
actions: read
contents: read

concurrency:
group: security-native-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
native:
name: Native policy (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, macos-15, windows-2025]
runs-on: ${{ matrix.os }}
timeout-minutes: 60
env:
CARGO_BUILD_JOBS: "2"
GH_TOKEN: ${{ github.token }}
steps:
# The TinyFlows fixture tree contains paths beyond MAX_PATH. Configure
# Git before checkout so recursive submodule checkout can create them.
- name: Enable long Git paths
if: runner.os == 'Windows'
run: git config --global core.longpaths true
- uses: actions/checkout@v7
with:
persist-credentials: false
submodules: recursive
- name: Install Linux inference prerequisites
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y libasound2-dev pkg-config
- uses: Swatinem/rust-cache@v2
with:
workspaces: . -> target
key: security-native-${{ runner.os }}
- name: Exercise attested adapter and latency budget
shell: bash
run: bash scripts/ci/security-native-fixture.sh

latency-budget:
name: Release latency budget
runs-on: ubuntu-24.04
timeout-minutes: 90
env:
CARGO_BUILD_JOBS: "2"
GH_TOKEN: ${{ github.token }}
OPENHUMAN_SECURITY_PERF_BUDGET: "1"
OPENHUMAN_SECURITY_PERF_OUT: ${{ github.workspace }}/target/security-perf.json
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false
submodules: recursive
- name: Install Linux inference prerequisites
run: sudo apt-get update && sudo apt-get install -y libasound2-dev pkg-config
- uses: Swatinem/rust-cache@v2
with:
workspaces: . -> target
key: security-native-latency-${{ runner.os }}
- name: Fail when native p50/p99 exceed the committed budget
shell: bash
run: bash scripts/ci/security-native-fixture.sh
- name: Record measured latency and calls per turn
if: always()
shell: bash
run: |
if [ -f "$OPENHUMAN_SECURITY_PERF_OUT" ]; then
cat "$OPENHUMAN_SECURITY_PERF_OUT"
{ echo '### Native security latency'; echo '```json'; cat "$OPENHUMAN_SECURITY_PERF_OUT"; echo; echo '```'; } >> "$GITHUB_STEP_SUMMARY"
fi
- uses: actions/upload-artifact@v4
if: always()
with:
name: security-perf
path: target/security-perf.json
if-no-files-found: ignore
38 changes: 38 additions & 0 deletions .github/workflows/test-reusable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,44 @@ jobs:
hosting::test::released_artifact_serves_providers_and_confidential_local_preparation \
-- --exact --ignored --test-threads=1

security-characterization:
if: inputs.run_rust_core
name: Security characterization (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, macos-15, windows-2025]
runs-on: ${{ matrix.os }}
timeout-minutes: 60
env:
CARGO_BUILD_JOBS: "2"
CARGO_PROFILE_DEV_DEBUG: line-tables-only
steps:
- uses: actions/checkout@v7
with:
ref: ${{ inputs.ref }}
persist-credentials: false
submodules: recursive
- name: Install Linux inference test prerequisites
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y libasound2-dev pkg-config
- uses: Swatinem/rust-cache@v2
with:
workspaces: . -> target
key: security-characterization-${{ runner.os }}
- name: Pin current security wire and redaction behavior
shell: bash
run: bash scripts/ci-cancel-aware.sh cargo test -p openhuman-cli --no-default-features --test security_characterization_e2e
- name: Exercise private redactors with the shared corpus
shell: bash
run: bash scripts/ci-cancel-aware.sh cargo test -p openhuman --no-default-features --features inference,web3,modules shared_security -- --nocapture
- name: Exercise attested native security adapter and latency budget
shell: bash
run: bash scripts/ci/security-native-fixture.sh
- name: Record existing in-process latency baseline
shell: bash
run: bash scripts/ci-cancel-aware.sh cargo test -p openhuman-cli --no-default-features --test security_characterization_e2e in_process_policy_latency_baseline -- --nocapture

rust-core-tests-windows:
if: inputs.run_rust_core
name: Rust Core Tests (Windows — secrets ACL)
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@
[submodule "vendor/tinymemes"]
path = vendor/tinymemes
url = https://github.com/tinyhumansai/tinymemes.git
[submodule "vendor/tinysecurity"]
path = vendor/tinysecurity
url = https://github.com/tinyhumansai/tinysecurity
[submodule "vendor/tinystoragedrivers"]
path = vendor/tinystoragedrivers
url = https://github.com/tinyhumansai/tinystoragedrivers.git
Expand Down
24 changes: 24 additions & 0 deletions .sdd-approval-task.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Owner Task7 — durable approvals and exact scoped grants
Dispatch after controller marks Task6 full review+gates clean. Own vendor/tinysecurity existing security-complete-7328 ONLY, ONE cumulative PR5. Record actual BASE before edits. Read ownerAGENTS, owner security-module spec approvals, HOST .sdd-approval-audit-acceptance.md and Task6 final public V2 contracts/nativefixture. Do not read wholeplan. Not alone preserve checkpoints/others; no nestedworktree/push/newPR/release/rootpins/reset/amend/squash. Controller finalreview/release follows allremainingengines.

New internal tinysecurity-approval crate focused state/store/grants/reply, siblingtests; bus approval.rs promote real implemented contracts keeping reserved strictpayload compatibility via explicit additive V2 shapes/interfaces where required; module actual dispatch/manifest/init/approvalintercept/nativefixture; workspace/internalumbrella/CI. Host normaldeps only tinysecurity-bus, bus serde+thiserror no I/O/runtime/transport/crypto/TinyTools. No hostengine or parkingfuture copiedinto owner. Mutable approvals not cacheable.

Reuse completed Task6 typed exact scoped CAS/load receipt validators plus redactor/audit/trustedpeer gate; implement the bounded authenticated ApprovalStoreClient load/CAS transport now (Task6 module currently has AuditClient only, no implemented store client). Persist pending durably BEFORE RequireApproval; every transition records exact scope/policygeneration/fingerprint/origin and returns only after confirmedCAS/audit phase. Failed callback/timeout/malformed/wrongpeer/wrongreceipt unavailable denies beforeexecution. Timeout indeterminate, retry SAME mutationidentity/reconcile persistedstate, no false rollback/repeatedwrite. No locks across callback await, reentrant Decide and concurrent waits must progress.

Full subject is verified user/workspace/agent ceiling from trusted host init + peer/contextadapter, not invocationJSON human/tenant/tier. Unique brokerconnection != authenticated human. Decide requires explicit trustedhost-authenticated human authority bound to exactowner/pendingrow/currentpolicy/origin. ModelParseReply parses intent ONLY never grants; none/unknown/unverifiedauthority deny. Legacy omitted agent_id processRPC projection remains hostcompatibility at authenticated boundary, never crossagentprivileges insideengine. Changed/disconnected peers cannot replace trustedidentity using wellknownname.

Record stable random requestid, exact ORIGINAL canonical callfingerprint (not redacted equivalent), immutable subject/policyid+generation, tool/class/argsfingerprint/origin/thread/flow/agent, created/expiry ms, lifecycle+attribution+terminaloutcome. Redacted args/summary/source correlation persisted/logged; no original secrets Debug/errors/events. Safe oldrecordimport: preserve history but never revive legacybroad grants lacking exact bindings. Do not advertise fullycomposedPolicyId until Task2; use strict currentimmutable scopes and later mechanicalcomposition hook, never pretend partialscope complete.

State pending→humanapproved/denied/expired/cancelled→execution terminal only for exactapproved action. CAS firstwinner, repeatedidenticaldecide receipt idempotent, conflictingdecision reject, terminalfirstwinner, cannot execute denied/expired/pending or alteredfingerprint. Restart reload durablerows/grants but orphan rows never execute in new hostsession automatically. TTL600default,180copilot/subagent calleronlyshortens; exactboundary denies; injectedclock rollbackfailclosed. Durable scope captured before cancellation to prevent ambienttenantmixing.

Allowonce singleexecutionreservation/consume; alwaysfortool persistent EXACTreviewedtool/class/fingerprint/scope/origin/currentpolicy ceiling; flowgrants exactreviewedfingerprints+flow and policygeneration. No wildcard argument escalation. Bounded preauthorizeflow validation legacy max100tools (typedfingerprints new), duplicategrant idempotent. Policygenerationchanges invalidate affectedgrants, no selfwideningactivation/humanreviewstub. Later Task2 generationactivation consumes actual approvalunderOLDpolicy.

Origin Cron readonly only externaldeny BEFORE ANYshortcut, including auto-all; SaaS uses real authenticatedper-userpromptcallback/no unconditionalbypass, missingprompt denies. Off-default judge nextTask8, do not add fakeRequireApproval without realpendingstore/prompt. Host owns parked futures/cancellation/ApprovalRequested+Decided eventrouting; owner stateTTLlog. Preserve legacy request/source/tool_call_id/agent_id optionalomissions; no publicsession_id; terminallegacy success/failure/aborted explicittranslation to new succeeded/failed/cancelled, not silent serdechange.

TDD actualbehavior RED→GREEN beforefix with logs: pending→decide→executed/rejectedwrongfingerprint, expiry600/180exactboundaries+clockrollback, restart/noorphanexecution, CAS concurrenthuman decisions/idempotence/conflictingreplay/terminalfirstwinner, wrongtenant/agent/origin/policygen grantsdeny, argumentschangeddeny, callbackfailure/malformedreceipt/scope, parsingnotauthority, Cronautoallowcannotbypass, SaaSmissingperuserpromptdeny, reentrantcallback no deadlock, nativecancel/expired eventsprojection. Real loadedcdylib hostcallbacks restart-surviving approvalroundtrip exactpersist/audit receipts; malicioussecondpeer and no-provenance oldhost denies. No thirdpartynet/timingflakes/operatorcredentials.

Sibling *_tests.rs start use super::*; declaration cfg/path; noinline/legacyfilename. Nativefixtureexplicit pipeline no silentlyignoredacceptance. Docs accurate implementedavailability. Selfreview stableatomiccheckpoint then FULL actualBASE..HEAD diff FILE HOST .sdd-evidence/task7-full.diff early for independentSPEC+QUALITY; subsequentfixrefresh entireoriginalrange. ALLfreshfmt/+1.99strictclippy/default+allworkspace/alltargetbuild/+1.88check/-Dwarningdocs/deny/actualperfile90/nativeLinuxworkspace+alternatecwd and realnative3OSCIwiring. Longcommands HOSTscripts/ci-cancel-aware.sh no CARGO_TARGET_DIR/tmpbuildoutput; evidence HOST/OWNER .sdd-evidence nottarget. Exact BASE/HEAD/commands/exits/REDGREENlimitations. RemainingTask8/9/10/2/wholeownerreview+release/hostmigration NOTcompletionclaimed.

Read HOST .sdd-evidence/full-policy-composition-preflight.md exact Task7-specific caveats: existing audited-permission digest hashes [request,decision] and arguments_json is a string, not stable canonical original-call identity. Add separate call-only domain, parse/sort bounded actual argument JSON, preserve significant array/header/shell ordering; include exact verified scope/policygen/origin/thread/flow/execution instance. Do not reuse old digest unchanged or globally dedup identical text. Single-row CAS does not make approval consume plus later policy activation a multi-store transaction; define reconciliation hooks for Task2 exact old-policy activation, no fake atomic promise.

Additional required read: HOST .sdd-evidence/task7-approval-interface-preflight.md exact current callback fingerprint validator requires32hex whereas existing audit digest64hex +decision. Use an explicitly versioned full-digest row or preserve32hex correlation with full cryptographic callbinding inside validated typed row; never silently truncate authority fingerprint. Human authority requires exact host-authenticated decision verification/ticket consumption bound to pendingrequest/scope/gen/origin, not uniquepeer or invocationJSON human field. Store CAS retries must recover original durable mutation receipt even after later row versions, not treat timeout asrollback. Real native persistent-store restart fixture required, current MemoryBus rows alone insufficient.
5 changes: 5 additions & 0 deletions .sdd-audit-manifest-fix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Task6 fresh review batch: native manifest completeness
Work only /home/enamakel/work/openhuman/worktrees/security-bus-7328/vendor/tinysecurity on existing security-complete-7328. Role tdd-implementer. One cumulative PR5; no new PR/push/release/gitlink changes. You are not alone; preserve all others/checkpoints. No reset/amend/squash. Source ownership begins only after root confirms prior writer release. Record BASE actual HEAD; full Task6 ORIGINAL BASE87d909f6eaaa5500838efc3afc0470052baaff46.
Read owner AGENTS, HOST .sdd-evidence/task6-review-99f78737.md Important1 and .sdd-approval-audit-acceptance.md binding manifest requirement. Fix complete ONE review batch: exported module manifest omits implemented EvaluateAudited2 and CheckAudited2 although dispatch/names/PolicyInfo advertise them; optional inventory omits implemented AuditSink2 dependency. Advertise only implemented callback forwarding, not unfinished approval/store/prompt capabilities. Verify exact contract name/version/min-version against actual SDK metadata and existing implemented callbacks/forwarding interface.
Write genuine regression first: inspect actual loaded native artifact manifest and assert served method inventory agrees with real audited permission APIs and actual optional callback dependency. Confirm fails against unchanged source before minimal manifest-only behavior fix; no test just mirrors a hand-copied manifest list without testing loaded artifact. Existing actual loaded cdylib fixture should be used. Preserve immutable artifact hashes/actual runtime bind checks. Native Linux loaded fixture BOTH working directories via HOST scripts/ci-cancel-aware.sh; no temp build output/CARGO_TARGET_DIR. Sibling *_tests.rs no inline tests. All logs/evidence .sdd-evidence not target.
Do not touch current foreign account helper/Windows ACL/other audit source except regression placement needed. Current c494 encoding fix nativeCI pending; root will HOLD later pushes until exactc494 evidence captured. Root handles PR. Finish fresh fmt/strict clippy/relevant native tests/docs/deny/MSRV1.88 and provide direct exit evidence; do not infer gate from shell chained last exit. Provide exact BASE..HEAD narrow diff FILE .sdd-evidence/task6-manifest-fix.diff and refresh full ORIGINAL87..final FILE task6-full.diff; self-review, clean exact checkpoint, no pending commands, SOURCEOWNERSHIP RELEASE. Independent SPEC+QUALITY reviewer follows and genuine native3OS on combined final branch before Task6DONE. Remaining approvals/judge/sandbox/crypto/fullpolicy/host migration still required.
Loading
Loading