Skip to content

modules: re-point ethflow-watcher onto the venue observe path - #470

Merged
mfw78 merged 1 commit into
dev/m1from
feat/m4-ethflow-observe
Jul 23, 2026
Merged

modules: re-point ethflow-watcher onto the venue observe path#470
mfw78 merged 1 commit into
dev/m1from
feat/m4-ethflow-observe

Conversation

@mfw78

@mfw78 mfw78 commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

What

Re-point ethflow-watcher off shepherd:cow/cow-api onto the videre videre:venue/client venue-registry observe path (observe-only, no submit). Teach videre-host to watch externally-obtained receipts.

Why

Ethflow observation should ride the generic seam like twap's submit path, removing another legacy cow-api consumer ahead of the cone retirement.

Testing

Full gate green (fmt, check, clippy -D warnings, nextest 826, doctests). The cow-boot invariant test re-homed onto stop-loss (the remaining cow-api module) since both twap and ethflow are now off cow-api.

AI Assistance

Implemented and red-teamed with Claude; the stack-rebase conflict (both re-points obsoleted the cow-boot tests) was hand-resolved.

Closes #328.

@lgahdl lgahdl left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Clean migration, well cross-checked. The new observe path resolves the venue before touching the watch set (rejecting unknown/dead venues, unit-tested both ways), so it can't waste watch-set capacity on a bogus venue string — receipt content itself stays opaque, same as it always was for submit-sourced receipts, so this isn't a new trust boundary so much as the same pre-existing opacity reached via a second call path. The WIT/trait change is purely additive (observe added, no existing signature touched; VenueTransport::observe has a default Unsupported body so no existing implementor breaks), observe-only is enforced and tested (strategy_never_submits), the shepherd-backtest touch is a necessary, correctly-scoped consequence of on_chain_logs's signature change rather than scope creep, and the re-homed boot-order invariant test on stop-loss mirrors the original line-for-line.

One soft note, not a defect in this diff: after this PR, stop-loss is the only module left on the legacy cow-api cone, and nothing here tracks that final retirement step — worth linking a follow-up issue now so shepherd-cow-host and its test surface don't stay indefinitely maintained for one module with no visible trigger to finish the job. Approving.

@mfw78
mfw78 force-pushed the feat/m4-twap-on-pool branch 2 times, most recently from 3b82047 to f2057f9 Compare July 23, 2026 07:08
Base automatically changed from feat/m4-twap-on-pool to dev/m1 July 23, 2026 07:54
@mfw78
mfw78 force-pushed the feat/m4-ethflow-observe branch from fd57ecb to 21c14f0 Compare July 23, 2026 08:30
@mfw78

mfw78 commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the approval. On the soft note: the follow-up you are asking for already exists and is the immediately next car, so no new issue is warranted.

#471 (feat/m4-retire-cow-cone, "cow: retire the legacy cow-api host cone") carries Closes #293, which is open and milestoned M4. It does exactly the two things you name: it deletes crates/shepherd-cow-host in full, all nine files including the tests/cow_boot.rs test surface, and it migrates stop-loss off the cone (Cargo.toml, module.toml, src/lib.rs, src/strategy.rs).

Measured rather than assumed: stop-loss carries 19 cow-api/CowApi references at this car's head and zero at #471's, so it really is the last consumer and it really does go to zero one car later.

So the visible trigger to finish the job is the next merge in this train, not an untracked intention. Nothing left dangling from this PR.

@mfw78
mfw78 force-pushed the feat/m4-ethflow-observe branch 2 times, most recently from e46ae5c to fd57ecb Compare July 23, 2026 08:45
@mfw78
mfw78 force-pushed the feat/m4-ethflow-observe branch from 77276fa to f2b8407 Compare July 23, 2026 08:48
@mfw78 mfw78 changed the title modules: re-point ethflow-watcher onto the pool observe path modules: re-point ethflow-watcher onto the venue observe path Jul 23, 2026
@mfw78
mfw78 merged commit f83f359 into dev/m1 Jul 23, 2026
7 checks passed
@mfw78
mfw78 deleted the feat/m4-ethflow-observe branch July 23, 2026 08:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants