Commit Graph
1105 Commits
Author SHA1 Message Date
Qiu Yuzhou e3d38718c0 test: make HTTP and plugin checks deterministic 2026-10-24 14:16:34 +08:00
Qiu Yuzhou 0757af988f docs: explain NG2 process architecture 2026-10-24 13:43:58 +08:00
Qiu Yuzhou 3dbc7546ed docs: add contribution guidelines 2026-10-24 13:27:12 +08:00
Qiu Yuzhou 48c1a95f8e docs: make issue tracker configuration contributor-local 2026-10-24 12:14:52 +08:00
Qiu Yuzhou 768c925a9b chore: add .gitignore for skills and include hooks.json in codex 2026-10-24 12:13:18 +08:00
Qiu Yuzhou aaa16ebf9f test(http): shorten first-byte timeout check 2026-10-24 03:35:29 +08:00
Qiu Yuzhou 5d6b8f433f test: move process lifecycle checks to smoke 2026-10-24 03:27:28 +08:00
Qiu Yuzhou 1003b904dc test(doh): remove CI timing assumptions
CI scheduling can exhaust the fallback budget or exceed the elapsed-time
assertion. Separate record filtering and control deadline delivery so
tests verify fallback and request cancellation directly.
2026-10-24 03:14:03 +08:00
Qiu Yuzhou 2e5c159d51 docs: streamline agent guidance in English 2026-10-24 02:56:36 +08:00
Qiu Yuzhou 2365befbfe ci: run smoke tests and retain failure evidence 2026-10-24 02:51:51 +08:00
Qiu Yuzhou b7648ceecd test(smoke): stop on missing deployment receipt 2026-10-24 02:51:39 +08:00
Qiu Yuzhou ca9215099b fix(tests): restore strict test compilation 2026-10-24 02:51:27 +08:00
Qiu Yuzhou 366bb43711 test(agent): replace timed reload integration test 2026-10-24 02:51:15 +08:00
Qiu Yuzhou c708cd8d19 feat(ui): debounce transient status rows via shared display gate
The home run-control card and the menu-bar status card render the agent
and system-proxy status rows straight from snapshot replacements, so fast
operations (e.g. proxy mode switches) flash transient states like
"applying" before settling.

Add a presentation-layer debounce shared by both surfaces:

- TransientDelayGate: per-stream gate where stable values display
  immediately, transient values (starting/applying/repairing) display
  after 400 ms and are dropped when superseded, and displayed transients
  are held for at least 400 ms.
- StatusDisplayModel: app-level shared model deriving agent and
  system-proxy payloads (row + detail + hint) from workflow snapshots
  through two independent gates; domain facts keep their cadence.
- Wire the model through the composition root into RuntimeControlCard
  and StatusCardView; toggles, approval actions, the difference view and
  target/mode rows keep reading the raw snapshot.
