Skip to content

feat(bus): expose canonical document storage needs - #93

Merged
senamakel merged 37 commits into
tinyhumansai:epic/8056-modules-wiringfrom
senamakel:epic-8056-tinybox-storage-needs
Oct 17, 2026
Merged

senamakel merged 37 commits into
tinyhumansai:epic/8056-modules-wiringfrom
senamakel:epic-8056-tinybox-storage-needs

Conversation

@senamakel

@senamakel senamakel commented Oct 17, 2026 •

Copy link
Copy Markdown
Member

TinyBox publishes its storage declaration through the canonical TSD bus contract. A locked, excluded consumer directly names that same dependency and verifies every collection schema and resource field. The persistent proof checks exact source identity, normal/build dependencies and active features, with eight negative controls.

The workspace moves to 0.1.37 and pins published TinyBus 0.1.7 and TSD bus 1.5.0 at immutable revisions. Matching path patches keep SDK types unified. Reviewed-epic release dispatch uses the fixed TinyBox profile, with typed PR validation and a safe zero fallback; the ordinary release route retains its existing owner. Nine tests execute the actual resolver from an empty working directory.

Passing local validation: canonical consumer compile/run and graph proof; checks and all-target Clippy for the changed bus/module crates; docs with warnings denied; formatting, actionlint and cargo-deny; eight proof controls, nine release tests, two macOS/Windows environment fixtures, one version-selector test and five package-layout tests. Independent final source review passed.

Local suite qualifications: the configured feature script stopped on two Docker supervisor fixtures, and a standalone all-features workspace run failed on five Docker supervisor fixtures. Their source, fixture scripts and relevant dependency versions are unchanged from the base. The module suite passed 176 of 177 tests; live_stdio_processes_are_bounded failed once and passed when rerun alone. These are recorded local failures, not a full-suite green claim; hosted CI run 39059037243 passed all 14 jobs. The feature script now runs its default-profile consumer before the all-features build so artifact feature sets stay consistent.

Refs senamakel#2. Part of tinyhumansai/openhuman#8056. Targets the non-default epic branch; publication follows reviewed merge and release admission.

Update the vendored tinybus submodule to the latest upstream commit.

Auto-committed-on: macbook
Adds integration tests covering the storage needs reported by the bus, exercising the new behaviour end to end.

Auto-committed-on: macbook
Add a storage module exposing the box and jail index collection names along with the storage needs marker, and depend on tinystoragedrivers-bus so the bus crate can reference the shared storage vocabulary.

Auto-committed-on: macbook
The document stores now build their collection specs from the canonical StorageNeeds declaration in tinybox-bus instead of constructing bare specs locally, so indexes, TTL fields, and search settings stay in sync with the declared contract. Collection name constants are re-exported from the bus crate and the runtime spec documents the shared schema.

Auto-committed-on: macbook
Extend the feature test script to compile the tinybox-bus pure consumer crate and assert its normal dependency tree does not include TinyBus, guarding against accidental coupling.

Auto-committed-on: macbook
Bumps the tinybus crates to 0.1.7, which swaps the zip dependency for rawzip and adds ICU-based case mapping and Unicode normalization, and pulls in tinystoragedrivers-bus 1.3.0 from git. Also applies rustfmt formatting to the storage needs tests and box store, and adds module doc comments to the storage needs test files.

Auto-committed-on: macbook
@tinysweeper

tinysweeper Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Tiny Sweeper review

Tiny Sweeper reviewed this change across 5 lane(s) and found 0 active actionable finding(s). Detailed lane evidence and any incomplete work are listed below.

State: Incomplete
Priority: medium
Reviewed head: 1d4ead5efe0e
Updated: 2026-10-17T19:08:48Z

Review snapshot

Change surface Files Review signal Count
Production 8 Active findings 0
Tests 7 Noted findings 2
Documentation 4 Resolved findings 0
Configuration 6 Pending checks/questions 3

Completeness: Incomplete
Test assessment: No supported feature-to-test mapping was available; this does not mean tests are absent or passed.

Features

None identified with supported citations.

Tests

No supported feature-to-test mapping was produced. Test execution is not inferred.

  • Unreviewed: tinysweeper/tests

Findings

No active actionable findings.

