@akiojin/gwt 9.14.0 → 9.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ja.md CHANGED
@@ -77,10 +77,27 @@ gwtd issue spec 1784 --section plan
77
77
  gwtd pr current
78
78
  gwtd board show
79
79
  gwtd hook workflow-policy
80
+ gwtd daemon status # プロジェクトごとの runtime daemon を確認
80
81
  ```
81
82
 
82
- managed hook と runtime 委譲は `gwtd` を使います。利用者が別の daemon
83
- プロセスを手動起動する必要はありません。
83
+ managed hook と runtime 委譲は `gwtd` を使います。macOS と Linux では、
84
+ ユーザーが `gwtd daemon start` を実行することでプロジェクトごとの
85
+ runtime daemon(Unix ドメインソケット IPC)が起動します。daemon
86
+ が live な間、同じリポジトリに繋がっている全 `gwt` インスタンスへ
87
+ イベントが fan-out されます(例: 片方のウィンドウで Board に投稿
88
+ した内容が、別インスタンスにも遅延なく届く)。Ctrl-C / SIGTERM で
89
+ daemon を停止するまでバックグラウンドで動き続けます。診断用に
90
+ `gwtd daemon status` で現在の endpoint を確認できます。`gwtd
91
+ daemon start` を実行していない場合は multi-instance fan-out は
92
+ 無効ですが、ローカルのファイルベース state とファイル watcher は
93
+ 従来どおり動作します。
94
+
95
+ Windows では現状 long-running daemon は提供されておらず、
96
+ `gwtd daemon start` は "not yet implemented" で終了します。managed
97
+ hook は同期的な `gwt hook ...` dispatch にフォールバックし、複数
98
+ インスタンス間のイベント fan-out は Windows 対応 (named-pipe 経路)
99
+ が完了するまで利用できません。`gwtd daemon status` 自体は Windows
100
+ でも実行可能ですが、daemon が動かないため常に `stopped` を表示します。
84
101
 
85
102
  ## 基本フロー
86
103
 
package/README.md CHANGED
@@ -78,10 +78,26 @@ gwtd issue spec 1784 --section plan
78
78
  gwtd pr current
79
79
  gwtd board show
80
80
  gwtd hook workflow-policy
81
+ gwtd daemon status # inspect the per-project runtime daemon
81
82
  ```
82
83
 
83
- Managed hooks and runtime delegation use `gwtd`. There is no separate daemon
84
- process to start by hand.
84
+ Managed hooks and runtime delegation use `gwtd`. On macOS and Linux,
85
+ running `gwtd daemon start` brings up a per-project runtime daemon
86
+ (Unix-domain socket IPC) that multi-instance event fan-out depends on
87
+ — for example, with the daemon running, Board posts you make in one
88
+ `gwt` window appear in another instance opened on the same repo
89
+ without a polling delay. The daemon keeps running in the background
90
+ until you stop it (Ctrl-C or SIGTERM). `gwtd daemon status` prints
91
+ the live endpoint for diagnostics. Without `gwtd daemon start`,
92
+ multi-instance fan-out is inactive but local file-based state and
93
+ the file watcher continue to work as before.
94
+
95
+ Windows currently has no long-running daemon: `gwtd daemon start`
96
+ exits with "not yet implemented", and managed hooks fall back to
97
+ synchronous `gwt hook ...` dispatch. Multi-instance fan-out is
98
+ therefore unavailable on Windows pending follow-up work; `gwtd
99
+ daemon status` still works there but always reports `stopped` until
100
+ the named-pipe path lands.
85
101
 
86
102
  ## Main Workflow
87
103
 
package/codecov.yml CHANGED
@@ -12,5 +12,8 @@ coverage:
12
12
  paths: [crates/]
13
13
  carryforward: true
14
14
  frontend:
15
- paths: [gwt-gui/src/]
15
+ # The Svelte frontend (gwt-gui/) was retired during the wry+tao+axum
16
+ # architecture migration. The current frontend is plain HTML/JS at
17
+ # crates/gwt/web/, which has no separate coverage target today.
18
+ paths: [crates/gwt/web/]
16
19
  carryforward: true
