fix(repo): prevent daemon write replay after ack loss - #3843
Open
KooshaPari wants to merge 417 commits into
Open
fix(repo): prevent daemon write replay after ack loss#3843KooshaPari wants to merge 417 commits into
KooshaPari wants to merge 417 commits into
Conversation
Co-Authored-By: ForgeCode <noreply@forgecode.dev>
Co-Authored-By: ForgeCode <noreply@forgecode.dev>
Co-Authored-By: ForgeCode <noreply@forgecode.dev>
Co-Authored-By: ForgeCode <noreply@forgecode.dev>
Detects is_terminal at SpinnerManager construction. When stderr is not a TTY (piped, redirected, or -p prompt mode), the spinner thread is never started and write_ln/ewrite_ln emit plain text only. Fixes tailcallhq#3615.
Configurable compression levels with importance-based pruning for conversation history. AI-driven semantic analysis to identify and compress low-value exchanges while preserving critical context.
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Pulled forge.exe + helioslite.exe Windows x86_64 assets directly from the CI-built draft release v2.13.21-h.0.1.1 at KooshaPari/forgecode (sha256 matches the published checksum). Built forge_dbd locally with the same APP_VERSION since CI doesn't ship that binary. Installed binaries report v2.13.21-h.0.1.1 (fork scheme); forge_dbd intentionally reports v2.13.21 (workspace version, not a release artifact). Live verified with installed binaries: conversation list returns real sessions, heliosdoctor reports version=v2.13.21-h.0.1.1, FORGE_DBD_ENABLED=1 still spawns the daemon cleanly. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
The repo's .rustfmt.toml declares nightly-only options (imports_granularity, group_imports, wrap_comments, comment_width), but CI runs stable rustfmt which silently ignores them, so the declared style drifted across 30 files. Reformat with cargo +nightly fmt --all. Exception: crates/forge_main/src/info.rs line 75 (blank line inside a ```text doc-code-fence). Modern nightly normalizes it to "/// " (trailing space), which stable rustfmt strips back to "///" — the two cannot agree. Kept stable's form so CI's stable fmt check stays green; nightly check flags exactly this one line, matching the pre-existing baseline. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…ions forge.exe / helioslite.exe running on this machine are the user`s live chats, not background processes. Killing them drops an in-flight conversation. The rule documents how to handle binary upgrades when the live process is holding a file lock (rename aside, copy new in, ask the user to relaunch -- never Stop-Process). forge_dbd remains the only forge-owned process for which a graceful shutdown is acceptable, with notice. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…ard, sprint tracking, quality gates, branch cleanup
…-branch auto-update
…ust deny.toml h2 had unbounded empty DATA frames (patched in 0.4.16, low severity). - Bump h2 0.4.13 (via aws-smithy-http-client) to 0.4.16 in Cargo.lock; 0.3.27 via dev-only rocket->hyper 0.14 has no 0.3.x fix and is ignored in deny.toml (dev-only, no safe upgrade until hyper 0.14 / rocket moves to hyper 1). - Fix deny.toml for cargo-deny 0.19.8: version filter not supported, use plain id ignore (0.4.16 is now patched so ignore only hits 0.3). CI cargo-deny was red on this advisory; now advisories ok, licenses and sources ok. Co-Authored-By: ForgeCode <noreply@forgecode.dev>
…g 0.22, libsqlite3-sys 0.38) + h2 0.4.16 Merge upstream/main 6ed5d37 (34 commits: 16 Rust crate bumps including libsqlite3-sys 0.38.0, diesel 2.3.9, two-face 0.5.2, clap 4.6.6, etc. + 17 JS/TS dep bumps). Resolve Cargo.lock conflict by taking upstream and re-applying fork security fix h2 0.4.13->0.4.16 (RUSTSEC-2026-0258) and aligning rusqlite 0.39.0->0.40.0 in crates/forge_dbd to use libsqlite3-sys 0.38 (was 0.37) — single links=sqlite3 now consistent. Also posthog-rs 0.21->0.22 from upstream Cargo.toml. Co-Authored-By: ForgeCode <noreply@forgecode.dev>
…-reader descriptions, contrast checking, and semantic validation
… wrap) Fixes CI test failure forge_config::schema generate_workflow_schema after upstream sync (34 commits). Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
- ConfigReader::forge_base_path() + is_helioslite_binary() gating - ForgeAPI background task polls ~/.forge/.forge.db every 5s (FORGE_SYNC_INTERVAL_SECS, FORGE_SYNC_DISABLED kill-switch), mtime-gated idempotent import via import_forge_db (skips existing) - Only runs as helioslite when homes distinct; forge remains write-owner, helioslite copies into its own home - Scope h2 0.3.27 ignore to version range, bump 0.4.13→0.4.16, wrap_comments schema fix Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
KooshaPari
force-pushed
the
safety/daemon-ack-loss-20260813
branch
from
August 19, 2026 17:43
dc80ed5 to
8c217b6
Compare
Regenerate ci.yml and release-drafter.yml via forge_ci. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Remove version filter (unsupported key) — cargo-deny 0.19 expects only id+reason Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
KooshaPari
force-pushed
the
safety/daemon-ack-loss-20260813
branch
from
August 19, 2026 18:30
8c217b6 to
c46c895
Compare
…les, and a11y CLI flag
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Co-authored-by: KooshaPari <koosha@example.com> Co-authored-by: ForgeCode <noreply@forgecode.dev>
KooshaPari
force-pushed
the
safety/daemon-ack-loss-20260813
branch
from
August 19, 2026 20:20
c46c895 to
e55d250
Compare
Co-Authored-By: ForgeCode <noreply@forgecode.dev>
Co-Authored-By: ForgeCode <noreply@forgecode.dev>
Fixes missing field errors after protocol added workspace_id Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
KooshaPari
force-pushed
the
safety/daemon-ack-loss-20260813
branch
from
August 20, 2026 00:39
ef7ab44 to
5fb9cbc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Safety contract
Direct fallback remains available only after initial connect/spawn failure.
DbClient::sendtransport failures,Response::Error, and unexpected responses are explicit indeterminate errors, preventing duplicate writes.Verification
cargo test -p forge_repocargo clippy --all-targets --all-features -- -D warningscargo +1.96 fmt --checkgit diff --check