Lower-confidence notes

  • medium · critique — Replace panicking assertions in the consumer binary (crates/tinybox\-bus/pure\-consumer/src/main\.rs)
  • medium · critique — Regenerate Cargo.lock after bumping the workspace version (Cargo\.toml)

Could not review: crates/tinybox-drivers/src/box_store.rs, scripts/test-features.sh, tinysweeper/tests

Before merge

  • Complete the critique review for scripts/test-features.sh.
  • Complete the security review for crates/tinybox-drivers/src/box_store.rs.
  • Complete the tests review for tinysweeper/tests.

How this fits together

flowchart LR
  n0["ProofError"]:::impacted
  n1["validate_lockfile"]:::impacted
  n2["...dependency_and_normal_build_feature_graph"]:::impacted
  n3["validate_dependency_graph"]:::impacted
  n4["lockfile"]:::impacted
  n1 -->|calls| n0
  n2 -->|calls| n1
  n2 -->|tests| n1
  n2 -->|calls| n3
  n2 -->|tests| n3
  n2 -->|calls| n4
  n2 -->|tests| n4
  n3 -->|calls| n0
  classDef changed fill:#0d4429,stroke:#238636,color:#e6edf3
  classDef impacted fill:#161b22,stroke:#6e7681,color:#c9d1d9
  classDef flagged fill:#5a1e02,stroke:#d93f0b,color:#ffffff
  classDef blocking fill:#67060c,stroke:#f85149,color:#ffffff
Loading
Agent review details

critique

  • Conclusion: Success
  • Scope reviewed: incomplete; unanswered: scripts/test-features.sh
  • Lane summary: Reviewed 24 files; 2 findings. 1 file could not be reviewed: scripts/test-features.sh.

security

  • Conclusion: Success
  • Scope reviewed: incomplete; unanswered: crates/tinybox-drivers/src/box_store.rs
  • Lane summary: Reviewed 20 files; 0 findings. 1 file could not be reviewed: crates/tinybox-drivers/src/box_store.rs. 4 files were not security-reviewed: CONTRIBUTING.md (prose or tabular data), docs/specs/reviewed-epic-release.md (prose or tabular data), docs/specs/tinybox-runtime.md (prose or tabular data), docs/specs/tinybus-module-release.md (prose or tabular data).

tests

  • Conclusion: Neutral
  • Scope reviewed: incomplete; unanswered: tinysweeper/tests
  • Lane summary: No reviewer produced a usable response.

commits

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: Nothing sensitive found in what this pull request commits.

description

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Lane summary: The PR adds a canonical storage-needs contract to tinybox-bus, rewires the drivers to read their collection specs from it, adds an isolated pure-consumer workspace with a dependency-graph proof, and adds a reviewed-epic release route. The lane is description matching: the description covers the contract, the consumer proof, the version bump and pins, the reviewed-epic dispatch and zero sentinel, and the recorded local failures. Nothing it claims is absent from the diff, and the significant additions (pure-consumer workspace, lockfile rule in CONTRIBUTING, feature-script reordering, release workflow test job) are all named in the body.
Evidence and run details
  • Models: ladder/vectors-oai3, deepseek-v4.1-flash, glm-5.3-flash
  • Spend: $0.018310
  • Tokens: 2127208 input · 107679 output · 523776 cached · 810 embedding
Head State Pass summary
0efcccd84c05 incomplete 0 active finding(s), 0 resolved finding(s) (at 2026-10-17T13:50:36Z)
eda54ef1f4cd incomplete 0 active finding(s), 0 resolved finding(s) (at 2026-10-17T14:06:09Z)
1d4ead5efe0e ready for maintainer review 0 active finding(s), 0 resolved finding(s) (at 2026-10-17T18:44:42Z)
1d4ead5efe0e incomplete 0 active finding(s), 0 resolved finding(s) (at 2026-10-17T19:08:48Z)

tinysweeper 0.1.2

@coderabbitai

coderabbitai Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: dd1e355f-0ea9-48fb-a0fc-2f730b1dc613

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-17T18:39:12.877652Z 1d4ead5 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@tinysweeper tinysweeper Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tinysweeper found nothing blocking, but could not review everything, so this is not an approval: .gitignore, crates/tinybox-bus/src/lib.rs, crates/tinybox-drivers/src/box_store.rs, crates/tinybox-drivers/src/index_store.rs, crates/tinybox-drivers/src/lib.rs, crates/tinybox-drivers/src/storage_needs_tests.rs, scripts/test-features.sh, scripts/test-pure-bus-consumer.sh.

             $0.0064 · 931,977 in / 23,679 out · 130,304 cached (14%) · ladder/vectors-oai3, glm-5.3-flash, deepseek-v4.1-flash,  · 765 embedded
