v2026.7.29 - #645
Merged
Merged
Conversation
Use the OTEL-based Langfuse observation flow so session traces actually reach Langfuse again, and record full model/tool inputs and outputs for later debugging and analysis. Made-with: Cursor
Discover fallback candidates from enabled models, prioritize the primary provider, and keep Auto opt-in across WebUI side conversations including workflows. Remove the explicit fallback configuration surface and unify model selector behavior.
…failover # Conflicts: # flocks/session/runner.py # webui/src/pages/WorkflowCreate/CreateChatTab.test.tsx
The Hub installer stages a WebUI plugin into a scratch dir (.<name>.<rand>) inside ~/.flocks/plugins/contracts/webui and then atomically swaps it into place. That directory is watched recursively by the WebUI page watcher, which discovered the half-built pages inside the scratch dir and launched its own esbuild rebuild mid-install. On Windows the watcher's open handles blocked the swap with a WinError 5 access-denied, leaving .soc_ui.<rand> / .soc_ui.bak litter and phantom top-level page dirs. Fixes (defense-in-depth): - watcher: drop events under dot-prefixed dirs before any store lookup, so the watcher never races the installer's atomic swap (root cause). - store: skip dot-prefixed dirs when scanning pages/workspaces, so stranded scratch/backup copies never surface as real pages. - installer: retry the atomic swap on Windows PermissionError with backoff, and purge stale .<name>.* scratch dirs before staging so a prior failed install self-heals on the next attempt. Adds regression tests for all three (each fails without its fix): tests/hub/test_installer_swap.py plus scratch-dir cases in the store and watcher suites. Co-Authored-By: Claude <noreply@anthropic.com>
…failover # Conflicts: # webui/src/pages/Session/index.tsx
…ke Path.home() tests hermetic
Bug 1 — `flocks restart` spewed UnicodeDecodeError on Chinese Windows.
The restart-time liveness/health probes shell out to tasklist / netstat /
powershell / `node -v` with capture_output+text but no explicit encoding,
so Python's reader thread decoded the GBK console output as utf-8 and
crashed (byte 0xbb). Add encoding="utf-8", errors="replace" to those four
subprocess.run calls, matching the pattern already used by
_windows_process_snapshot.
Bug 2 — hub/config/device tests were not hermetic on Windows. They isolate
the filesystem via monkeypatch.setenv("HOME", ...), but Windows Path.home()
reads %USERPROFILE% and ignores HOME, so production code resolving
Path.home()/".flocks" leaked into (and asserted against) the real user
home. Add an autouse conftest fixture that makes Path.home() and bare-tilde
os.path.expanduser honor HOME on every platform, aligning Windows with
Linux CI. Behavior-preserving when HOME already points at the real home.
Net effect on a Windows test run: 27 previously-failing hub/config/device
isolation tests now pass, with zero new failures. Adds regression tests for
the subprocess decode fix (each fails without it).
Co-Authored-By: Claude <noreply@anthropic.com>
…n-a4d183003100 chore: sync main into dev after main-a4d183003100
…timeout fix(webui): bound restart readiness requests
fix(webui): recover missed questions without duplicate messages
Replace the fixed 60-second first-chunk deadline with configurable cloud and local endpoint defaults. Preserve provider and model overrides through config loading and cover precedence and refresh behavior with regression tests.
feat(webui): add automatic model failover routing
…bounce fix(supervisor): debounce backend port probe failures
Add a project picker and API for moving complete task trees between writable projects. Coordinate lifecycle operations, forks, replay boundaries, and active shell or revert work to keep moves safe. Preserve task activity timestamps across archive restoration and cover the behavior with backend and frontend regressions.
Remove stale project-move metadata after a successful history clear while holding the session write lock. Add a move, clear, new-message, and resend regression test to ensure future replay remains available.
feat(session): support moving tasks between projects
fix(cli): rebuild stale WebUI assets on restart
chore: stop tracking docs
fix/soc dashboard metrics
…rd-api feat: add HTTP EDR login and dashboard API collection
feat(webui): add unified composer resource picker
…rd-api fix: diagnose EDR HTTP login failures
…rd-api Codex/edr http login dashboard api
This reverts commit 16998a8.
…rd-api Codex/edr http login dashboard api
chore: bump version to v2026.7.29
duguwanglong
self-requested a review
July 29, 2026 07:41
duguwanglong
approved these changes
Jul 29, 2026
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.
No description provided.