Repository navigation
Release v0.269.0
·
46 commits
to master
since this release
[0.269.0] - 2026-10-06
Added
- Agent harness for Claude Code and Codex:
- hooks in
scripts/agents/deny commands that discard uncommitted work andSQLX_OFFLINEoverrides, ask
before commits, pushes and-p-scoped cargo builds, refuse hand edits to generated files, require loading
the governing skill before editing guarded paths, and runrustfmtplus rule checks on edited Rust - new skills: Rust style (required before any
.rsedit), renaming a concept, adding a bounded context,
prose and comments make lint-harness(part ofmake lint, and run by CI on every PR) checks the hooks, skill registration
and routing, and documentation links
- hooks in
- Flows: GraphQL lists the flows a completed flow started downstream (
FlowEventCompleted.downstreamFlows,
Flow.downstreamFlows), including history recorded before this release. Datasets the caller cannot read
show only their ID, and webhook deliveries are shown only to dataset maintainers
Changed
- Outbox and flow-system event delivery on Postgres wait for older in-flight transactions to commit before
moving past them, so a long transaction delays delivery instead of risking a skipped message - Agent guidance consolidated:
AGENTS.mdis the single source of rules, skills moved to.claude/skills/
with.agents/skills/symlinks for Codex, and DEVELOPER.md gained an "Agent Harness" section - Database migrations are forward-only:
make sqlx-add-migrationno longer creates down migrations - Stricter Clippy policy:
match_wildcard_for_single_variants,wildcard_enum_match_arm(no catch-all_
arms over enums) andallow_attributes_without_reasonare enforced workspace-wide; lint suppressions are
#[expect]with a reason (halved in number), andusizecasts use checked conversions - GraphQL (breaking):
FlowActivationCauseDatasetUpdate.datasetis nullable, null when the dataset was
deleted or is not readable by the caller; the newdatasetIdis always set.DependencyDatasetResult
and its variants are renamed toDatasetAccessResult,DatasetAccessResultAccessibleand
DatasetAccessResultNotAccessible, with the same fields
Fixed
- Flows: enabling a transform trigger now detects inputs whose history was rewritten while the trigger was off
(reset, reset to metadata, compaction), instead of treating the derived dataset as up to date. With recovery
enabled for breaking changes, the derived dataset is reset to metadata and then rebuilt from its inputs. - Concurrent modifications of flow triggers, flow configurations, account quotas and resources are detected
instead of one writer silently overwriting the other - Flows: the history of a flow activated by a now-deleted upstream dataset no longer fails to load, and it no
longer reveals upstream datasets the caller cannot read - Outbox and flow-system events of a transaction that commits after a later one no longer go undelivered
- Reactive flow triggers whose flow was pending at restart react to input changes again
- Flow configurations of a deleted dataset are no longer returned, and a dataset re-added with the same ID can
be configured again - Resource update activation causes are deduplicated against all earlier causes of a flow, not only the first
- Retry policies with a zero minimum delay or very long delays no longer panic; GraphQL rejects a minimum delay
overu32::MAXseconds with a validation error - Webhook delivery flows return an error instead of panicking on an unsupported event type or payload
- Unregistering a flow sensor no longer drops the routing of downstream sensors that listened to it