critique:    $0.0045 · 703,920 in / 17,073 out · 88,960 cached (13%)  · glm-5.3-flash, deepseek-v4.1-flash,
security:    $0.0017 · 171,086 in / 5,363 out  · 26,368 cached (15%)  · deepseek-v4.1-flash
tests:       $0.0000 · 20,005 in  / 390 out    · 2,048 cached (10%)   · deepseek-v4.1-flash
description: $0.0001 · 36,966 in  / 853 out    · 12,928 cached (35%)  · deepseek-v4.1-flash

@tinysweeper tinysweeper Bot added the priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. label Oct 17, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0efcccd84c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Cargo.toml Outdated

@tinysweeper tinysweeper Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tinysweeper found nothing blocking, but could not review everything, so this is not an approval: tinysweeper/description.

             $0.0060 · 462,209 in / 30,616 out · 43,136 cached (9%)  · ladder/vectors-oai3, glm-5.3-flash, deepseek-v4.1-flash · 774 embedded
critique:    $0.0054 · 272,113 in / 24,904 out · 10,496 cached (4%)  · glm-5.3-flash, deepseek-v4.1-flash
security:    $0.0001 · 114,944 in / 1,808 out  · 27,520 cached (24%) · deepseek-v4.1-flash
tests:       $0.0000 · 21,623 in  / 167 out    · 1,792 cached (8%)   · deepseek-v4.1-flash
description: $0.0002 · 42,993 in  / 1,337 out  · 3,328 cached (8%)   · deepseek-v4.1-flash, glm-5.3-flash

The release workflow now accepts a release_mode input that routes between the ordinary main path and a reviewed-epic admission path, with reviewed_pr required and validated as a positive integer in the latter mode. A CI job runs the new workflow tests to cover the routing and input guards.

Auto-committed-on: macbook
Add a test that runs the resolve script from a directory that is not a repository checkout, and assert the reviewed route calls the pinned canonical admission workflow with the resolved PR number and no checkout step.

Auto-committed-on: macbook
The release workflow now forwards a numeric zero sentinel when no reviewed PR is resolved, so the ordinary route no longer fails on an empty value while the reviewed route still requires a positive integer. The spec and workflow test were updated to match the new behaviour.

Auto-committed-on: macbook
Update the vendored tinybus submodule to the latest upstream commit.

Auto-committed-on: macbook
Raise the workspace version to 0.1.37 and move the TinyBus and
tinystoragedrivers-bus requirements to their newer releases. The
tinystoragedrivers-bus bump also advances the pinned revision, and
tinybus-module is now patched to the vendored checkout so it shares the
same source as tinybus.

Auto-committed-on: macbook
The reviewed-epic release spec now states the exact `tinyhumansai/tinybox` repository profile and `epic/8056-modules-wiring` base that the shared workflow checks, replacing the generic wording so operators know which values are enforced.

Auto-committed-on: macbook
Add a standalone script that exercises a pure bus consumer to verify
message handling without external dependencies.

Auto-committed-on: macbook
Add a script that verifies a consumer reads from the bus without
publishing back to it, so violations are caught before they reach
review.

Auto-committed-on: macbook
The pure consumer now depends on the published tinystoragedrivers-bus crate and asserts that its storage needs match the canonical type, catching cases where the two resolve different copies. The feature test fixtures were updated to the new dependency version and the consumer check runs as part of the feature test script.

Auto-committed-on: macbook
The shell script now delegates dependency graph validation to a Python helper, replacing the inline loop and lockfile checks with a single call that receives the workspace version, consumer path, lockfile, and dependency tree.

Auto-committed-on: macbook
The assertion now expects the "resolution evidence" wording from the validator instead of the generic "missing" substring, so the test tracks the actual error message.

Auto-committed-on: macbook
The duplicate-package test now constructs the second package block by
splitting the fixture and re-adding the `[[package]]` header, so the
duplicated input is well-formed regardless of how the fixture is laid out.

Auto-committed-on: macbook
Replace the tomllib-based loading with a small hand-rolled parser for the
dependencies table and lockfile package blocks, so the check no longer depends
on a TOML library and rejects unsupported or duplicate entries explicitly.

Auto-committed-on: macbook
The dependency graph validator now records the pure consumer crate's own
version and asserts it matches v0.1.0, so the proof fails if the consumer
is resolved at an unexpected version. A test was added to confirm the
proof command inspects normal and build edges with their enabled features.

Auto-committed-on: macbook
The generated manifest now appends a client feature to the storage
dependency when the dependency declares features, so the pure bus
consumer test exercises the client-enabled build.

Auto-committed-on: macbook
Delete the __pycache__ .pyc artifacts that had been checked in for the pure bus consumer scripts. Compiled bytecode is generated locally and should not be tracked.

Auto-committed-on: macbook
Reordered the feature test script so the pure bus consumer check runs before the all-features workspace tests, ensuring the consumer test executes even if the broader suite fails.

Auto-committed-on: macbook
Updated the lockfile for the 0.1.37 workspace release, which moves tinybus to 0.1.7 and tinystoragedrivers-bus to 1.5.0. tinybus now uses rawzip and icu_casemap with unicode-normalization instead of the zip crate, pulling in the ICU and zerovec dependency tree.

Auto-committed-on: macbook
… 1.5.0

Updated the pure-consumer lockfile to pick up the newer tinystoragedrivers-bus revision and added it as a direct dependency of the consumer crate.

Auto-committed-on: macbook
The expected call list now places the all-features workspace test after the pure consumer run and tree checks, matching the order the script actually invokes cargo.

Auto-committed-on: macbook
Include the generated .pyc file for the pure bus consumer check script so the compiled artifact is tracked alongside its source.

Auto-committed-on: macbook
Delete the checked-in __pycache__ artifact for the pure bus consumer check so generated bytecode is no longer tracked in the repository.

Auto-committed-on: macbook
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@tinysweeper tinysweeper Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tinysweeper found nothing blocking. Approving.

             $0.0125 · 1,018,619 in / 66,247 out · 287,104 cached (28%) · ladder/vectors-oai3, deepseek-v4.1-flash, glm-5.3-flash,  · 810 embedded
critique:    $0.0111 · 590,846 in   / 60,290 out · 236,544 cached (40%) · deepseek-v4.1-flash, glm-5.3-flash,
security:    $0.0005 · 292,181 in   / 3,005 out  · 46,976 cached (16%)  · deepseek-v4.1-flash, glm-5.3-flash
tests:       $0.0003 · 93,868 in    / 874 out    · 3,584 cached (4%)    · deepseek-v4.1-flash, glm-5.3-flash
description: $0.0002 · 21,423 in    / 101 out    · 0 cached (0%)        · glm-5.3-flash

@senamakel
senamakel merged commit c7be7e4 into tinyhumansai:epic/8056-modules-wiring Oct 17, 2026
21 checks passed

@tinysweeper tinysweeper Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tinysweeper found nothing blocking, but could not review everything, so this is not an approval: crates/tinybox-drivers/src/box_store.rs, scripts/test-features.sh, tinysweeper/tests.

             $0.0183 · 2,127,208 in / 107,679 out · 523,776 cached (25%) · ladder/vectors-oai3, deepseek-v4.1-flash, glm-5.3-flash · 810 embedded
critique:    $0.0082 · 1,227,079 in / 50,213 out  · 363,520 cached (30%) · deepseek-v4.1-flash, glm-5.3-flash
security:    $0.0067 · 794,118 in   / 40,766 out  · 98,816 cached (12%)  · deepseek-v4.1-flash, glm-5.3-flash
tests:       $0.0030 · 62,413 in    / 16,412 out  · 61,440 cached (98%)  · deepseek-v4.1-flash
description: $0.0004 · 43,598 in    / 288 out     · 0 cached (0%)        · glm-5.3-flash

@tinysweeper tinysweeper Bot added priority: p2 Soon. Real but survivable — a rough edge, a gap, a thing that will bite later. and removed priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. labels Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: p2 Soon. Real but survivable — a rough edge, a gap, a thing that will bite later.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant