@a9n-shoji/rvw 0.2.5 → 0.3.1

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.
Files changed (104) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +19 -7
  3. package/dist/cli-THIRD_PARTY_NOTICES.txt +703 -0
  4. package/dist/cli.mjs +15188 -1533
  5. package/dist/cli.mjs.map +4 -4
  6. package/dist/web/THIRD_PARTY_NOTICES.txt +29 -0
  7. package/dist/web/assets/DocumentViewer-C7UMfzam.js +1561 -0
  8. package/dist/web/assets/MarkdownTable-Dg8UkuDK.js +15 -0
  9. package/dist/web/assets/WalkthroughViewer-BvS7o2T0.js +42 -0
  10. package/dist/web/assets/{abnfDiagram-N423BO3Z-gOmziSzZ.js → abnfDiagram-N423BO3Z-C2idvncb.js} +1 -1
  11. package/dist/web/assets/architecture-TIHT7OUA-C7fqtQhb.js +1 -0
  12. package/dist/web/assets/{architectureDiagram-T3A2C74G-C9sPb-OU.js → architectureDiagram-T3A2C74G-Cdm5LY27.js} +1 -1
  13. package/dist/web/assets/{blockDiagram-VBNYF7ZC-CxqI40sc.js → blockDiagram-VBNYF7ZC-C77pTjUb.js} +1 -1
  14. package/dist/web/assets/{c4Diagram-5PPSVZJV-BAK8Z0Vr.js → c4Diagram-5PPSVZJV-DGHS-vVy.js} +1 -1
  15. package/dist/web/assets/channel-DwAsM5u1.js +1 -0
  16. package/dist/web/assets/{chunk-2GRJ4B5K-oKAARewZ.js → chunk-2GRJ4B5K-DeUANCIz.js} +1 -1
  17. package/dist/web/assets/{chunk-4I5QYGJK-BAAbxidn.js → chunk-4I5QYGJK-CMh2oglh.js} +1 -1
  18. package/dist/web/assets/{chunk-5RXB4S5H-DQ-Dk-To.js → chunk-5RXB4S5H-DKTEiVyP.js} +1 -1
  19. package/dist/web/assets/{chunk-6Q2QTUOP-B64WcpmV.js → chunk-6Q2QTUOP-CcgtbZZN.js} +1 -1
  20. package/dist/web/assets/{chunk-7Z6QIM7H-DiUNIjSC.js → chunk-7Z6QIM7H-ktwy8mS7.js} +1 -1
  21. package/dist/web/assets/{chunk-GF5L2VYU-rbtkA8ZE.js → chunk-GF5L2VYU-C3sn41mA.js} +1 -1
  22. package/dist/web/assets/{chunk-I66GZJ75-BywUmQY9.js → chunk-I66GZJ75-PkPnHXQJ.js} +1 -1
  23. package/dist/web/assets/{chunk-JQJVKLGR-BW097h_E.js → chunk-JQJVKLGR-C7Y_Zm_L.js} +1 -1
  24. package/dist/web/assets/{chunk-KBJHAD2P-C1kXPXRi.js → chunk-KBJHAD2P-CPGb1KEF.js} +1 -1
  25. package/dist/web/assets/{chunk-NSK5VX7P-kej84W5N.js → chunk-NSK5VX7P-CiYrTyo0.js} +1 -1
  26. package/dist/web/assets/{chunk-QR6OTTB3-BOzVZt4h.js → chunk-QR6OTTB3-Cxc4CBz3.js} +1 -1
  27. package/dist/web/assets/{chunk-UBXNYLIW-CJsGqSLH.js → chunk-UBXNYLIW-Cu8_QUds.js} +1 -1
  28. package/dist/web/assets/{chunk-W5SLKNZC-BcRL2jRx.js → chunk-W5SLKNZC-xEW_C207.js} +1 -1
  29. package/dist/web/assets/{chunk-WRU74C26-BDqViURG.js → chunk-WRU74C26-lur1bNcP.js} +1 -1
  30. package/dist/web/assets/classDiagram-JCYQIIEL-ZOHoHid8.js +1 -0
  31. package/dist/web/assets/classDiagram-v2-OCEON4UE-ZOHoHid8.js +1 -0
  32. package/dist/web/assets/{cynefin-VYW2F7L2-Dugz8jnV.js → cynefin-VYW2F7L2-D8ja_01T.js} +1 -1
  33. package/dist/web/assets/{cynefinDiagram-MW4NZA55-D-C0yr-E.js → cynefinDiagram-MW4NZA55-DRefzYPy.js} +1 -1
  34. package/dist/web/assets/{dagre-VZM6K2ZE-Cw5E1SBZ.js → dagre-VZM6K2ZE-DzKymXhT.js} +1 -1
  35. package/dist/web/assets/{diagram-7IWD3JNH-Sf7kJZ8B.js → diagram-7IWD3JNH-B1TUtKVL.js} +1 -1
  36. package/dist/web/assets/{diagram-B4RE2ZJO-yCiqe-d4.js → diagram-B4RE2ZJO-DQ7yWH6C.js} +1 -1
  37. package/dist/web/assets/{diagram-LBJQPF4R-GOlna-Ju.js → diagram-LBJQPF4R-h5ld83dF.js} +1 -1
  38. package/dist/web/assets/{diagram-Q27KOJAE-D6EGrNVJ.js → diagram-Q27KOJAE-CQyWB8j1.js} +1 -1
  39. package/dist/web/assets/{diagram-UB23O5K3-DdPGDYZ-.js → diagram-UB23O5K3-SmscW8SS.js} +1 -1
  40. package/dist/web/assets/{ebnfDiagram-BXEA7PRR-Cm7S99yh.js → ebnfDiagram-BXEA7PRR-B6Uv9Fga.js} +1 -1
  41. package/dist/web/assets/{erDiagram-JOGREHBK-BaGSsO0U.js → erDiagram-JOGREHBK-DlhKVbK5.js} +1 -1
  42. package/dist/web/assets/eventmodeling-45OFAUF4-hg8ilqKd.js +1 -0
  43. package/dist/web/assets/flowDiagram-UKHOOZJN-DlU6Mvry.js +1 -0
  44. package/dist/web/assets/{ganttDiagram-PKOTCBZU-Dcim-2qK.js → ganttDiagram-PKOTCBZU-Buwx6kT-.js} +1 -1
  45. package/dist/web/assets/{gitGraph-TEB2WS4Q-BhPbNzbD.js → gitGraph-TEB2WS4Q-DcKoIebc.js} +1 -1
  46. package/dist/web/assets/{gitGraphDiagram-DS77QQ5N-5n4OZuxI.js → gitGraphDiagram-DS77QQ5N-6hyOioar.js} +1 -1
  47. package/dist/web/assets/index-CLhFOtpL.css +1 -0
  48. package/dist/web/assets/index-DYmdeW10.js +384 -0
  49. package/dist/web/assets/{info-DKCQHKI2-B18FoJmv.js → info-DKCQHKI2-BTrntoWR.js} +1 -1
  50. package/dist/web/assets/{infoDiagram-6WML65LV-Cjd9H30j.js → infoDiagram-6WML65LV-C9vEklZc.js} +1 -1
  51. package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-B2HYwzk0.js → ishikawaDiagram-WSZJBQD7-u7_elIzl.js} +1 -1
  52. package/dist/web/assets/{journeyDiagram-NVQOT4AX-CIIOlEIS.js → journeyDiagram-NVQOT4AX-C2jFr8oy.js} +1 -1
  53. package/dist/web/assets/{kanban-definition-27J2QSJJ-DpD98gCE.js → kanban-definition-27J2QSJJ-D-7UHdx4.js} +1 -1
  54. package/dist/web/assets/{line-1uMtgP84.js → line-CQAM_baC.js} +1 -1
  55. package/dist/web/assets/{mermaid-parser.core-CsoLrwW_.js → mermaid-parser.core-D2z7ZOcE.js} +3 -3
  56. package/dist/web/assets/{mermaid.core-DLvBOZ4b.js → mermaid.core-d5lQFkUm.js} +4 -4
  57. package/dist/web/assets/{mindmap-definition-FAOFIHXS-aX8l0lZ8.js → mindmap-definition-FAOFIHXS-tXNzs65p.js} +1 -1
  58. package/dist/web/assets/{packet-7NZHBO7P-C2mk4cRM.js → packet-7NZHBO7P-Ck4WifuO.js} +1 -1
  59. package/dist/web/assets/{pegDiagram-VL7TDLO6-DJxCPsMd.js → pegDiagram-VL7TDLO6-CI2wa80w.js} +1 -1
  60. package/dist/web/assets/{pie-RZYD4A2V-ZvoBUm4W.js → pie-RZYD4A2V-HqKGJX8R.js} +1 -1
  61. package/dist/web/assets/{pieDiagram-7S7Q4E2Y-B_Zxlt9c.js → pieDiagram-7S7Q4E2Y-DiANc3xh.js} +1 -1
  62. package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-BdQdNvfJ.js → quadrantDiagram-CIZ2JOQS-Ck1WL56V.js} +1 -1
  63. package/dist/web/assets/{radar-I7S5WNFK-C50TztIy.js → radar-I7S5WNFK-BGZ0ArkI.js} +1 -1
  64. package/dist/web/assets/{railroad-3IZDKUUU-C_CK0C2Y.js → railroad-3IZDKUUU-CG80mKUm.js} +1 -1
  65. package/dist/web/assets/railroad-abnf-AHOZXSZD-siyTaNqs.js +1 -0
  66. package/dist/web/assets/railroad-ebnf-EBAXGLYW-CXsuiW_x.js +1 -0
  67. package/dist/web/assets/railroad-peg-LSFZ7HO6-2Zrn2h_2.js +1 -0
  68. package/dist/web/assets/{railroadDiagram-AXF67PYL-CZ1vA-S_.js → railroadDiagram-AXF67PYL-DqLD6_Ag.js} +1 -1
  69. package/dist/web/assets/{requirementDiagram-LRYGKXZP-BDp4_zQI.js → requirementDiagram-LRYGKXZP-C-GtPNYS.js} +1 -1
  70. package/dist/web/assets/{sankeyDiagram-W5VNT64P-CQQl9FYv.js → sankeyDiagram-W5VNT64P-DiFurH1m.js} +1 -1
  71. package/dist/web/assets/{sequenceDiagram-SI44F4Z6-BGANFekR.js → sequenceDiagram-SI44F4Z6-BBJvY7He.js} +1 -1
  72. package/dist/web/assets/{stateDiagram-OKZ733FA-DbYseVuv.js → stateDiagram-OKZ733FA-CJJJoWYF.js} +1 -1
  73. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-Cwihtgsj.js +1 -0
  74. package/dist/web/assets/{swimlanes-SLNWSIFB-Db9iJuW8.js → swimlanes-SLNWSIFB-DDD-kqF3.js} +1 -1
  75. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CthM5wkr.js +8 -0
  76. package/dist/web/assets/{timeline-definition-Z64GVDOM-Ioz0wd0X.js → timeline-definition-Z64GVDOM-CPtTrFUL.js} +1 -1
  77. package/dist/web/assets/{treeView-QDETBFTQ-clJ74kxF.js → treeView-QDETBFTQ-CXpMsauD.js} +1 -1
  78. package/dist/web/assets/{treemap-6X3UGDF4-Dr2iSopM.js → treemap-6X3UGDF4-DODWUMCI.js} +1 -1
  79. package/dist/web/assets/{vennDiagram-T6HMQDX7-Dm_4JT58.js → vennDiagram-T6HMQDX7-BjWQrcS4.js} +1 -1
  80. package/dist/web/assets/{wardley-OPB4EBWU-BijQqUc8.js → wardley-OPB4EBWU-HV6ftDhi.js} +1 -1
  81. package/dist/web/assets/{wardleyDiagram-T6FBY63Y-C4x0wEqS.js → wardleyDiagram-T6FBY63Y-DHLZ0oPi.js} +1 -1
  82. package/dist/web/assets/{xychartDiagram-ELKLHX3M-BGoEonWo.js → xychartDiagram-ELKLHX3M-CEJ_HkG9.js} +1 -1
  83. package/dist/web/index.html +2 -2
  84. package/migrations/012_pull_request_list.sql +5 -0
  85. package/migrations/013_pull_request_github_status.sql +5 -0
  86. package/package.json +4 -1
  87. package/skills/rvw-walkthrough/SKILL.md +6 -4
  88. package/skills/rvw-walkthrough/references/walkthrough-authoring.md +52 -0
  89. package/dist/web/assets/DocumentViewer-C2e6Mgta.js +0 -1569
  90. package/dist/web/assets/MarkdownTable-bGEPkcFA.js +0 -7
  91. package/dist/web/assets/WalkthroughViewer-TxeLcTE2.js +0 -1
  92. package/dist/web/assets/architecture-TIHT7OUA-B9tjggXM.js +0 -1
  93. package/dist/web/assets/channel-BD2FosIt.js +0 -1
  94. package/dist/web/assets/classDiagram-JCYQIIEL-yDkoGFrq.js +0 -1
  95. package/dist/web/assets/classDiagram-v2-OCEON4UE-yDkoGFrq.js +0 -1
  96. package/dist/web/assets/eventmodeling-45OFAUF4-CbAFmLja.js +0 -1
  97. package/dist/web/assets/flowDiagram-UKHOOZJN-Dz1a-iuK.js +0 -1
  98. package/dist/web/assets/index-BOdYI3os.css +0 -1
  99. package/dist/web/assets/index-D2MzuS4L.js +0 -384
  100. package/dist/web/assets/railroad-abnf-AHOZXSZD-DEjonoj9.js +0 -1
  101. package/dist/web/assets/railroad-ebnf-EBAXGLYW-BGY58zLm.js +0 -1
  102. package/dist/web/assets/railroad-peg-LSFZ7HO6-9byrH0Ii.js +0 -1
  103. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-CaYT-_kk.js +0 -1
  104. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CgMcCXPx.js +0 -8
