Skip to content

Bump dirs from 5.0.1 to 6.0.0 - #4

Merged
getappz merged 1 commit into
masterfrom
dependabot/cargo/dirs-6.0.0
Jul 5, 2026
Merged

Bump dirs from 5.0.1 to 6.0.0#4
getappz merged 1 commit into
masterfrom
dependabot/cargo/dirs-6.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 5, 2026

Copy link
Copy Markdown
Contributor

Bumps dirs from 5.0.1 to 6.0.0.

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [dirs](https://github.com/soc/dirs-rs) from 5.0.1 to 6.0.0.
- [Commits](https://github.com/soc/dirs-rs/commits)

---
updated-dependencies:
- dependency-name: dirs
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Jul 5, 2026
@getappz
getappz merged commit 25be07d into master Jul 5, 2026
4 checks passed
@getappz
getappz deleted the dependabot/cargo/dirs-6.0.0 branch July 5, 2026 20:42
getappz added a commit that referenced this pull request Aug 13, 2026
…estration (#472)

* feat(flare-workflow): scaffold crate with typed DAG types + journal + SQLite store

Phase 1-2 of epic #447: core types (StepMode/ErrorMode/JournalEntry with
CompletableEntry invariant), DAG validation, StateStore trait + in-memory,
and SqliteStore on agentflare-db-kit with append-only journal.

Agentflare-Agent: 1
Agentflare-Branch: task/447
Agentflare-Item: 447

* feat(flare-workflow): journaled DAG engine core with retries + event bus

Phase 3 of epic #447: port SMG wfaas engine (DAG parallel scheduler,
backoff retries, RetryIndefinitely, cancellation, graceful shutdown,
event bus) fused with the durable journal — every terminal step result
appended as JournalEntry::StepRun.

Agentflare-Agent: 1
Agentflare-Branch: task/447
Agentflare-Item: 447

* feat(flare-workflow): OpenFang step semantics — conditional/loop/fanout+collect, variables, tokens, eviction

Phase 4 of epic #447: engine executes StepMode variants (Conditional skip,
Loop until/max-iterations, FanOut+Collect join via shared buffer),
string-pipeline input chaining ({{input}} + output_var capture),
token accounting on StepState, run-eviction cap (200), and ErrorMode::Skip
turns terminal failures into skips. OpenFang test suite ported.

Agentflare-Agent: 1
Agentflare-Branch: task/447
Agentflare-Item: 447

* feat(flare-workflow): durable waits — Sleep timers + WaitEvent promises + complete_event

Phase 5 of epic #447: Sleep/WaitEvent journaled (pending + completed
entries, Restate design), in-process oneshot waiters, exactly-once
complete_event with journaled pre-delivery closing the notify-before-wait
race, and TTL timeout path.

Agentflare-Agent: 1
Agentflare-Branch: task/447
Agentflare-Item: 447

* feat(flare-workflow): recovery pass — crash-resume with exactly-once via journal memoization

Phase 6 of epic #447: engine.recover() replays active runs over the SQLite
journal, skips steps with completed entries (StepRun/Sleep/WaitEvent), and
re-drives pending steps; pending Sleep re-arms idempotently; WorkflowDefinition
is now Clone for re-registration. Durable-wait methods split into waits.rs to
stay under the LOC gate. Crash-resume test proves a completed step never
re-executes (exactly-once); racing completions resolve to one winner.

Agentflare-Agent: 1
Agentflare-Branch: task/447
Agentflare-Item: 447

* feat(flare-workflow): OpenFang JSON schema + compile + example workflows

Phase 7 (core) of epic #447: JsonWorkflow schema compiles to engine-ready
definitions with agent-prompt executors dispatching through a caller-supplied
SendMessage hook (input/var templating, token accounting, retryable by
default). OpenFang's four example workflows (code-review, research-and-write
with conditional, brainstorm fan-out+collect, iterative-refinement loop) run
as fixtures. Workspace builds with the new member.

Agentflare-Agent: 1
Agentflare-Branch: task/447
Agentflare-Item: 447

* docs(flare-workflow): crate README — usage, durability, JSON workflows

Agentflare-Agent: 1
Agentflare-Branch: task/447
Agentflare-Item: 447

* chore: update Cargo.lock for flare-workflow crate

Agentflare-Agent: 1
Agentflare-Branch: task/447
Agentflare-Item: 447

* feat(workflow): mcp__flare__workflow + agentflare workflow CLI + real pipeline test

Phase 7b: src/workflow.rs service (durable SqliteStore, shared runtime,
headless-agent SendMessage hook) + mcp__flare__workflow (run/status/
complete_event/list) + agentflare workflow CLI. compile_workflow now wires
OpenFang positional ordering into DAG edges (sequential chain, fan-out group
-> collect). complete_event is journal-first so a different engine instance
(MCP/CLI/recovery) resolves a wait. Tests: service round-trips, cross-engine
event resolution, and a REAL coder->reviewer->PR pipeline that performs git/
file work in a temp repo (branch, commit, real-diff review loop, PR ref).

Agentflare-Agent: 1
Agentflare-Branch: task/447
Agentflare-Item: 447

* feat(workflow): MCP handler tests + async cores for daemon-safe invocation