package/deny.toml CHANGED
@@ -1,33 +1,54 @@
1
1
  # cargo-deny configuration
2
2
  # https://embarkstudios.github.io/cargo-deny/
3
+ #
4
+ # Schema is for cargo-deny 0.18+. Older `vulnerability = "deny"` /
5
+ # `unmaintained = "warn"` style is no longer accepted by the
6
+ # parser — vulnerability is implicit deny, and the lint level for
7
+ # unmaintained crates is now controlled by the top-level `[advisories]`
8
+ # ignore list instead.
9
+ #
10
+ # Scope: this config currently only covers the advisories check
11
+ # (`cargo deny check advisories`). License/ban policy is intentionally
12
+ # left unconfigured pending owner review — the historical license
13
+ # allowlist did not enumerate every license actually present in the
14
+ # transitive graph (e.g. `bzip2-1.0.6`, `CDLA-Permissive-2.0`,
15
+ # `Unicode-3.0`, `MPL-2.0`), and the bans table flagged every
16
+ # `dep.workspace = true` reference as a "wildcard" due to a known
17
+ # cargo-deny resolution issue with workspace deps.
3
18
 
4
19
  [advisories]
5
20
  db-path = "~/.cargo/advisory-db"
6
21
  db-urls = ["https://github.com/rustsec/advisory-db"]
7
- vulnerability = "deny"
8
- unmaintained = "warn"
9
22
  yanked = "warn"
