Commit Graph
14 Commits
Author SHA1 Message Date
sorrow404null 5cd97debdc chore: verify Gitea WeCom webhook for Haocode 2026-09-18 17:07:18 +08:00
sorrow404null 5ae660574e chore: re-submit 2026-09-18 changes to verify webhook
- feat(config): add atomic configuration persistence
- fix(ui): repair chat and model settings rendering
- fix(capture): map selections across high-DPI displays
- fix(webview2): scale native bounds for fractional DPI
- chore: remove test scripts from distribution
2026-09-18 16:13:05 +08:00
sorrow404null bc0b92bcdc docs: add agent handoff docs, verification guide, and repair evidence
Add docs/agent-handoff (backlog, execution state, verification, platform plan, per-task evidence), repo AGENTS.md, and architecture notes updated for the dual-renderer design.
2026-09-17 16:40:06 +08:00
sorrow404null 75b2ec4123 test: add cross-platform test aggregator (run_all)
Subprocess-based runner with logic/offscreen groups: per-entry temp dirs, explicit timeouts, dependency/platform SKIP gates, UTF-8 safe output, and an exit code that reflects failures without blocking on a single crash or timeout.
2026-09-17 16:40:06 +08:00
sorrow404null acbf73f2c3 test: update smoke and regression suites for dual-renderer paths
Offscreen harnesses now resize+show before load, use per-instance webengine profile dirs and explicit exit codes; compaction and bash stream suites follow the renamed internals.
2026-09-17 16:40:06 +08:00
sorrow404null 0a62877cde feat(ui): cross-platform screenshot hotkey and portal-based capture
Windows keeps the legacy path; Linux X11 uses a native XGrabKey hotkey (ctypes libX11) with native capture; Wayland captures through xdg-desktop-portal and degrades gracefully with explicit capability-unavailable logs when the portal/protocol is missing.
2026-09-17 16:40:05 +08:00
sorrow404null 95024785ae fix(ui): main window fixes - event filter, bash layer order, scrollbar styles, rename overlay
- merge duplicated eventFilter paths and gate send-by-Enter (P0-02)
- display bash task layers in reverse start-time order while reusing
  layer instances and preserving scroll/expand state (P2-01)
- add scoped 8px scrollbars with matching corner for the bash code box
  (P2-02)
- rewrite RenameOverlay as a top-level transparent tool window so it
  can cover the native WebView2 child HWND (P2-03)
2026-09-17 16:40:04 +08:00
sorrow404null ef00f64435 feat(web): incremental render-window batch rendering engine
Add render_window.js: Python-driven incremental pagination with id+chainIndex state, anchor restore, batch guard and streaming auto-detect; wired through chat_bridge and the page shell.
2026-09-17 16:40:04 +08:00
sorrow404null 156f94e840 fix(webview2): fall back to byte[] assembly load and guard instance lock
Assembly.LoadFrom can fail on volumes .NET misclassifies as remote; fall back to Assembly.Load(byte[]). Broaden exception handling to BaseException for pythonnet, and skip WebView2 warmup/taskkill when the instance lock is held by another process.
2026-09-17 16:40:03 +08:00
sorrow404null 554be4f92b feat(renderer): platform-gated dual renderer backend with isolated QtWebEngine profiles
Windows prefers WebView2, Linux uses QtWebEngine only; pythonnet deps are win32-marked. Each QtWebEngine instance gets its own profile under data/webengine, and Chromium flags are sanitized before QApplication (--no-sandbox accepted only for explicit root/container use).
2026-09-17 16:40:03 +08:00
sorrow404null 342e53df02 fix(agent): make compaction settings dataclass compatible with Python 3.11+
Use field(default_factory=...) instead of a mutable-default-class instance, which Python 3.11+ dataclasses reject at import time.
2026-09-17 16:40:02 +08:00
sorrow404null 60200260ab feat(agent): unified cross-platform shell execution contract (cmd/bash)
Windows runs 'cmd.exe /d /s /c <command>' as a string command line; Linux uses ['/bin/bash', '-lc', command]. Removes implicit shell=True behavior and aligns the agent system prompt per platform.
2026-09-17 16:40:02 +08:00
sorrow404null ce56c77023 feat(config): isolate config and database via HAOCODE_CONFIG_FILE override
core/config_paths.py resolves a single override so tests and multiple instances can run against isolated temp config/db without touching user data.
2026-09-17 16:40:02 +08:00
sorrow404null a7412824e0 chore: import original project baseline
Import the pre-repair source tree as the history baseline.
Runtime data (data/), virtualenvs, bytecode caches and logs are
gitignored so local secrets and user state stay out of the repo.
2026-09-17 16:40:01 +08:00