Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
885 commits
Select commit Hold shift + click to select a range
42d78fb
test(tinybus-module): add static link tests
senamakel Oct 20, 2026
fd4da4a
Merge pull request #11 from senamakel/epic/8056-sdk-trusted-host
senamakel Oct 20, 2026
8ff3b35
chore(release): bump version to 0.3.6
senamakel Oct 20, 2026
dafdfa1
Merge pull request #12 from senamakel/epic-8056-tinybus-v0.3.6-release
senamakel Oct 20, 2026
3a46697
feat(examples): add configuration and trusted context support to modu…
senamakel Oct 20, 2026
5df22bc
test(host): add test for context binding preservation through reiniti…
senamakel Oct 20, 2026
bdc9cda
feat(tinybus-module): add reconfigurable module start functions with …
senamakel Oct 20, 2026
54bef50
chore: files changed crates/tinybus-module/src/lib.rs,crates/tinybus-…
senamakel Oct 20, 2026
4b9e06c
chore: files changed crates/tinybus/examples/module_context.rs,crates…
senamakel Oct 20, 2026
5565248
feat(tinybus): add configured context example and support
senamakel Oct 20, 2026
84510c6
chore: files changed scripts/test-e2e.ps1
senamakel Oct 20, 2026
2ab8754
feat(tinybus-module): add optional static module setup
senamakel Oct 20, 2026
787672c
test(static_link): add configured context manifest assertions
senamakel Oct 20, 2026
37ee085
docs(tinybus-module): update setup callback documentation
senamakel Oct 20, 2026
7974506
chore: files changed CHANGELOG.md,Cargo.lock,Cargo.toml,examples/Carg…
senamakel Oct 20, 2026
255893d
test(coverage): add module_context_configured to coverage script fixt…
senamakel Oct 20, 2026
707eadf
chore: files changed scripts/check-coverage.sh
senamakel Oct 20, 2026
2dc32b8
Merge pull request #13 from senamakel/epic-8056-tinybus-configured-co…
senamakel Oct 20, 2026
186c16c
fix(deps): update version to 0.3.8 and ensure rust compatibility
senamakel Oct 20, 2026
834bf63
chore(examples): update cargo lock file dependencies
senamakel Oct 20, 2026
954ffec
refactor(tinybus): improve error handling and logic flow
senamakel Oct 20, 2026
21e1f97
ci: add host core and client testing job
senamakel Oct 20, 2026
125f11f
chore: files changed proof-workspaces/msrv-185-client/target/CACHEDIR…
senamakel Oct 20, 2026
21ba5a2
chore(proof-workspaces): ignore msrv-185-client build artifacts
senamakel Oct 20, 2026
cfc9e66
refactor(module): improve control flow and error handling
senamakel Oct 20, 2026
a782040
ci(ci): add check for all host core features
senamakel Oct 20, 2026
af6385e
chore(.gitignore): add ignore pattern for proof-workspaces target
senamakel Oct 20, 2026
b846120
chore: remove proof build artifacts
senamakel Oct 20, 2026
ebdab87
chore: ignore proof target artifacts
senamakel Oct 20, 2026
83bf483
chore(assets): update module assets for macos-26-arm64
senamakel Oct 20, 2026
bdb7baa
chore(build): clean up temporary build artifacts
senamakel Oct 20, 2026
348aabc
chore(build): update gitignore to ignore temporary build artifacts
senamakel Oct 20, 2026
4b38230
chore(deps): update readme paths in cargo toml files
senamakel Oct 20, 2026
9546adb
docs(readme): update rust version requirements
senamakel Oct 20, 2026
5e3c882
Merge pull request #14 from senamakel/epic-8056-tinybus-msrv-compat
senamakel Oct 20, 2026
d2123f3
feat(tests): add context factory tests
senamakel Oct 20, 2026
267a98e
refactor(tinybus-module): add context factory functions
senamakel Oct 20, 2026
fa27941
test(tinybus-module): add tests for invalid configurations
senamakel Oct 20, 2026
bba5d89
test(tinybus-module): improve invalid configuration test assertion
senamakel Oct 20, 2026
8732ed6
refactor(tinybus-module): expose factories in tests
senamakel Oct 20, 2026
0fe62f9
test(tinybus-module): update context factory path in tests
senamakel Oct 20, 2026
f5c631b
feat(tinybus): add module context factory example and tests
senamakel Oct 20, 2026
55346dd
chore: files changed crates/tinybus/src/module/host_tests.rs,scripts/…
senamakel Oct 20, 2026
8a72b44
chore(scripts): update coverage check list
senamakel Oct 20, 2026
0d698c7
test(coverage): add module_context_factory to coverage tests
senamakel Oct 20, 2026
61c2d28
feat(tinybus): add setup_factory_with_context exports
senamakel Oct 20, 2026
2671c77
chore(deps): update tinybus dependencies to latest versions
senamakel Oct 20, 2026
6699e79
chore(examples): update dependency versions
senamakel Oct 20, 2026
a9562f9
chore(deps): update tinybus and tinybus-macros versions
senamakel Oct 20, 2026
c6812b8
test(tinybus-module): add lock guards to tests
senamakel Oct 20, 2026
d8fe06f
docs(tinybus-module): add documentation to module exports
senamakel Oct 20, 2026
c2f38ca
refactor(tinybus-module): remove unsafe from module initialization fu…
senamakel Oct 20, 2026
b6f4d3d
test(lib_tests): add tests for static link context factory
senamakel Oct 20, 2026
cee3dd1
refactor(tests): update context factory export mechanism
senamakel Oct 20, 2026
f4592d7
test(tinybus-module): add test case for reinitialize call
senamakel Oct 20, 2026
5c57891
refactor(tests): remove stateful factory test case
senamakel Oct 20, 2026
819d9ea
test(tinybus-module): add authorization unserving in setup
senamakel Oct 20, 2026
9f2fd68
test(tinybus-module): add reinitialize call assertion in tests
senamakel Oct 20, 2026
121e2e8
test(lib): enhance context factory setup logic
senamakel Oct 20, 2026
ada9c18
test(tinybus-module): add logging for reinitialization result
senamakel Oct 20, 2026
578f038
test(tinybus-module): add logging to context factory setup
senamakel Oct 20, 2026
a5ce571
test(lib): clean up unused test assertions
senamakel Oct 20, 2026
d25db18
refactor(tests): simplify context factory setup logic
senamakel Oct 20, 2026
81fdc50
refactor(tests): adjust module export macros for static linking
senamakel Oct 20, 2026
35d4d14
refactor(tests): remove dynamic context export tests
senamakel Oct 20, 2026
e2c7c47
test(tinybus-module): add static link tests
senamakel Oct 20, 2026
af717bf
test(tinybus-module): add static link feature imports
senamakel Oct 20, 2026
feeb7ca
test(lib): add tests for static link context setup entry
senamakel Oct 20, 2026
11606e8
test(tinybus-module): update shutdown assertion in tests
senamakel Oct 20, 2026
3cec289
refactor(tinybus-module): add safety documentation to module initiali…
senamakel Oct 20, 2026
42e8835
chore: update gitignore and remove cache file
senamakel Oct 20, 2026
06502d3
docs(tinybus-module): update documentation on slice and initializatio…
senamakel Oct 20, 2026
3792a1d
Merge pull request #17 from senamakel/feat/8056-setup-context-factory…
senamakel Oct 20, 2026
b76b03d
chore(deps): bump workspace version
senamakel Oct 20, 2026
34b498b
chore(client): update tinybus dependency version
senamakel Oct 20, 2026
d5f2f31
docs: update changelog
senamakel Oct 20, 2026
1afd7db
chore(deps): update tinybus dependencies to latest versions
senamakel Oct 20, 2026
49af9cb
chore(deps): update rustls-webpki version
senamakel Oct 20, 2026
9dc6a16
chore(deps): update webpki-roots version
senamakel Oct 20, 2026
401d2dc
chore(deps): update tinybus dependencies
senamakel Oct 20, 2026
6b3c5b0
Merge pull request #18 from senamakel/fix/tinybus-0310-tls-lock
senamakel Oct 20, 2026
e732e3f
test(host): add runtime integration tests
senamakel Oct 20, 2026
c7524bf
test(host): update module loading in host tests
senamakel Oct 20, 2026
07c6067
chore(deps): bump tinybus to 0.3.11
senamakel Oct 20, 2026
f1b8a4c
chore(examples): update dependency versions
senamakel Oct 20, 2026
9e14f65
Merge pull request #21 from senamakel/fix/tinybus-0311-runtime-contro…
senamakel Oct 20, 2026
4b9733b
feat(host): add pre-ready confidential routes configuration
senamakel Oct 21, 2026
038210b
feat(module): add pre-ready confidential routes to module host
senamakel Oct 21, 2026
03425b4
test(transport): add empty arc to transport tests
senamakel Oct 21, 2026
04575bd
feat(tinybus): add pre-ready routes to module transport initialization
senamakel Oct 21, 2026
f201183
test(host): add pre-ready route policy test
senamakel Oct 21, 2026
24a7800
refactor(host): improve module host logic and add pre-ready route tes…
senamakel Oct 21, 2026
884b45f
refactor(tests): remove pre-ready route fixture tests
senamakel Oct 21, 2026
f39ba8c
test(tinybus): increase timeout for eventual call in confidential rou…
senamakel Oct 21, 2026
bf6af7c
test(tinybus): add timeout assertion for confidential route setup
senamakel Oct 21, 2026
29292a0
test(tinybus): add test for post-ready confidential route call
senamakel Oct 21, 2026
2e5d81e
test(tests): update confidential route fixture usage
senamakel Oct 21, 2026
87b371c
test(tests): update confidential route paths
senamakel Oct 21, 2026
0447f62
test(transport): add test for pre-ready confidential route delivery
senamakel Oct 21, 2026
422bb43
test(transport): add wait for pending messages in transport tests
senamakel Oct 21, 2026
5f6e61f
test(transport): add attestation to transport tests
senamakel Oct 21, 2026
555f893
feat(module): add sender_for_module lookup to host
senamakel Oct 21, 2026
b8d7f0b
refactor(module): improve module sender lookup logic
senamakel Oct 21, 2026
3bdc9b9
test(transport): add test case for stale controller handling
senamakel Oct 21, 2026
e431a98
test(host): add sender lookup assertions in host tests
senamakel Oct 21, 2026
c9d2b78
test(host): use tokio for host tests
senamakel Oct 21, 2026
5fa61b1
test(host): update host test function signature
senamakel Oct 21, 2026
a5569fe
refactor(transport): simplify trusted host binding check
senamakel Oct 21, 2026
2431151
fix(host): restrict sender lookup to ready states
senamakel Oct 21, 2026
0646a8f
fix(transport): prevent transport from running when broker routing is…
senamakel Oct 21, 2026
6a1fbd1
chore(deps): update tinybus dependencies to 0.3.12
senamakel Oct 21, 2026
dd3e98f
chore(examples): update cargo lock file dependencies
senamakel Oct 21, 2026
4c712a1
chore(deps): update tinybus and tinybus-macros versions
senamakel Oct 21, 2026
9411c46
docs: update changelog
senamakel Oct 21, 2026
5eb1373
test(tests): add warmup module setup to sender lookup test
senamakel Oct 21, 2026
34d3bd6
Merge pull request #22 from senamakel/epic-8056-initialization-host-c…
senamakel Oct 21, 2026
42919b9
test(module): cover host stream callbacks bound to module peer
senamakel Oct 24, 2026
942f0db
feat(tinybus): support host stream callbacks
senamakel Oct 24, 2026
4bdd380
chore(deps): update tokio to 1.53.3 and pin windows-sys to 0.52.0
senamakel Oct 24, 2026
8534511
Merge pull request #28 from senamakel/epic-8369-storage-stream-callbacks
senamakel Oct 24, 2026
65ae3bb
test(resolve): cover foreign host callback binding rejection
senamakel Oct 26, 2026
0f4f45e
feat(module): retain host callback binding with admitted module
senamakel Oct 26, 2026
771f25a
feat(module): verify artifact identity before loading with callbacks
senamakel Oct 26, 2026
4bcf0b7
fix(module): allow reload when host retains callback binding
senamakel Oct 26, 2026
1ad6eb6
test(resolve): cover callback resolution against an in-flight generic…
senamakel Oct 26, 2026
12e3ccc
test(module): cover callback resolution against a preloaded module
senamakel Oct 26, 2026
01a6364
fix(module): scope host callback binding validation to the owning peer
senamakel Oct 26, 2026
a8e76d9
test(module): cover retained host callback binding for admitted module
senamakel Oct 26, 2026
010de12
test(tinybus): reformat resolver test assertions
senamakel Oct 26, 2026
ea0b4bd
test(module): resolve temp dir symlinks in host callback test
senamakel Oct 26, 2026
ad58cb6
feat(module): add per-attempt host callback factory for pinned loads
senamakel Oct 26, 2026
73de3b3
feat(module): support per-attempt host callback bindings
senamakel Oct 26, 2026
b206d42
feat(module): support per-attempt host callback bindings
senamakel Oct 26, 2026
edd7640
fix(module): retain binding after blocking load
senamakel Oct 26, 2026
f6e5fa3
feat(module): add cached release and bundled marker loaders with host…
senamakel Oct 26, 2026
625b0d9
fix(module): honour release library pin when loading scoped callbacks
senamakel Oct 26, 2026
df73459
feat(tinybus): add host callback binding to first admitted load
senamakel Oct 26, 2026
c49d8dc
fix(module): reject cached loads that skip requested callbacks
senamakel Oct 26, 2026
6894cc8
refactor(module): drop redundant host callback source check
senamakel Oct 26, 2026
44e65a8
style(tinybus): reformat module loading code with rustfmt
senamakel Oct 26, 2026
397a05e
refactor(tinybus): reformat host callback future bound
senamakel Oct 26, 2026
06de91b
fix(module): allow pinned artifacts without an allowlist entry
senamakel Oct 26, 2026
2696c8e
test(module): cover fresh host callback binding per rejected candidate
senamakel Oct 26, 2026
90ef8aa
fix(module): log callback candidate failures to stderr
senamakel Oct 26, 2026
215649e
test(module): rework callback test double to report its unique name
senamakel Oct 26, 2026
b221359
chore(tinybus): drop duplicate stderr log for failed callback candidate
senamakel Oct 26, 2026
9ba02e0
refactor(module): group expected bus name and object path into a tuple
senamakel Oct 26, 2026
e5afbcb
test(tinybus): capture prepare error in lazy resolver assertion
senamakel Oct 27, 2026
978f40f
fix(tinybus): clarify unavailable module error message
senamakel Oct 27, 2026
ce312f7
fix(module): include last error in unavailable module message
senamakel Oct 27, 2026
c89a921
test: enable uds feature in e2e and coverage scripts
senamakel Oct 27, 2026
f9371e0
test(tinybus): give strict-call resolver test its own runtime
senamakel Oct 27, 2026
943239d
test(tinybus): annotate leaked runtime with static lifetime
senamakel Oct 27, 2026
38e6026
fix(scripts): enable uds feature for compiled terminal e2e tests
senamakel Oct 27, 2026
daa95e4
test(tinybus): reflow runtime setup in strict-call test
senamakel Oct 27, 2026
0b3b520
fix(ci): enable uds feature when running compiled terminal coverage
senamakel Oct 27, 2026
fb032aa
test(coverage): add uds feature to expected cargo invocations
senamakel Oct 27, 2026
9872018
test(resolve): isolate module artifact in its own directory
senamakel Oct 27, 2026
9b34f73
test(module): write modules.toml into the module directory
senamakel Oct 27, 2026
6006cb3
test(module): use crate path for windows acl helper
senamakel Oct 27, 2026
4612f9f
test(module): cover callback release loader candidate handling
senamakel Oct 27, 2026
168e15a
test(module): reformat imports in first admitted tests
senamakel Oct 27, 2026
ebb2ec6
test(module): assert admission failures with descriptive expects
senamakel Oct 27, 2026
f9f4a0c
test(module): use unwrap_err and restore descriptive expect messages
senamakel Oct 27, 2026
b7a76c8
test(tinybus): assert corrupt installer archive is rejected
senamakel Oct 27, 2026
97f73f9
test(module): cover host callback endpoint and stream authorization
senamakel Oct 27, 2026
4133cb3
test(tinybus): fix expected transfer response shape
senamakel Oct 27, 2026
e18a4c1
test(module): skip host callback tests when fixture env var is unset
senamakel Oct 27, 2026
5361c1c
test(module): cover bundled callback loader digest marker rejection
senamakel Oct 27, 2026
f10228d
test(module): cover callback release loader edge cases
senamakel Oct 27, 2026
89e1084
style(tinybus): reformat first admitted tests
senamakel Oct 27, 2026
c3eaf7e
test(tinybus): assert loader failures with let-else
senamakel Oct 27, 2026
6e9a3cc
test(tinybus): assert loader failures via let-else
senamakel Oct 27, 2026
d17709c
test(tinybus): fix inverted result patterns in first admitted tests
senamakel Oct 27, 2026
4401b9e
feat(module): add async module config provider
senamakel Oct 27, 2026
07f2727
test(module): add async_module_config field to resolver test fixtures
senamakel Oct 27, 2026
0001afe
feat(module): export AsyncModuleConfigProvider
senamakel Oct 27, 2026
2e66bb8
test(resolve): cover async module config resolution
senamakel Oct 27, 2026
64b26ae
style(module): reflow imports and type alias formatting
senamakel Oct 27, 2026
b0de256
test(module): update resolver test fixtures for async module config
senamakel Oct 27, 2026
0c74979
feat(module): add runtime options for worker thread stack size
senamakel Oct 27, 2026
b37c54d
chore(module): apply rustfmt import ordering and assertion wrapping
senamakel Oct 27, 2026
16e9cea
test(tinybus-macros): cover non-method skipping and confidential wild…
senamakel Oct 27, 2026
5bb19a5
test(module): cover callback factory and empty bundle candidates
senamakel Oct 27, 2026
50f37b6
test(module): cover callback preparation for bundle candidates
senamakel Oct 27, 2026
f38b45f
test(tinybus): make callback attempt counter shared across async closure
senamakel Oct 27, 2026
7d70471
test(module): cover bundled cache resolution for eager callbacks
senamakel Oct 27, 2026
d5f5642
test(resolve): assert repeated resolution reuses the same binding
senamakel Oct 27, 2026
da5c556
test(module): cover failed local callback load releasing its binding
senamakel Oct 27, 2026
93e2f99
style: apply rustfmt formatting to resolver tests
senamakel Oct 27, 2026
35de3d6
test(module): cover resolver callback path
senamakel Oct 27, 2026
1d6bfc1
test(module): cover direct callback api reusing retained binding
senamakel Oct 27, 2026
b4912a6
test(module): cover callback preparation failure stopping candidate s…
senamakel Oct 27, 2026
4408e72
test(tinybus): assert callback failure paths with let-else
senamakel Oct 27, 2026
c933c97
test(module): simplify error assertions in first admitted tests
senamakel Oct 27, 2026
959d390
test(tinybus): fix inverted error assertions in first admitted tests
senamakel Oct 27, 2026
5938fa3
test(module): fix duplicated assertion in first admitted tests
senamakel Oct 27, 2026
29430c9
test(tinybus): simplify error assertions in first admitted tests
senamakel Oct 27, 2026
b24585b
test(module): tighten first-admitted loader assertions
senamakel Oct 27, 2026
87fba97
test(tinybus): simplify error assertions in first admitted tests
senamakel Oct 27, 2026
fbe41e0
test(module): simplify error binding in first admitted test
senamakel Oct 27, 2026
e7d47a9
test(tinybus): assert loader error via irrefutable let-else pattern
senamakel Oct 27, 2026
a69ef26
refactor(module): box callback preparation futures
senamakel Oct 27, 2026
8d07fed
refactor(tinybus): extract boxed callback preparer type alias
senamakel Oct 27, 2026
1c91737
refactor(tinybus): require Send on first-admitted callback futures
senamakel Oct 27, 2026
ab46844
refactor(module): split host callback factory setup into inner helper
senamakel Oct 27, 2026
acc6b74
test(module): cover local callback module admission with a single bin…
senamakel Oct 27, 2026
421a1e1
test(module): verify local file resolution against a hashed artifact
senamakel Oct 27, 2026
be114a2
test(tinybus): reformat resolver test helper
senamakel Oct 27, 2026
eb15516
test(tinybus): serialize callback fixture tests with a shared lock
senamakel Oct 27, 2026
d17904a
test(resolve): use dedicated runtime in callback binding tests
senamakel Oct 27, 2026
0533855
test(resolve): use shared runtime in foreign callback test
senamakel Oct 27, 2026
274537b
test(module): annotate leaked runtime type in resolver test
senamakel Oct 27, 2026
dff1fa0
refactor(module): borrow string slices when detecting duplicates
senamakel Oct 27, 2026
f3764f6
test(module): cover cached callback factory failures
senamakel Oct 27, 2026
cd08993
test(tinybus): assert callback refusal errors with expect
senamakel Oct 27, 2026
3a36728
test(resolve): assert callback refusal error details
senamakel Oct 27, 2026
9719ca1
test(module): cover callback rejection for linked sources
senamakel Oct 27, 2026
47a87b8
test(resolve): cover loading a registered linked module
senamakel Oct 27, 2026
93d3239
fix(tinybus): redact runtime startup details from callback errors
senamakel Oct 27, 2026
d7f3f8f
test(resolve): cover loading status, invocation reports, and retry me…
senamakel Oct 27, 2026
98ee368
test(resolve): cover terminal blocking loader runtime failure
senamakel Oct 27, 2026
3ccdb33
chore(module): reorder imports and reformat test assertions
senamakel Oct 27, 2026
75c2cd1
test(resolve): cover linked attach collision failure
senamakel Oct 27, 2026
588e109
test(module): add ignored test for loading a local module artifact
senamakel Oct 27, 2026
1d3118a
test(module): update load_local call to renamed Resolver type
senamakel Oct 27, 2026
ae85532
test(module): run attested module test on a multi-threaded runtime
senamakel Oct 27, 2026
0614e54
test(module): add diagnostic message to attested resolution assertion
senamakel Oct 27, 2026
9961b0c
test(tinybus): reformat assertion in resolve_attested test
senamakel Oct 27, 2026
25efe50
test(module): cover callback load rejecting preloaded module without …
senamakel Oct 27, 2026
9b0a5ae
test(resolve): simplify preloaded module rejection test
senamakel Oct 27, 2026
58e4746
test(module): assert preloaded module fails closed without binding
senamakel Oct 27, 2026
92ebdf2
test(tinybus): cover repeated single-binding resolution
senamakel Oct 27, 2026
aaa48a0
test(resolve): cover terminal runtime startup errors in blocking work
senamakel Oct 27, 2026
736b69c
test(tinybus): include error text in resolver startup assertions
senamakel Oct 27, 2026
e5f2705
test(module): relax startup error assertion to match both parts
senamakel Oct 27, 2026
1506f84
test(resolve): cover callback load failing closed on admission race
senamakel Oct 27, 2026
c943e3f
test(resolve): cover cached ready resolution without callback binding
senamakel Oct 27, 2026
4d63c78
test(tinybus): include error text in callback binding assertion
senamakel Oct 27, 2026
1f2179f
test(module): include error text in resolver assertion
senamakel Oct 27, 2026
7eabdfe
test(module): cover resolver callback path in resolve tests
senamakel Oct 27, 2026
1ce32c0
test(tinybus): avoid clippy err().expect() in resolver test
senamakel Oct 27, 2026
398308b
Merge pull request #29 from senamakel/sec-656-secret-cipher
senamakel Oct 27, 2026
9833d38
fix(module): break recursive auto-trait cycle in host callbacks
senamakel Oct 27, 2026
0689566
Merge pull request #30 from senamakel/sec-656-secret-cipher
senamakel Oct 27, 2026
b61ba79
Merge upstream/main into epic/8369-security-migration
senamakel Oct 30, 2026
8cde74d
test(coverage): include host stream callback module in coverage checks
senamakel Oct 30, 2026
6f1fb6c
test(module): give retained callback binding test its own runtime
senamakel Oct 30, 2026
7884e06
test(tinybus): use runtime-aware fixture in direct resolver test
senamakel Oct 30, 2026
61dce96
test(module): cover ready resolution in another runtime
senamakel Oct 30, 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
26 changes: 26 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,32 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
host-core-msrv:
name: Host core and client Rust 1.85
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false

- uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.85.0

- uses: Swatinem/rust-cache@v2

- name: Check default host core features at the declared MSRV
run: cargo check --locked --manifest-path crates/tinybus/Cargo.toml --lib

- name: Check minimal host core features at the declared MSRV
run: cargo check --locked --manifest-path crates/tinybus/Cargo.toml --lib --no-default-features

- name: Check all host core features at the declared MSRV
run: cargo check --locked --manifest-path crates/tinybus/Cargo.toml --lib --all-features

- name: Exercise the public client from an isolated consumer without SDK dev fixtures
run: cargo test --locked --all-targets --all-features --manifest-path proof-workspaces/msrv-185-client/Cargo.toml

module-ci:
uses: tinyhumansai/.github/.github/workflows/module-ci.yml@4adc1080fb495098e7af1aade82ed7e6e3c69bb7
with:
Expand Down
54 changes: 52 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,16 @@ on:
description: Existing version tag (vX.Y.Z) committed through a reviewed PR
type: string
required: true
release_mode:
description: Use the existing main-only path or the approved reviewed-epic path
type: choice
options: [main, reviewed-epic]
default: main
required: true
reviewed_pr:
description: Positive PR number whose merge commit the tag names (reviewed-epic mode only)
type: number
required: false
push:
tags: ['v*']
permissions: {}
Expand All @@ -18,25 +28,65 @@ jobs:
outputs:
tag: ${{ steps.tag.outputs.tag }}
version: ${{ steps.tag.outputs.version }}
release_mode: ${{ steps.tag.outputs.release_mode }}
reviewed_pr: ${{ steps.tag.outputs.reviewed_pr }}
steps:
- id: tag
shell: bash
env:
TAG: ${{ github.event_name == 'push' && github.ref_name || inputs.tag }}
RELEASE_MODE: ${{ github.event_name == 'push' && 'main' || inputs.release_mode }}
REVIEWED_PR: ${{ inputs.reviewed_pr }}
run: |
set -euo pipefail
[[ "$TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+([+-][0-9A-Za-z.-]+)?$ ]] || {
echo "tag must be v-prefixed semver" >&2
exit 2
}
echo "tag=$TAG" >> "$GITHUB_OUTPUT"
echo "version=${TAG#v}" >> "$GITHUB_OUTPUT"
[[ "$RELEASE_MODE" == main || "$RELEASE_MODE" == reviewed-epic ]] || {
echo "release_mode must be main or reviewed-epic" >&2
exit 2
}
if [[ "$RELEASE_MODE" == reviewed-epic ]]; then
[[ "$REVIEWED_PR" =~ ^[1-9][0-9]*$ ]] || {
echo "reviewed_pr must be a positive integer in reviewed-epic mode" >&2
exit 2
}
else
[[ -z "$REVIEWED_PR" || "$REVIEWED_PR" == 0 ]] || {
echo "reviewed_pr is only valid in reviewed-epic mode" >&2
exit 2
}
REVIEWED_PR=""
fi
{
echo "tag=$TAG"
echo "version=${TAG#v}"
echo "release_mode=$RELEASE_MODE"
# Supply a JSON number when the main path has no reviewed PR input.
echo "reviewed_pr=${REVIEWED_PR:-0}"
} >> "$GITHUB_OUTPUT"
sdk-release:
needs: resolve
if: needs.resolve.outputs.release_mode == 'main'
permissions:
contents: write
uses: tinyhumansai/.github/.github/workflows/sdk-release.yml@4adc1080fb495098e7af1aade82ed7e6e3c69bb7
with:
tag: ${{ needs.resolve.outputs.tag }}
version: ${{ needs.resolve.outputs.version }}
package: tinybus
sdk-reviewed-epic-release:
needs: resolve
if: needs.resolve.outputs.release_mode == 'reviewed-epic'
permissions:
contents: write
pull-requests: read
checks: read
actions: read
uses: tinyhumansai/.github/.github/workflows/sdk-reviewed-epic-release.yml@0cafb7aada1e706fa237948c52decd9b753b111c
with:
tag: ${{ needs.resolve.outputs.tag }}
version: ${{ needs.resolve.outputs.version }}
package: tinybus
reviewed-pr: ${{ fromJSON(needs.resolve.outputs.reviewed_pr) }}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
/target
/examples/target
/proof-workspaces/msrv-185-client/target/
/crates/tinybus/.tmp*/
/worktrees
__pycache__/
**/*.rs.bk
.env
184 changes: 184 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
# Changelog

## 0.3.12

### Added

- Allow a bounded, host-configured set of exact confidential controller calls
to reach a module during initialization, without changing the wire or ABI.
- Resolve a live module's unique bus peer from its canonical module ID without
loading cold modules or consulting the broker.

## 0.3.11

### Fixed

- Give the process-lifetime module runtime its own selected controller so
context-bearing modules receive trusted setup capabilities.

## 0.3.10

### Fixed

- Update the locked WebPKI verifier and root store to patched versions that
reject certificate paths through the distrusted emSign intermediates.

## 0.3.9

### Added

- Add configured `setup_factory_with_context` exports that retain per-instance
state and receive a fresh loader-issued setup context for each initialization.

## 0.3.8

### Fixed

- Keep the TinyBus host crate compatible with its declared Rust 1.85 MSRV by
using stable control-flow and remainder operations.

## 0.3.7

### Added

- Support configured module setup callbacks that receive an SDK-issued
`ModuleSetupContext` on initial setup and reinitialization.

## 0.3.6

### Added

- Give module setup callbacks an SDK-issued trusted host binding to the
restricted module controller selected by the host.

## 0.3.5

### Added

- Expose `module::Availability` and its stable serialized status names without
enabling the optional module loader.

### Fixed

- Make the rejected native-worker spawn test deterministic when another
request callback is already in flight, while retaining the uncertain
instance's resources until callback settlement.

## 0.3.4

### Added

- `ModuleServiceSlot::try_close_with` runs a borrowed host close callback under
the slot lock. Errors and cancellation retain the entry; acknowledged success
retires it without calling the stored closer a second time.

## 0.3.3

### Fixed

- Publish a stream's completion or truncation verdict before closing its reader
channel, so a reader that has drained the payload observes the correct end.

## 0.3.2

### Added

- `ModuleClient::bind` returns a private ordinary client pinned to the serving
peer for root calls, streamed uploads, and held object paths. It supports
linked modules and fixtures without making an artifact-attestation claim.

### Fixed

- Ordinary bindings preserve the selected proxy's deadline for owner lookup
and later calls unless the client supplies an explicit override.

## 0.3.1

### Added

- `ModuleRuntime::lease` owns reservation activation on the dedicated runtime and
returns a cloneable `RuntimeLease` with a shared acknowledged-stop worker.
- `RuntimeLeaseDriver` and `StopOutcome` expose a protocol-neutral lifecycle
contract on the slim build; only proven-settled failures are retried.
- `RuntimeLeaseDriver::start` returns `StartOutcome` to distinguish acknowledged
start, a proven-settled failure, and an uncertain remote operation.
- `ModuleClient::bind_attested` returns a client pinned to the proven unique
peer, including for later calls and held object paths.
- Unacknowledged and faulted cleanup retains the exact callback registration
until STOP acknowledgement.

### Fixed

- An uncertain START keeps its reservation, object, and callback registration
owned until an authoritative settlement; it never triggers an overlapping STOP.
- Closing a linked module connection wakes an idle receive without requiring
another inbound frame, drains queued frames, and refuses sends after close.

## 0.3.0

### Breaking changes

- `RuntimeSetup` now receives the `ModuleHost` alongside its connection, so
runtime setup can install callbacks without a second process-global slot.
- `LinkedModule` carries an optional Rust-only setup initializer generated by
`module_export_static!`; struct literals must provide `init_with_setup`.

### Added

- `ModuleHost::attach_linked_with_setup` replaces one linked export's default
setup with state captured for that admitted instance and waits for readiness.
- `ModuleHost::module_for_sender` resolves broker-assigned unique peers to exact
admitted `ModuleId`s without a broker lookup.
- `ModuleRuntime::serve_host_object` returns a drop guard for host object and
name ownership, with cleanup on the module runtime.

### Fixed

- Host object guards remove only their own interface registration and preserve
names that were already owned before the first guard.
- Canceling or timing out linked setup revokes its pending module admission.
- Module sender identity now requires an exact canonical manifest/descriptor
match rather than a sanitized display-name match.

## 0.2.2

### Added

- `ModuleClient::call_with_stream` and `call_with_stream_detailed` upload
payloads through the module's validated proxy; the detailed form preserves
untrusted remote wire failures while keeping renderings and reports redacted.
- `ModuleObjectClient::call_detailed` retains exact remote method failure
details for held objects while keeping its sanitized call wrapper.

### Fixed

- A streamed method follows the unique peer that accepted `Open`, so a
well-known-name handover cannot split its method from its payload.
- A refused protocol frame reports as a transport failure rather than as a
module execution fault.

## 0.2.1

### Added

- `ModuleClient::call_attested_detailed` retains remote method failure fields
for product adapters while keeping renderings and failure reports redacted.

## 0.2.0

### Breaking changes

- Module search paths are now opt-in. Hosts that need discovery must configure
`SearchPathConfig` with their own environment variable and app directory;
TinyBus no longer assumes OpenHuman's `OPENHUMAN_MODULE_PATH` or data paths.
- `ModuleHost::search_paths` is now an instance method and
`ResolverInputs` carries optional search-path configuration and a linked
registry. Update resolver construction to pass a `LinkedRegistry` (usually
`LinkedRegistry::global()`) and the host's `SearchPathConfig`, if any.

### Added

- `UnloadedAccess` provides registry-backed client access for builds without
the dynamic module loader.
- Hosts can set a bundled release directory and resolve it using an explicitly
named environment variable.
Loading
Loading