Commit Graph
1138 Commits
Author SHA1 Message Date
Qiu Yuzhou 2c4343a9aa docs: refresh README features 2026-10-28 20:02:29 +08:00
Qiu Yuzhou eca913f2ab style: emphasize system proxy action buttons 2026-10-28 19:05:56 +08:00
Qiu Yuzhou 3e3749e3a6 feat: show runtime status dots in menu bar 2026-10-28 18:56:07 +08:00
Qiu Yuzhou b1b9fcfd37 fix(sip008): emit UUID identifiers in lowercase 2026-10-28 18:28:58 +08:00
Qiu Yuzhou 9ccee1fc53 refactor(servers): simplify latency details 2026-10-27 01:19:35 +08:00
Qiu Yuzhou e9c13c97b1 feat: add About entry to status menu 2026-10-26 19:58:55 +08:00
Qiu Yuzhou 923f004527 feat: add third-party components and licenses window 2026-10-26 19:53:38 +08:00
Qiu Yuzhou 35c74d40c5 feat: bundle offline dependency provenance and license metadata 2026-10-26 19:06:38 +08:00
Qiu Yuzhou 2857da3ccd chore(vendor): consolidate transitive license notices 2026-10-26 17:35:52 +08:00
Qiu Yuzhou 3d9aac6bfb chore(gitignore): ignore .omx 2026-10-26 16:46:08 +08:00
Qiu Yuzhou e8aaf867dd fix(plugin): align v2ray-plugin version 2026-10-26 02:22:19 +08:00
Qiu Yuzhou 8d1c1260ee fix(l10n): use natural Chinese rule preset label 2026-10-26 02:12:53 +08:00
Qiu Yuzhou 47206c9d4c test(plugin): verify argument behavior across overrides and activation 2026-10-26 01:21:04 +08:00
Qiu Yuzhou 56bae991d1 docs: clarify subscription extension protocol 2026-10-26 00:49:38 +08:00
Qiu Yuzhou a84f9c4951 feat(plugin): disable v2ray-plugin access logs v2.0.0-alpha.2 2026-10-26 00:13:35 +08:00
Qiu Yuzhou 232c2a37be chore(deps): update v2ray-plugin to v1.5.0 2026-10-26 00:05:51 +08:00
Qiu Yuzhou 3ace468e2a ci: split style, build-test, and smoke jobs 2026-10-25 23:38:19 +08:00
Qiu Yuzhou e38d333a71 build: enforce strict checks across taskfile tasks
Inline strict SwiftLint and compiler flags in lint, build, and test tasks. Remove the STRICT configuration and forwarding from validation and CI, and update development documentation.
2026-10-25 23:24:13 +08:00
Qiu Yuzhou a01be54971 fix: preserve weak release check without mutable local 2026-10-25 23:15:40 +08:00
Qiu Yuzhou cb771e67ba fix(subscription): namespace SIP008 custom date fields 2026-10-25 22:55:45 +08:00
Qiu Yuzhou 3a10b7524c refactor: consolidate subscription update execution ownership 2026-10-25 22:30:19 +08:00
Qiu Yuzhou f3ba330cf4 refactor: centralize subscription automatic update transitions 2026-10-25 22:06:39 +08:00
Qiu Yuzhou 34caebf322 feat: add GUI-scoped subscription automatic updates (#1516)
* feat: add GUI-scoped subscription automatic updates

* fix: drain newly due subscription updates during a batch

* style: use segmented subscription update pickers
2026-10-25 20:21:06 +08:00
Qiu Yuzhou 2241d3f7f9 fix(window): stop policy bouncing during launch activation
Keep regular policy while windows remain open to avoid repeated Dock registration. Share the activation retry budget across visibility events and stop permanently after exhaustion.
2026-10-25 17:50:18 +08:00
Qiu Yuzhou 0fade3a17a fix: use semantic subscription prompt style 2026-10-25 17:06:42 +08:00
Qiu Yuzhou 171e889a04 fix: align subscription sheet styling 2026-10-25 17:06:42 +08:00
Qiu Yuzhou 59ce386bad test(rules): strengthen isolation and remove redundant checks 2026-10-25 14:32:12 +08:00
Qiu Yuzhou 86909bee13 refactor(rules): centralize document commits 2026-10-25 14:32:12 +08:00
Qiu Yuzhou 06e9fddb59 test(rules): align fixtures with preset ownership
Select presets explicitly so document stores, runtime preparation,
and browsing assertions use the intended rule sources.
2026-10-25 14:32:12 +08:00
Qiu Yuzhou 32709333f5 refactor(rules): require explicit preset selection
Remove lossy default-action writes that can replace china-proxy
with gfwlist. Preserve legacy preference reads and derive the
default action from the selected preset.

Update tests to use explicit presets and verify identity,
legacy compatibility, and no-op reselection.
2026-10-25 14:32:12 +08:00
Qiu Yuzhou 168ff2e93e feat(rules): reorder presets and default to GFWList 2026-10-25 14:32:12 +08:00
Qiu Yuzhou 813ae99090 style(ui): refine picker presentation 2026-10-25 14:32:12 +08:00
Qiu Yuzhou f6abd4343e feat(rules)!: add isolated routing presets
Add Mainland China proxy routing with independent rule workspaces.
Preserve existing routing choices through equivalent preset mappings.

BREAKING CHANGE: existing custom rules and enablement settings are
not migrated. Recreate them in the appropriate preset.
2026-10-25 14:32:12 +08:00
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