package/CHANGELOG.md CHANGED
@@ -5,6 +5,45 @@
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.3.1] - 2026-08-28
9
+
10
+ ### Added
11
+
12
+ - Pull Request一覧を表示しただけではGitHubへ問い合わせず、Open、Draft、状態未取得の登録済みPRだけを
13
+ 明示的なbutton操作で一括status更新する機能
14
+
15
+ ### Changed
16
+
17
+ - 同じdatabaseを使う通常の`rvw open`は既存runtimeへPRを追加し、同じHTTP originを再利用。並行起動でも
18
+ owner lockをRuntime / HTTP serverより先に確定し、一つのdatabaseにつき一つのactive processへ限定
19
+ - 一括status更新のGitHub認証を操作ごとに一度だけ行い、最大4件並列・部分失敗許容で処理。Closed / Mergedを
20
+ 継続追跡対象から除外し、保存済みPRの累積件数ではなく現在のworking setに問い合わせ量を限定
21
+ - 一覧のPR titleを省略せず複数行で全文表示し、review画面のロゴをCmd / Ctrl / 中クリックで一覧を
22
+ 別tabに開けるnative linkへ変更
23
+
24
+ ### Fixed
25
+
26
+ - status更新によって現在のoffsetが無効になった場合、最後の有効な一覧pageへ戻して誤ったempty stateを防止
27
+ - runtime停止時にHTTP / SQLiteを閉じるまでdatabase owner lockを保持し、新旧runtimeが一時的に重複するraceを防止
28
+ - 終了猶予中の`rvw open`をpending viewer leaseで保護し、`--no-open`で再利用したruntimeをCtrl+Cまで維持
29
+ - runtime停止中に到着した`rvw open`がowner解放後にownershipを再取得できずtimeoutするhandoff raceを防止
30
+ - `viewer.open`のPR解決中はoperation reservationを維持し、解決後からbrowser接続待ちtimeoutを開始
31
+
32
+ ## [0.3.0] - 2026-08-28
33
+
34
+ ### Added
35
+
36
+ - 登録済みPull RequestをGitHub更新日時順に一覧できるworkspace入口。未解決/解決済みcomment数、
37
+ Walkthrough数、cached Open / Draft / Closed / Merged statusをofflineでも確認でき、Closed / Mergedだけを
38
+ 既定で非表示にする
39
+ - Walkthroughの`html-preview` fenced blockを、sanitized HTML / CSS / SVG、exact repository画像、theme、
40
+ source navigation、comment、Pane Findに対応したsandboxed interactive previewとして表示
41
+
42
+ ### Changed
43
+
44
+ - code referenceやcomment rangeへ移動したとき、changes viewの折りたたまれたhunkをまとめて展開し、
45
+ 長いrangeでも対象全体を表示
46
+
8
47
  ## [0.2.5] - 2026-08-26
