Skip to content

v2026.7.29 - #645

Merged
duguwanglong merged 132 commits into
mainfrom
dev
Jul 29, 2026
Merged

v2026.7.29#645
duguwanglong merged 132 commits into
mainfrom
dev

Conversation

@stephamie7

Copy link
Copy Markdown
Contributor

No description provided.

xiami762 and others added 30 commits April 25, 2026 12:18
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
duguwanglong and others added 27 commits July 28, 2026 13:05
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
…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
…rd-api

Codex/edr http login dashboard api
@duguwanglong
duguwanglong self-requested a review July 29, 2026 07:41
@duguwanglong
duguwanglong merged commit 5a5c5a7 into main Jul 29, 2026
2 checks passed
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.

5 participants