2026-10-24 02:22:39 +08:00
Qiu Yuzhou 2fdcb5ab93 refactor(test): drop source-scanning openWindow guard 2026-10-24 00:50:07 +08:00
Qiu Yuzhou 1262d17d61 feat(agent): omit sslocal log timestamps 2026-10-24 00:13:58 +08:00
Qiu Yuzhou 4845cbf673 fix(logging): detect upstream levels case-insensitively 2026-10-23 23:54:54 +08:00
Qiu Yuzhou c602ca334a feat(menu): add diagnostics window entry 2026-10-23 19:43:25 +08:00
Qiu Yuzhou e88eb335b8 refactor(diagnostics): remove status cards 2026-10-23 19:39:53 +08:00
Qiu Yuzhou c3a5cccb09 feat(home): add runtime status dots 2026-10-23 19:31:30 +08:00
Qiu Yuzhou d3faf610c1 feat(diagnostics): add selectable log table 2026-10-23 19:25:33 +08:00
Qiu Yuzhou 3a6225e9a6 docs: clarify prerequisites and bundled plugins 2026-10-23 16:23:32 +08:00
Qiu Yuzhou 888d184c69 ci: enforce strict compiler warnings 2026-10-23 05:42:37 +08:00
Qiu Yuzhou 71d333090e chore: suppress intentional classic keychain deprecation warnings 2026-10-23 05:36:43 +08:00
Qiu Yuzhou 69a1257430 fix: resolve non-deprecation unit test build warnings 2026-10-23 05:32:38 +08:00
Qiu Yuzhou d48a21b2c8 fix(agent): extend listener readiness deadline 2026-10-23 05:15:17 +08:00
Qiu Yuzhou d3f01ce708 ci: cache Homebrew tool downloads 2026-10-23 05:15:06 +08:00
Qiu Yuzhou b5aa827958 ci: stream lint, test, and build logs 2026-10-23 05:09:51 +08:00
Qiu Yuzhou fd1ffd2433 ci: omit xcresult from validation artifact 2026-10-23 03:49:28 +08:00
Qiu Yuzhou 09e4d2e097 fix(tests): avoid blocking async test workers 2026-10-23 03:46:19 +08:00
Qiu Yuzhou 17848b6fde ci: add NG2 validation workflow and format checks 2026-10-23 03:05:14 +08:00
Qiu Yuzhou 3baee572ac fix: restore compilation after file extraction 2026-10-23 02:50:13 +08:00
Qiu Yuzhou a3d53e5813 chore(hooks): adopt pre-commit framework 2026-10-23 01:27:32 +08:00
Qiu Yuzhou b6b9349d64 style: resolve SwiftLint violations 2026-10-23 01:10:40 +08:00
Qiu Yuzhou a7ad08b5b1 docs: update project status in readmes 2026-10-23 00:11:24 +08:00
Qiu Yuzhou ad9942d4d4 docs: update release download links 2026-10-22 21:16:14 +08:00
Qiu Yuzhou c76832b5e8 feat(release): add Taskfile publish workflow v2.0.0-alpha.1 2026-10-22 20:49:48 +08:00
Qiu Yuzhou d940e4ef94 docs: add bilingual end-user readmes 2026-10-22 19:18:56 +08:00
Qiu Yuzhou 51667f4839 docs: rename Chinese docs suffix to zh 2026-10-22 17:24:49 +08:00
Qiu Yuzhou faf31a2a78 docs: add English documentation versions 2026-10-22 17:21:17 +08:00
Qiu Yuzhou ff93e6eeeb docs: add SIP-008 subscription provider guide 2026-10-22 17:10:35 +08:00
Qiu Yuzhou 0028254b40 fix(packaging): reject duplicate releases before build 2026-10-22 16:35:33 +08:00
Qiu Yuzhou 0101366096 fix(signing): timestamp all Release executables 2026-10-22 16:28:27 +08:00
Qiu Yuzhou 48aa04b0a2 chore: add .env file to .gitignore 2026-10-22 16:17:42 +08:00
Qiu Yuzhou 7b7d572fb5 fix(packaging): require explicit release versions 2026-10-22 16:16:05 +08:00
Qiu Yuzhou 4426d0b331 fix(packaging): support prerelease version labels 2026-10-22 15:02:15 +08:00
Qiu Yuzhou 9cca9f9a0a build: add signed and notarized DMG packaging 2026-10-22 14:32:47 +08:00
Qiu Yuzhou 17c9f15928 fix(window): bring presented window reliably to front at launch
Keyboard-launcher launches (Raycast/Spotlight Enter) left the
LSUIElement app unforegrounded with a missing Dock icon until Mission
Control forced a refresh. Investigation across real-machine rounds
(recorded in the ADR-0017 supplements) pinned three cooperating causes:

- The launch activation retry never started at launch: the workspace
  window's participation events (anchor attach / occlusion / key) could
  all miss the launch moment when content installed before the window
  became visible and the visibility notification fired before the
  anchor attached. A deferred visibility rescan plus re-armable chain
  (until truly settled) close this gap.
- NSApp.isActive can report an activation illusion while the menu bar
  still belongs to the previous frontmost app, so the settle check now
  requires both isActive and menu bar ownership.
- A same-turn accessory->regular bounce is coalesced away by the
  system; forced activation is a three-hop sequence with real settle
  delays (accessory -> 0.1s -> regular -> 0.15s -> activate), which
  re-registers the app with WindowServer/Dock and reclaims the menu
  bar. Each acting attempt also re-asserts makeKeyAndOrderFront and
  orderFrontRegardless as a visible-layer fallback.

Diagnostics: launchActivationRetry and windowAnchorAttached events
(unified-log category "window") record per-attempt facts (activation,
local policy, frontmost app, menu bar owner, space, window visibility);
user-environment facts stay out of shared diagnostic reports.
2026-10-22 03:24:14 +08:00
Qiu Yuzhou f847c01e70 chore(deps): update v2ray-plugin to v1.4.0 2026-10-22 00:49:56 +08:00
Qiu Yuzhou 7a01167719 test: clean up Keychain test identities 2026-10-21 19:34:18 +08:00