9
48
 
10
49
  ### Added
package/README.md CHANGED
@@ -65,9 +65,19 @@ rvw open https://github.com/owner/repository/pull/123
65
65
  rvw open
66
66
  ```
67
67
 
68
- serverは`127.0.0.1`の空きportだけへbindします。通常の`rvw open`はviewerを開き、最初のtab接続を確認してから端末へ制御を返します。serverはbackgroundで動き、最後のtabを閉じると短い猶予後に停止します。リロード中や別tabが残っている間は停止しません。
69
-
70
- serverを端末に接続したままにする場合は`rvw open --foreground`を使います。ブラウザを開かずに検証する場合は`rvw open --no-open`を使います。どちらもCtrl+Cで停止します。一度登録したPRは、完全URLまたは全登録PRで一意な番号を指定すればrepository外のdirectoryからも開けます。
68
+ serverは`127.0.0.1`の空きportだけへbindします。同じdatabaseで既にrvwが動いていれば、通常の
69
+ `rvw open`はそのruntimeへPRを追加し、同じoriginで新しいtabを開きます。二つ目のserverやdatabase接続は
70
+ 起動しません。最初の`rvw open`だけがbackground runtimeを開始し、最初のtab接続を確認してから端末へ
71
+ 制御を返します。最後のtabを閉じると短い猶予後に停止し、リロード中や別tabが残っている間は停止しません。
72
+ 異なる`RVW_DATABASE_PATH`を指定したruntimeは独立して起動できます。
73
+
74
+ serverを端末に接続したままにする場合は`rvw open --foreground`を使います。同じdatabaseのruntimeが
75
+ 既にあればforeground commandは競合を明示します。ブラウザだけを自動で開かない場合は
76
+ `rvw open --no-open`を使います。active runtimeがあればURLを表示して再利用し、なければCtrl+Cまで
77
+ signal管理のserverを起動します。再利用時もCLIがCtrl+Cまでviewer leaseを保持するため、表示したURLが
78
+ 終了猶予中に無効になることはありません。初回の`--port`は尊重し、active runtimeと異なるportを指定した場合は
79
+ 二つ目を起動せず競合を返します。一度登録したPRは、完全URLまたは全登録PRで一意な番号を指定すれば
80
+ repository外のdirectoryからも開けます。
71
81
 
72
82
  ## 変更を理解する
73
83
 
@@ -326,8 +336,8 @@ pnpm test:package
326
336
 
327
337
  通常テストは実Git binaryとfake GitHub adapterを使い、GitHub認証やnetworkを必要としません。
328
338
  `test:package`はclean buildと実tarball作成を行い、一時directoryへinstallしてrepository checkout外から
329
- CLI、migration、frontend、bundled Skillをsmoke testします。CIはmacOS、Linux、Windowsでpackage smokeを
330
- 実行しますが、通常CIからnpmへ公開しません。
339
+ CLI、migration、frontend、bundled Skillをsmoke testします。Pull Request CIはLinuxでpackage smokeを
340
+ 実行し、`main`更新時とrelease CIはmacOS、Linux、Windowsで互換性を確認します。通常CIからnpmへ公開しません。
331
341
 
332
342
  ## データとセキュリティ
333
343
 
@@ -339,10 +349,12 @@ credentialはGitHub CLIが管理し、rvwのDBへコピーしません。
339
349
  既定DBのdirectory/fileは新規作成時だけ`0700` / `0600`へ設定し、既存pathはownerとmodeを検証して
340
350
  安全ならchmodしません。明示的に管理する別pathは`RVW_DATABASE_PATH`で指定でき、この場合rvwは既存pathを
341
351
  chmodしません。存在しないdirectory/fileは作成時のmodeだけで`0700` / `0600`にし、既存pathが推奨modeで
342
- なければ`doctor --json`にwarningを表示します。通常起動したviewerは`0700`の一時directory内へ
352
+ なければ`doctor --json`にwarningを表示します。通常起動したviewer runtimeは`0700`の一時directory内へ
343
353
  `0600`のdatabase別Unix socketを提供し、Agent CLIは可能ならそのprocessへ
344
354
  書き込みを依頼するため、AgentへDB directoryの直接write権限を渡す必要がありません。同じsocketでは
345
- atomicなowner lockを取得した一つのNode processだけがlistenし、owner終了後にfollowerが引き継ぎます。
355
+ RuntimeやHTTP serverより先にatomicなowner lockを取得し、一つのdatabaseを一つのNode processだけが
356
+ 扱います。競合した`rvw open`はownerへ依頼して終了し、dead ownerのstale lock/socketは次回起動時に
357
+ exact inodeを確認して回収します。
346
358
  `rvw doctor --json`はmode/ownerだけでなくwrite transactionとAgent疎通も報告します。
347
359
 
348
360
  ローカルHTTP serverは`127.0.0.1`だけへbindしてHost / Originを検証し、write APIは