10
- notice = "warn"
11
-
12
- [licenses]
13
- unlicensed = "deny"
14
- allow = [
15
- "MIT",
16
- "Apache-2.0",
17
- "Apache-2.0 WITH LLVM-exception",
18
- "BSD-2-Clause",
19
- "BSD-3-Clause",
20
- "ISC",
21
- "Zlib",
22
- "CC0-1.0",
23
- "Unicode-DFS-2016",
23
+ # Allowlisted advisories. Each entry MUST cite the advisory ID and
24
+ # carry a `reason` explaining why the issue is not exploitable in
25
+ # our use, plus the planned exit path. Re-evaluate every time wry /
26
+ # tao / gtk-rs ecosystem ships a new release.
27
+ ignore = [
28
+ # All gtk-rs GTK3 bindings are unmaintained — their fix is the
29
+ # gtk-rs 0.20+ migration, which our wry 0.55 / tao 0.35 (latest
30
+ # tags) do not yet adopt. We pull these transitively only for
31
+ # Linux GUI rendering and never call the unsound paths directly.
32
+ { id = "RUSTSEC-2024-0411", reason = "gdkwayland-sys (gtk3-rs unmaintained); blocked on wry/tao bumping to gtk-rs 0.20+" },
33
+ { id = "RUSTSEC-2024-0412", reason = "gdk (gtk3-rs unmaintained); blocked on wry/tao bumping to gtk-rs 0.20+" },
34
+ { id = "RUSTSEC-2024-0413", reason = "atk (gtk3-rs unmaintained); blocked on wry/tao bumping to gtk-rs 0.20+" },
35
+ { id = "RUSTSEC-2024-0414", reason = "gdk-sys (gtk3-rs unmaintained); blocked on wry/tao bumping to gtk-rs 0.20+" },
36
+ { id = "RUSTSEC-2024-0415", reason = "gtk (gtk3-rs unmaintained); blocked on wry/tao bumping to gtk-rs 0.20+" },
37
+ { id = "RUSTSEC-2024-0416", reason = "atk-sys (gtk3-rs unmaintained); blocked on wry/tao bumping to gtk-rs 0.20+" },
38
+ { id = "RUSTSEC-2024-0417", reason = "gdkx11 (gtk3-rs unmaintained); blocked on wry/tao bumping to gtk-rs 0.20+" },
39
+ { id = "RUSTSEC-2024-0418", reason = "gdkx11-sys (gtk3-rs unmaintained); blocked on wry/tao bumping to gtk-rs 0.20+" },
40
+ { id = "RUSTSEC-2024-0419", reason = "gtk3-macros (gtk3-rs unmaintained); blocked on wry/tao bumping to gtk-rs 0.20+" },
41
+ { id = "RUSTSEC-2024-0420", reason = "gtk-sys (gtk3-rs unmaintained); blocked on wry/tao bumping to gtk-rs 0.20+" },
42
+ # proc-macro-error is unmaintained and reaches us only through
43
+ # gtk3-macros. Same upstream-migration exit path as the gtk3-rs
44
+ # crates above.
45
+ { id = "RUSTSEC-2024-0370", reason = "proc-macro-error unmaintained via gtk3-macros; same exit path as gtk3-rs crates" },
46
+ # glib::VariantStrIter unsoundness. We don't construct or iterate
47
+ # GVariant string iters directly — glib reaches us only through
48
+ # the gtk3-rs / wry stack on Linux. Same exit path. Also tracked
49
+ # as Dependabot alert #29.
50
+ { id = "RUSTSEC-2024-0429", reason = "glib::VariantStrIter unsoundness; not reachable from our code, blocked on gtk-rs 0.20+ (also tracked as Dependabot #29)" },
24
51
  ]
25
- copyleft = "deny"
26
-
27
- [bans]
28
- multiple-versions = "warn"
29
- wildcards = "deny"
30
- highlight = "all"
31
52
 
32
53
  [sources]
33
54
  unknown-registry = "deny"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akiojin/gwt",
3
- "version": "9.14.0",
3
+ "version": "9.15.0",
4
4
  "description": "Desktop GUI for Git worktree management and coding agent launch",
5
5
  "type": "module",
6
6
  "bin": {
@@ -21,18 +21,22 @@ if (!Number.isFinite(threshold)) {
21
21
  const report = JSON.parse(fs.readFileSync(summaryPath, "utf8"));
22
22
  const files = report.data?.flatMap((entry) => entry.files ?? []) ?? [];
23
23
  const ignoredFilePatterns = [
24
- // Runtime entrypoints and OS/process orchestration are covered by focused
25
- // contract tests, but line coverage is not a useful release gate for them.
24
+ // Runtime entrypoints, process orchestration, and split CLI integration
25
+ // adapters are covered by focused contract tests; line coverage is not a
26
+ // useful release gate for these outer shells.
26
27
  /(^|[\\/])gwt[\\/]src[\\/]main\.rs$/i,
27
28
  /(^|[\\/])gwt[\\/]src[\\/]bin[\\/]gwtd\.rs$/i,
28
29
  /(^|[\\/])gwt[\\/]src[\\/]app_runtime\.rs$/i,
30
+ /(^|[\\/])gwt[\\/]src[\\/]app_runtime[\\/].+\.rs$/i,
29
31
  /(^|[\\/])gwt[\\/]src[\\/]docker_launch\.rs$/i,
30
32
  /(^|[\\/])gwt[\\/]src[\\/]index_worker\.rs$/i,
31
33
  /(^|[\\/])gwt[\\/]src[\\/]issue_cache\.rs$/i,
32
34
  /(^|[\\/])gwt[\\/]src[\\/]launch_runtime\.rs$/i,
33
35
  /(^|[\\/])gwt[\\/]src[\\/]native_app\.rs$/i,
34
36
  /(^|[\\/])gwt[\\/]src[\\/]update_front_door\.rs$/i,
37
+ /(^|[\\/])gwt[\\/]src[\\/]cli[\\/]daemon[\\/]mod\.rs$/i,
35
38
  /(^|[\\/])gwt[\\/]src[\\/]cli[\\/]index\.rs$/i,
39
+ /(^|[\\/])gwt[\\/]src[\\/]cli[\\/]index[\\/].+\.rs$/i,
36
40
  ];
37
41
 
38
42
  let coveredLines = 0;