Repository navigation
feat: epic 7964 — channel v2 integration #179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
708f1a8
e41dc38
60488c1
8a3f541
c1f4402
328aecf
aa73efe
dbeac84
5953af9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -67,6 +67,7 @@ pub async fn run_with_observer( | |||||||
|
|
||||||||
| /// Observe a preflight child with the traversal's inherited depth counters. | ||||||||
| /// The overlay takes precedence over any cap on the child's own trigger. | ||||||||
| #[cfg(any(test, feature = "mock"))] | ||||||||
| pub(crate) async fn run_preflight_with_observer( | ||||||||
|
Comment on lines
+70
to
71
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do not gate run_preflight_with_observer behind test/mock `crates/tinyflows/src/preflight.rs` unconditionally calls `crate::engine::run_preflight_with_observer(&compiled, input, &caps, &observer_dyn, nesting)` — that call site carries no `#[cfg]`. With this gate the function (and the re-export in `engine.rs`) only exists when `cfg(test)` or `feature = "mock"` is set, so a default `cargo build` of the `tinyflows` crate fails with `E0425: cannot find function run_preflight_with_observer in module crate::engine`. `mock` is `default = []`, so the production build is exactly the one that loses the symbol. Either drop the gate or gate the `preflight.rs` call site identically.
Suggested change
[RULE] cfg-gated-symbol-used-in-production · |
||||||||
| workflow: &CompiledWorkflow, | ||||||||
| input: RunInput, | ||||||||
|
|
||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Keep the migration from deleting rows no step touched
The original condition deleted only rows that were (a) in a different collection than the step's item, or (b) in the step's own collection, still below `step.to`, and not among this batch's outputs — i.e. rows the step left behind. The rewritten form first disjunct is `source != step.item`, with no `row.meta.schema < step.to` requirement, so when a step reads from another collection every row in the page is now deleted unconditionally after the outputs are written. Concretely: any step with `step.source = Some(other)` (the `if source != step.item` branch at `let source = step.source.unwrap_or(step.item);` exists precisely for this) wipes the entire source collection as it pages through it, even rows the step did not touch or preserve via `output_ids`. Restore the previous structure, or at minimum require `row.meta.schema < step.to` on the `source != step.item` branch as well.
[RULE] unnecessary-delete ·