Repository navigation
feat(schedule): preserve channel session identity for origin jobs - #170
Conversation
…tinyflows-bus/src/schedule/iden Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
…tinyflows-bus/src/schedule/mod_ Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
…crates/tinyflows-module/tests/m Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
….rs,crates/tinyflows-bus/src/sc Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
….rs,crates/tinyflows-bus/src/sc Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
…s,crates/tinyflows-schedule/src Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
…rt.rs Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ae889c8a1d
ℹ️ 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".
Tiny Sweeper reviewReviewed head: Verdict: Ready for maintainer review · Priority: none Diagnostics and supporting detailsFull summaryPull request purpose (title): feat(schedule): preserve channel session identity for origin jobs. Purpose (from the pull-request title and description): preserve channel session identity for origin jobs, so durable scheduled channel jobs can retain the reply-routing context captured by the host, with an optional field that is omitted from legacy serialization and with the schedule bus contract bumped to 8. The pull request adds two typed identity structures in `crates/tinyflows-bus/src/schedule/identity.rs` — `ChannelSessionIdentity` (tenant, agent, session, provider, optional account, and a conversation) and `ChannelConversationIdentity` (kind, id, and optional scope/parent/thread/topic) — exposes them through the bus module and through the `tinyflows-schedule` facade, and adds an optional boxed `session_identity` to `JobOrigin::Channel` in `crates/tinyflows-bus/src/schedule/types.rs` gated by serde default plus skip-when-none so older origins keep their existing wire shape. `CONTRACT_VERSION` in `crates/tinyflows-bus/src/schedule/mod.rs` moves from 7 to 8 with matching assertion updates, and every existing `JobOrigin::Channel` construction site in the diff is updated. Review snapshot
Completeness: Complete What changedAdds optional, serde-skipped channel session identity to channel job origins, re-exports the two identity types from the bus and the schedule facade, bumps the schedule contract version to 8, and updates existing origin construction sites and version assertions to match. Features
Tests
FindingsNo active actionable findings. Before mergeNone. How this fits togetherflowchart LR
n0["every<br/>changed"]:::changed
n1["JobOrigin<br/>changed"]:::changed
n2["...nel_roundtrips_with_and_without_optionals<br/>changed"]:::changed
n3["origin_wire_bytes<br/>changed"]:::changed
n4["...ation_and_announce_can_reply_to_its_asker<br/>changed"]:::changed
n5["assert_bytes"]:::impacted
n6["Channel"]:::impacted
n7["DeliveryConfig"]:::impacted
n8["Schedule"]:::impacted
n0 -->|uses| n8
n2 -->|uses| n1
n2 -->|uses| n6
n3 -->|calls| n5
n3 -->|tests| n5
n3 -->|uses| n6
n4 -->|uses| n6
n4 -->|uses| n7
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
Agent review detailscritique
security
tests
commits
description
Evidence and run details
|
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Summary
Add a typed, opaque channel session identity to scheduled channel origins so durable jobs can retain their reply-routing context. The field is optional and omitted from legacy serialization when absent. Bump the schedule bus contract version to 8.
The identity carries tenant, agent, session, provider, account, and conversation fields. TinyFlows stores and forwards it without interpreting host policy.
Verification
cargo test -p tinyflows-bus --lib(89 passed)cargo test -p tinyflows-module --lib(135 passed)cargo clippy -p tinyflows-bus -p tinyflows-module --all-targets --all-features -- -D warningscargo fmt --all -- --checkcargo doc -p tinyflows-bus -p tinyflows-module --no-depsThe module artifact verification script could not pass locally because TinyBus rejects the shared worktree path: an ancestor directory is group-writable (
0775). The failure is environmental and occurs before artifact behavior is exercised; hosted CI should verify it on its runner.Summary by CodeRabbit
New Features
Tests
Chores