Phase 7b completion: workflow service exposes async cores (no nested block_on
from the daemon's async runtime) with sync wrappers for the CLI; mcp__flare__workflow
handler tests cover run/status/list + error paths; real coder->reviewer->PR git
flow test proves the engine drives agentflare's item-pipeline mechanics.

Agentflare-Agent: 1
Agentflare-Branch: task/447
Agentflare-Item: 447

* fix(flare-workflow): resolve code-review findings on task/447

Fixes for the 8 review findings on item #447 (all except #8, documented
below):

- agent_send_hook now runs run_headless inside spawn_blocking within
  the async block, instead of synchronously before it (finding #1).
- SqliteStore's StateStore impl wraps every method's rusqlite I/O in
  spawn_blocking so it can't stall an async executor thread (#2).
- WorkflowEngine gains an optional runtime handle
  (with_runtime_handle); start_workflow/recover/start_cleanup_task
  spawn through it. src/workflow.rs now attaches WORKFLOW_RT so the
  MCP path (which awaits the async core directly on the daemon's own
  runtime) also keeps execution off that runtime, not just the CLI's
  block_on path (#3).
- Steps whose dependency failed now get an explicit Skipped status
  (with a cascade to their own dependents) instead of staying stuck at
  Pending forever; completion signals now forward on any terminal
  result, not just Success/Skip, so blocked dependents actually reach
  the scheduler (#4).
- WaitEvent waiters are now keyed per step instance
  (run_id:step_id:name) instead of run_id:name, so two concurrent
  wait_event steps sharing an event name no longer drop each other's
  waiter; complete_event wakes every matching waiter (#5).
- cleanup_old_workflows no longer panics via .expect() on a lock/query
  failure; it logs and returns 0 like its siblings (#6).
- write_state now does targeted UPSERTs of step_state/run_vars rows
  instead of DELETE-all + INSERT-all on every write (#7).

Finding #8 (WorkflowRunId::new() vs db_kit::ids::new_id()) intentionally
left as-is: new_id() returns a nanoid String, but WorkflowRunId wraps a
Uuid and is parsed/displayed as a v7 UUID throughout the MCP/CLI surface
(explicitly time-ordered). Switching would require re-typing
WorkflowRunId from Uuid to String across the crate and would lose the v7
time-ordering property, which is a materially different and larger
change than the 'low - consistency' severity implies.

Added regression tests: concurrent_wait_events_same_name_both_resolve
and dependent_of_failed_step_gets_terminal_status.

cargo test -p flare-workflow (55 tests) + agentflare workflow::/
mcp_server::workflow:: tests (7 tests) pass; fmt + clippy
(-D warnings -A unsafe_code -A clippy::pedantic) clean workspace-wide.

Agentflare-Agent: claude-code
Agentflare-Branch: task/447
Agentflare-Item: 447

* fix(flare-workflow): drop unmaintained backoff crate, regen hakari workspace-hack

Replace the RUSTSEC-flagged backoff crate with a hand-rolled exponential
strategy in retry.rs (base * 1.5^n, capped at max) — the crate's own
randomization was redundant with apply_jitter anyway. Regenerate
agentflare-workspace-hack via cargo hakari generate to pick up
flare-workflow's dependency set.

Agentflare-Agent: claude-code
Agentflare-Branch: task/447
Agentflare-Item: 447

* fix(flare-workflow): resolve CodeRabbit findings — durable sleep, update race, db_path

Three real bugs surfaced by the fresh full-diff CodeRabbit review on PR #472:

- waits.rs execute_sleep recomputed wake_at from Utc::now() on every call,
  including on crash-recovery re-arm, so a durable Sleep never resumed its
  original deadline — every restart pushed the wake time out further. Now
  reuses the wake_at from an existing pending Sleep journal entry.
- sqlite_store.rs SqliteStore::update released the connection lock between
  its load and write, so concurrent updates on the same run (e.g. two
  fan-out branches completing close together) could race and silently drop
  one's mutation. Added update_lock held across the whole cycle.
- mcp_server/workflow.rs honored a client-supplied db_path in production,
  letting any MCP caller point the workflow store at an arbitrary file. The
  override is now test-only (cfg!(test)); production always uses the
  default ~/.agentflare/workflows.db path.

Added regression tests for the first two (recover_reams_pending_sleep now
asserts wake_at is preserved across the crash boundary;
concurrent_updates_on_same_run_do_not_lose_writes spawns 20 concurrent
updates and asserts none are lost). The db_path fix isn't independently
testable — cfg!(test) is true for any test binary — so it's covered by the
existing MCP tests continuing to pass with their tempdir overrides.

Remaining CodeRabbit nitpicks (eprintln vs tracing, brittle journal_tail
count assertion, README doctest formatting, missing composite index,
discarded delete_state errors in cleanup, executor.rs default is_retryable,
non-blocking cancellation test, duplicate StepId validation, WaitEvent
journal entries not scoped by step_id, EntryResult::success swallowing
serialization errors, InMemoryStore::journal NotFound vs empty-vec
inconsistency, fan_group dependency derivation edge case) are lower-severity
style/robustness items left for a follow-up pass rather than folded into
this bugfix. The journal.rs 'use RETURNING instead of a second SELECT'
suggestion was checked and is a non-issue here: all journal writes go
through the same Arc<Mutex<Connection>>, so there's no race for it to fix.

Agentflare-Agent: claude-code
Agentflare-Branch: task/447
Agentflare-Item: 447
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant