diffing 0.10.3 → 0.10.5
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/dist/{cli-agent-RJ5s4n77.mjs → cli-agent-BJiATn11.mjs} +10 -8
- package/dist/{cli-gh-B8HybRWZ.mjs → cli-gh-_bkDCxhh.mjs} +1 -1
- package/dist/cli.mjs +214 -13
- package/dist/client/assets/{angular-html-BFXVRkhg.js → angular-html-CBcwKYDC.js} +1 -1
- package/dist/client/assets/{angular-ts-bUwtWqya.js → angular-ts-DRBYUaJA.js} +1 -1
- package/dist/client/assets/{apl-bnOQInIz.js → apl-BM0X8jeL.js} +1 -1
- package/dist/client/assets/{arc-CRYHn0oW.js → arc-DTkmmKl3.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-BLK33h0-.js → architectureDiagram-3BPJPVTR-Cw75ay7q.js} +1 -1
- package/dist/client/assets/{astro-BpPieWCw.js → astro-DKTNkoRZ.js} +1 -1
- package/dist/client/assets/{blade-B804X9BP.js → blade-DaM7a9Zp.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-VZc4C656.js → blockDiagram-GPEHLZMM-DAzINMr_.js} +1 -1
- package/dist/client/assets/{c-Cyh0ngfN.js → c-B3C0Or4o.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-9t9UJlU3.js → c4Diagram-AAUBKEIU-C7SsS28g.js} +1 -1
- package/dist/client/assets/channel-lsVHTuYR.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-LudE8z-b.js → chunk-2J33WTMH-DHOUGWx8.js} +1 -1
- package/dist/client/assets/{chunk-3OPIFGDE-BxaQxo50.js → chunk-3OPIFGDE-D8d2scLX.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-BfHcXCJ6.js → chunk-4BX2VUAB-BSC-E5yg.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-o0ADQlnq.js → chunk-55IACEB6-27pC5pKn.js} +1 -1
- package/dist/client/assets/{chunk-5ZQYHXKU-E1qBkOlk.js → chunk-5ZQYHXKU-BM60x82y.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-BitjzJ_b.js → chunk-727SXJPM-CHCF96vE.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-B5pw4PfB.js → chunk-AQP2D5EJ-BoVsvmTa.js} +1 -1
- package/dist/client/assets/{chunk-BSJP7CBP-CoL841vB.js → chunk-BSJP7CBP-Iip4uSio.js} +1 -1
- package/dist/client/assets/{chunk-CSCIHK7Q-Dw4jsICo.js → chunk-CSCIHK7Q-DuIWPyay.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-hpHFrNoE.js → chunk-FMBD7UC4-Du6rtd2k.js} +1 -1
- package/dist/client/assets/{chunk-KSCS5N6A-D67-Zs6D.js → chunk-KSCS5N6A-BBq105vI.js} +1 -1
- package/dist/client/assets/{chunk-L5ZTLDWV-Brr6wA9I.js → chunk-L5ZTLDWV-0DmB5Qp8.js} +1 -1
- package/dist/client/assets/{chunk-LZXEDZCA-e3dTHwrC.js → chunk-LZXEDZCA-CoRsjUfr.js} +2 -2
- package/dist/client/assets/{chunk-ND2GUHAM-Cj2MlAOf.js → chunk-ND2GUHAM-tX8cKEls.js} +1 -1
- package/dist/client/assets/{chunk-NZK2D7GU-CEyXOVMI.js → chunk-NZK2D7GU-BoJGgPic.js} +1 -1
- package/dist/client/assets/{chunk-O5CBEL6O-CymJeKCI.js → chunk-O5CBEL6O-mlwCWs97.js} +1 -1
- package/dist/client/assets/chunk-QZHKN3VN-AHUiTM0z.js +1 -0
- package/dist/client/assets/chunk-WU5MYG2G-D41j4yxb.js +1 -0
- package/dist/client/assets/{chunk-XPW4576I-DfoZU8hD.js → chunk-XPW4576I-B5efww8M.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-D1Eo3kly.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-bAMsbsfB.js +1 -0
- package/dist/client/assets/{cobol-D0BZ7BzH.js → cobol-De9QR_Td.js} +1 -1
- package/dist/client/assets/{coffee-BAPNIyTD.js → coffee-Ct_GvuHP.js} +1 -1
- package/dist/client/assets/{cose-bilkent-S5V4N54A-wCBDLLgv.js → cose-bilkent-S5V4N54A-ATaJZGF7.js} +1 -1
- package/dist/client/assets/{cpp-D54qUqoX.js → cpp-Dw52w9cj.js} +1 -1
- package/dist/client/assets/{crystal-BvYuHO8u.js → crystal-Dx8ADdsd.js} +1 -1
- package/dist/client/assets/{css-BwYPZ1qE.js → css-CZ13XvDU.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-DSO2rfSO.js → dagre-BM42HDAG-aDltuYut.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-OO89Fatz.js → diagram-2AECGRRQ-DGWnHVMJ.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-CARudkst.js → diagram-5GNKFQAL-Dd7eZBKe.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-MMqM8Xip.js → diagram-KO2AKTUF-DWThXREf.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-CA7_Ug5b.js → diagram-LMA3HP47-CXR4Bjtc.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-BAb7zakI.js → diagram-OG6HWLK6-D4Cbf0nW.js} +1 -1
- package/dist/client/assets/{dist-CP7b6OkU.js → dist-CUDhrHNw.js} +1 -1
- package/dist/client/assets/{edge-BbeCKm9i.js → edge-CQCjdJKj.js} +1 -1
- package/dist/client/assets/{elixir-C2M5DZQF.js → elixir-bkjwPazA.js} +1 -1
- package/dist/client/assets/{elm-CwqP8u0T.js → elm-CCweX5Cq.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-Jy0Sqs_1.js → erDiagram-TEJ5UH35-BmAyt7SU.js} +1 -1
- package/dist/client/assets/{erb-C3C66A5u.js → erb-D-Z-KBLp.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-D9L8qr8V.js → flowDiagram-I6XJVG4X-C6nIFUVc.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-CGaqGarh.js → ganttDiagram-6RSMTGT7-DMlxThBf.js} +1 -1
- package/dist/client/assets/{git-rebase-BQxiUc18.js → git-rebase-BdoFdenB.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-RAteUysV.js → gitGraphDiagram-PVQCEYII-JaIFkAIT.js} +1 -1
- package/dist/client/assets/{glimmer-js-CSiwvg27.js → glimmer-js-CZQrBJKq.js} +1 -1
- package/dist/client/assets/{glimmer-ts-Dpvu35Rk.js → glimmer-ts-CBYW46D4.js} +1 -1
- package/dist/client/assets/{glsl-DusmoVD0.js → glsl-wxixKkY_.js} +1 -1
- package/dist/client/assets/{graphql-B4CCj0BK.js → graphql-CqZ0Lo5a.js} +1 -1
- package/dist/client/assets/{hack-BNgw8w6u.js → hack-rqWymQRV.js} +1 -1
- package/dist/client/assets/{haml-BhHHy_kW.js → haml-DFw_IoGM.js} +1 -1
- package/dist/client/assets/{handlebars-BBUsDvYG.js → handlebars-3VmTVMYt.js} +1 -1
- package/dist/client/assets/{html-DMohn6Yq.js → html-C0Li76jB.js} +1 -1
- package/dist/client/assets/{html-derivative-BY6zEZAg.js → html-derivative-CO-RQW8y.js} +1 -1
- package/dist/client/assets/{http-BHAVGGfJ.js → http-sPrZOeBY.js} +1 -1
- package/dist/client/assets/{hurl-B2q8TNaP.js → hurl-DUoPe4Lc.js} +1 -1
- package/dist/client/assets/{index-CguUPVUR.css → index-B42c0TyV.css} +1 -1
- package/dist/client/assets/{index-CxN77Qol.js → index-BN_-di_r.js} +31 -31
- package/dist/client/assets/{infoDiagram-5YYISTIA-DCyKTiIZ.js → infoDiagram-5YYISTIA-B6AZ5SCV.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-BMTEXPAX.js → ishikawaDiagram-YF4QCWOH-CytMrpo8.js} +1 -1
- package/dist/client/assets/{java-DHj6gaNP.js → java-Cj0G6QRg.js} +1 -1
- package/dist/client/assets/{javascript-CbF7u-DE.js → javascript-d5SUuyWD.js} +1 -1
- package/dist/client/assets/{jinja-MOxap5pr.js → jinja-BTw9k0vO.js} +1 -1
- package/dist/client/assets/{jison-XUjMP-LK.js → jison-9xSVvR1q.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-Ckd41c1S.js → journeyDiagram-JHISSGLW-Bd4jZUYI.js} +1 -1
- package/dist/client/assets/{json-7vp-fS_h.js → json-DjAt53ka.js} +1 -1
- package/dist/client/assets/{jsx-BgiCPhz9.js → jsx-BX5KmQ7d.js} +1 -1
- package/dist/client/assets/{julia-DADvZSF3.js → julia-CLLx1dHC.js} +1 -1
- package/dist/client/assets/{just-BS3xPvUT.js → just-C0v80bKe.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-BlLY2sqY.js → kanban-definition-UN3LZRKU-Ds4pXHJa.js} +1 -1
- package/dist/client/assets/{latex-C_QvolBN.js → latex-DY-oQfwO.js} +1 -1
- package/dist/client/assets/{line-Bkj6DIfl.js → line-BbSLfOl6.js} +1 -1
- package/dist/client/assets/{linear-Cm6J5YrP.js → linear-BMIZJAAR.js} +1 -1
- package/dist/client/assets/{liquid-CL0UH-ot.js → liquid-DDHDgbZx.js} +1 -1
- package/dist/client/assets/{lua-DlAyxrVn.js → lua-CXymerKS.js} +1 -1
- package/dist/client/assets/{marko-6e-PRCyy.js → marko-DoPFsptl.js} +1 -1
- package/dist/client/assets/{mdc-BbLfT_IA.js → mdc-BxSmTphd.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-DwyEEn2f.js → mermaid-parser.core-CcYSvN4q.js} +1 -1
- package/dist/client/assets/{mermaid.core-K3JZIfb0.js → mermaid.core-COTNtqgQ.js} +3 -3
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-B2pkZuEx.js → mindmap-definition-RKZ34NQL-BTxraRzn.js} +1 -1
- package/dist/client/assets/{nginx-CoBWheEf.js → nginx-Bma0jNOT.js} +1 -1
- package/dist/client/assets/{nim-2_Wea-mV.js → nim-DMBpjygU.js} +1 -1
- package/dist/client/assets/{perl-SkTVK0CC.js → perl-CrnrV-AJ.js} +1 -1
- package/dist/client/assets/{php-C2cF2oJ6.js → php-CDYxzX6t.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-BQeH8sHJ.js → pieDiagram-4H26LBE5-DglRmzer.js} +1 -1
- package/dist/client/assets/{pug-C01v9yeE.js → pug-DNewy3GU.js} +1 -1
- package/dist/client/assets/{qml-CCP9ULJs.js → qml-COjcnZ-W.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-D9CC7zgZ.js → quadrantDiagram-W4KKPZXB-BjSmyES7.js} +1 -1
- package/dist/client/assets/{r-DDJJP6PS.js → r-CrCaMxLS.js} +1 -1
- package/dist/client/assets/{razor-DKBWfXRk.js → razor-jeuOZIar.js} +1 -1
- package/dist/client/assets/{regexp-DOe8oQhc.js → regexp-DSHVUX08.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-DlYO_tzx.js → requirementDiagram-4Y6WPE33-B4f430jS.js} +1 -1
- package/dist/client/assets/{review-export-CgROw3iz.js → review-export-Cen1WEcX.js} +1 -1
- package/dist/client/assets/{rst-KHKSB4M-.js → rst-CIDgytzc.js} +1 -1
- package/dist/client/assets/{ruby-3gO1sivg.js → ruby-DtuseoNq.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DvgoVn_C.js → sankeyDiagram-5OEKKPKP-TQPPlxc6.js} +1 -1
- package/dist/client/assets/{sas-D1u2TkIr.js → sas-C72Theia.js} +1 -1
- package/dist/client/assets/{scss-C__x0Kwu.js → scss-ClECtwRk.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-Dk46IxzZ.js → sequenceDiagram-3UESZ5HK-D1tx07Wg.js} +1 -1
- package/dist/client/assets/{shellscript-YrQZ5Lwf.js → shellscript-BCwBsi2k.js} +1 -1
- package/dist/client/assets/{shellsession-CoF5Zc6A.js → shellsession-BrOddEl5.js} +1 -1
- package/dist/client/assets/{soy-BKqc8OYl.js → soy-Dcs0GWFW.js} +1 -1
- package/dist/client/assets/{sql-D3MVYjA_.js → sql-BAjA7Gv7.js} +1 -1
- package/dist/client/assets/{src-UnI8qjTK.js → src-CYYhkqTK.js} +1 -1
- package/dist/client/assets/{stata-BqvSK3te.js → stata-19ngQtzR.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-BuhZPSPC.js → stateDiagram-AJRCARHV-BZRCEzb5.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-Da-mGMA2.js +1 -0
- package/dist/client/assets/{surrealql-BhWLIqpd.js → surrealql-Ce2TBRjE.js} +1 -1
- package/dist/client/assets/{svelte-DNNWxYsj.js → svelte-DQ_1eGZz.js} +1 -1
- package/dist/client/assets/{templ-DdMgSlsy.js → templ-Cw2DDxWF.js} +1 -1
- package/dist/client/assets/{tex-B4JFnTVn.js → tex-myDSO2eP.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-C1xzVz0K.js → timeline-definition-PNZ67QCA-CP0OZhBT.js} +1 -1
- package/dist/client/assets/{ts-tags-BQI5G_ZS.js → ts-tags-rh39ZwVs.js} +1 -1
- package/dist/client/assets/{tsx-C7qfZi8B.js → tsx-B0-26jrU.js} +1 -1
- package/dist/client/assets/{twig-RWfC7gXX.js → twig-CgasHzPb.js} +1 -1
- package/dist/client/assets/{typescript-aLdMd7mo.js → typescript-Dq3T0c-m.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-CBkCNH_s.js → vennDiagram-CIIHVFJN-DHaKHj0j.js} +1 -1
- package/dist/client/assets/{vue-BHCbeDIL.js → vue-CzFVh92-.js} +1 -1
- package/dist/client/assets/{vue-html-DXTiTIOp.js → vue-html-Bv2uFkTH.js} +1 -1
- package/dist/client/assets/{vue-vine-CuhsWKNe.js → vue-vine-DzieBk9Y.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-aFrlILUG.js → wardleyDiagram-YWT4CUSO-Dky7jxlZ.js} +1 -1
- package/dist/client/assets/{xml-Dnahor-u.js → xml-wcdHRHN8.js} +1 -1
- package/dist/client/assets/{xsl-DB6zLGtG.js → xsl-CXrwsLG9.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-CpPDrWcg.js → xychartDiagram-2RQKCTM6-BQ2hG60h.js} +1 -1
- package/dist/client/assets/{yaml-VItgjNOZ.js → yaml-lO6lK6Xe.js} +1 -1
- package/dist/client/index.html +3 -3
- package/dist/{completions-Csvfqctx.mjs → completions-3UF8uzhx.mjs} +2 -0
- package/dist/{doctor-DGZoOg8f.mjs → doctor-BGYZNIYP.mjs} +3 -3
- package/dist/{github-Cf5blBty.mjs → github-CEjtGd41.mjs} +47 -5
- package/dist/github-DKT0lJXv.mjs +2 -0
- package/dist/github-attachments-Cf17YWp4.mjs +351 -0
- package/dist/handoff-DPoIyeWn.mjs +11 -0
- package/dist/{mcp-DOqu6S64.mjs → mcp-Dq7J5QOP.mjs} +31 -18
- package/dist/{server-Bjzyb6NG.mjs → server-C9i4V36o.mjs} +96 -16
- package/dist/{server-lock-uqSdDYeR.mjs → server-lock-Dd_ss_Il.mjs} +1 -1
- package/dist/{settings-BVnzGFL7.mjs → settings-bwe7yQ8U.mjs} +1 -1
- package/package.json +1 -1
- package/dist/client/assets/channel-CdyG8Wtt.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-DycW3jgO.js +0 -1
- package/dist/client/assets/chunk-WU5MYG2G-BXFsAzYU.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-BxVI8nIr.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DZHTBTt9.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-CyVz0INc.js +0 -1
- package/dist/github-DWgPIcKC.mjs +0 -2
- /package/dist/{apply-suggestion-BAuyCYk6.mjs → apply-suggestion-DNNsC5gx.mjs} +0 -0
- /package/dist/{diff-fingerprint-CWa-soYD.mjs → diff-fingerprint-C8YO3TTE.mjs} +0 -0
- /package/dist/{review-export-DjxKBeIZ.mjs → review-export-BBDWvftT.mjs} +0 -0
- /package/dist/{update-check-fe0tR8tx.mjs → update-check-DUuHmPeZ.mjs} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { C as isSafePath, S as revertHunk, _ as getUntrackedFilePathsAsync, a as getCustomGitDiffAsync, b as listRepoFiles, c as getGitDiffAsync, d as getProjectStorageDir, f as getRepoName, g as getTabSizeForFiles, h as getShowDiff, i as getCommitSeriesSummary, l as getHunkHistory, o as getFileContent, p as getRepoRoot, r as getBranchName, u as getMergeStatus, v as gitAddFile, w as toSafeRelativePath, y as isGitRepo } from "./git-Czo96ymM.mjs";
|
|
2
|
-
import { a as searchContent, c as trackSelection, i as searchAll, n as saveSettings, o as searchFiles, r as getSearchStatus, s as searchSymbols, t as loadSettings } from "./settings-
|
|
2
|
+
import { a as searchContent, c as trackSelection, i as searchAll, n as saveSettings, o as searchFiles, r as getSearchStatus, s as searchSymbols, t as loadSettings } from "./settings-bwe7yQ8U.mjs";
|
|
3
3
|
import { t as formatComments } from "./comment-format-B5AcGcR-.mjs";
|
|
4
4
|
import { n as formatPlanReview, r as sectionTitleForLine, t as extractPlanLines } from "./plan-format-BQyx--mp.mjs";
|
|
5
|
-
import { D as updatePrReviewComment, E as submitReview, S as refreshPrSession, T as setPrReviewThreadResolved, a as detectCwdRepo, b as parsePrRef, f as fetchPrFileContentViaGh, i as deletePrReviewComment, l as fetchExistingCommentsViaGh, t as buildPrSession, u as fetchExistingReviewsViaGh, w as resolvedFromSession } from "./github-
|
|
5
|
+
import { D as updatePrReviewComment, E as submitReview, S as refreshPrSession, T as setPrReviewThreadResolved, a as detectCwdRepo, b as parsePrRef, f as fetchPrFileContentViaGh, i as deletePrReviewComment, l as fetchExistingCommentsViaGh, t as buildPrSession, u as fetchExistingReviewsViaGh, w as resolvedFromSession } from "./github-CEjtGd41.mjs";
|
|
6
6
|
import { execFileSync } from "node:child_process";
|
|
7
7
|
import { createHash } from "node:crypto";
|
|
8
8
|
import { fileURLToPath } from "node:url";
|
|
@@ -51,6 +51,8 @@ const DEFAULTS = {
|
|
|
51
51
|
outputMode: "auto",
|
|
52
52
|
host: "127.0.0.1",
|
|
53
53
|
noOpen: false,
|
|
54
|
+
reuseSession: false,
|
|
55
|
+
replaceSession: false,
|
|
54
56
|
help: false,
|
|
55
57
|
version: false,
|
|
56
58
|
includeUnstaged: true,
|
|
@@ -179,6 +181,14 @@ const DIFFING_OPTIONS = {
|
|
|
179
181
|
type: "boolean",
|
|
180
182
|
default: false
|
|
181
183
|
},
|
|
184
|
+
"reuse-session": {
|
|
185
|
+
type: "boolean",
|
|
186
|
+
default: false
|
|
187
|
+
},
|
|
188
|
+
"replace-session": {
|
|
189
|
+
type: "boolean",
|
|
190
|
+
default: false
|
|
191
|
+
},
|
|
182
192
|
web: {
|
|
183
193
|
type: "boolean",
|
|
184
194
|
default: false
|
|
@@ -226,6 +236,8 @@ Diffing Server Options:
|
|
|
226
236
|
--host <host> Host address to bind to (default: 127.0.0.1). Pass
|
|
227
237
|
0.0.0.0 to expose the server to the local network.
|
|
228
238
|
--no-open Don't open the browser automatically
|
|
239
|
+
--reuse-session If a review is already running, open it instead of prompting
|
|
240
|
+
--replace-session If a review is already running, stop it and start a new one
|
|
229
241
|
--gh-pr <ref> Open a GitHub PR review session (number, owner/repo#N, or URL)
|
|
230
242
|
Same as: diffing "gh pr <ref>"
|
|
231
243
|
|
|
@@ -488,6 +500,8 @@ function parseDiffOptions(rawArgs) {
|
|
|
488
500
|
if (values.port) opts.port = parseInt(values.port, 10);
|
|
489
501
|
if (values.host) opts.host = values.host;
|
|
490
502
|
if (values["no-open"]) opts.noOpen = true;
|
|
503
|
+
if (values["reuse-session"]) opts.reuseSession = true;
|
|
504
|
+
if (values["replace-session"]) opts.replaceSession = true;
|
|
491
505
|
if (values["gh-pr"]) opts.ghPr = String(values["gh-pr"]);
|
|
492
506
|
if (values.staged || values.cached) opts.staged = true;
|
|
493
507
|
if (values.merge) opts.merge = true;
|
|
@@ -3401,7 +3415,7 @@ function createApp(clientDir, diffOptsInput = DEFAULTS, commentStore, planStore,
|
|
|
3401
3415
|
if (!relPath) return c.json({ error: "Forbidden file path" }, 403);
|
|
3402
3416
|
const absolutePath = resolve(root, relPath);
|
|
3403
3417
|
const content = await readFile(absolutePath, "utf-8");
|
|
3404
|
-
const { applySuggestionToContent } = await import("./apply-suggestion-
|
|
3418
|
+
const { applySuggestionToContent } = await import("./apply-suggestion-DNNsC5gx.mjs");
|
|
3405
3419
|
const result = applySuggestionToContent({
|
|
3406
3420
|
content,
|
|
3407
3421
|
lineNumber: comment.lineNumber,
|
|
@@ -3541,19 +3555,69 @@ function createApp(clientDir, diffOptsInput = DEFAULTS, commentStore, planStore,
|
|
|
3541
3555
|
}
|
|
3542
3556
|
return c.json(page);
|
|
3543
3557
|
});
|
|
3558
|
+
/**
|
|
3559
|
+
* Merge the GitHub-fetched existing comments into the *current* session's
|
|
3560
|
+
* optimistic state. The reply endpoint optimistically appends a new reply to
|
|
3561
|
+
* a thread before GitHub has propagated it through the REST comments API
|
|
3562
|
+
* (a noticeable window during the periodic 30s / window-focus sync). A naive
|
|
3563
|
+
* overwrite would make that reply flash out of the UI until the next sync
|
|
3564
|
+
* catches up — which is what users reported as "comments disappear after
|
|
3565
|
+
* submitting a reply" (especially visible on file-level threads because
|
|
3566
|
+
* those bubbles live in their own section and a missing one is striking).
|
|
3567
|
+
*
|
|
3568
|
+
* Strategy: take fresh-from-GitHub replies as authoritative for ids GitHub
|
|
3569
|
+
* already knows about, then re-append any optimistic local replies that
|
|
3570
|
+
* haven't yet appeared on GitHub (tracked via {@link PrSession.pendingOptimisticReplyIds}).
|
|
3571
|
+
* Replies GitHub no longer returns AND that aren't optimistic are dropped
|
|
3572
|
+
* (a real delete). Optimistic ids that do show up are confirmed and pruned
|
|
3573
|
+
* from the pending list.
|
|
3574
|
+
*/
|
|
3575
|
+
const mergeFreshWithLocalOptimistic = (fresh, current, pendingIds) => {
|
|
3576
|
+
const pending = new Set(pendingIds);
|
|
3577
|
+
const localById = /* @__PURE__ */ new Map();
|
|
3578
|
+
for (const c of current ?? []) localById.set(c.id, c);
|
|
3579
|
+
const remainingPending = [];
|
|
3580
|
+
return {
|
|
3581
|
+
existingComments: fresh.map((freshTop) => {
|
|
3582
|
+
const local = localById.get(freshTop.id);
|
|
3583
|
+
if (!local) return freshTop;
|
|
3584
|
+
const freshReplyIds = new Set(freshTop.replies.map((r) => r.id));
|
|
3585
|
+
for (const id of freshReplyIds) pending.delete(id);
|
|
3586
|
+
const preserved = [];
|
|
3587
|
+
if (pending.size > 0) for (const r of local.replies) {
|
|
3588
|
+
if (freshReplyIds.has(r.id)) continue;
|
|
3589
|
+
if (pending.has(r.id)) {
|
|
3590
|
+
preserved.push(r);
|
|
3591
|
+
remainingPending.push(r.id);
|
|
3592
|
+
}
|
|
3593
|
+
}
|
|
3594
|
+
if (preserved.length === 0) return freshTop;
|
|
3595
|
+
const replies = [...freshTop.replies, ...preserved];
|
|
3596
|
+
return {
|
|
3597
|
+
...freshTop,
|
|
3598
|
+
replies
|
|
3599
|
+
};
|
|
3600
|
+
}),
|
|
3601
|
+
remainingPending
|
|
3602
|
+
};
|
|
3603
|
+
};
|
|
3544
3604
|
const syncExistingPrReviewData = async (session) => {
|
|
3545
3605
|
const resolved = resolvedFromSession(session);
|
|
3546
3606
|
let existingReviews = await fetchExistingReviewsViaGh(resolved);
|
|
3547
3607
|
const optimisticReview = session.submittedReviewId == null ? void 0 : session.existingReviews?.find((review) => review.id === session.submittedReviewId);
|
|
3548
3608
|
if (optimisticReview && !existingReviews.some((review) => review.id === optimisticReview.id) && session.submittedAt != null && Date.now() - session.submittedAt < 12e4) existingReviews = [optimisticReview, ...existingReviews];
|
|
3549
|
-
const
|
|
3550
|
-
const
|
|
3609
|
+
const freshExistingComments = await fetchExistingCommentsViaGh(resolved, existingReviews);
|
|
3610
|
+
const current = await prStore.get() ?? session;
|
|
3611
|
+
const { existingComments, remainingPending } = mergeFreshWithLocalOptimistic(freshExistingComments, current.existingComments, current.pendingOptimisticReplyIds ?? []);
|
|
3612
|
+
const comments = current.submittedAt ? (current.comments ?? []).filter((comment) => comment.createdAt > current.submittedAt) : current.comments;
|
|
3551
3613
|
const next = {
|
|
3552
|
-
...
|
|
3614
|
+
...current,
|
|
3553
3615
|
comments,
|
|
3554
3616
|
existingComments,
|
|
3555
3617
|
existingReviews
|
|
3556
3618
|
};
|
|
3619
|
+
if (remainingPending.length > 0) next.pendingOptimisticReplyIds = remainingPending;
|
|
3620
|
+
else delete next.pendingOptimisticReplyIds;
|
|
3557
3621
|
await prStore.set(next);
|
|
3558
3622
|
return next;
|
|
3559
3623
|
};
|
|
@@ -3598,7 +3662,7 @@ function createApp(clientDir, diffOptsInput = DEFAULTS, commentStore, planStore,
|
|
|
3598
3662
|
const session = await prStore.get();
|
|
3599
3663
|
if (!session) return notInPrMode(c);
|
|
3600
3664
|
try {
|
|
3601
|
-
const { fetchPrChecks } = await import("./github-
|
|
3665
|
+
const { fetchPrChecks } = await import("./github-DKT0lJXv.mjs");
|
|
3602
3666
|
const checks = await fetchPrChecks(resolvedFromSession(session), session.headSha);
|
|
3603
3667
|
const summary = {
|
|
3604
3668
|
total: checks.length,
|
|
@@ -3630,7 +3694,7 @@ function createApp(clientDir, diffOptsInput = DEFAULTS, commentStore, planStore,
|
|
|
3630
3694
|
const text = typeof body.body === "string" ? body.body.trim() : "";
|
|
3631
3695
|
if (!text) return c.json({ error: "body is required" }, 400);
|
|
3632
3696
|
try {
|
|
3633
|
-
const { replyToPrComment } = await import("./github-
|
|
3697
|
+
const { replyToPrComment } = await import("./github-DKT0lJXv.mjs");
|
|
3634
3698
|
const result = await replyToPrComment({
|
|
3635
3699
|
resolved: resolvedFromSession(session),
|
|
3636
3700
|
inReplyTo: id,
|
|
@@ -3639,13 +3703,15 @@ function createApp(clientDir, diffOptsInput = DEFAULTS, commentStore, planStore,
|
|
|
3639
3703
|
if (!result.ok) return c.json({ error: result.error ?? "Reply failed" }, 500);
|
|
3640
3704
|
const reply = result.reply;
|
|
3641
3705
|
if (reply) {
|
|
3642
|
-
const existingComments = session.existingComments.map((comment) => comment.id === id ? {
|
|
3706
|
+
const existingComments = session.existingComments.map((comment) => comment.id === id || comment.replies.some((r) => r.id === id) ? {
|
|
3643
3707
|
...comment,
|
|
3644
3708
|
replies: [...comment.replies, reply]
|
|
3645
3709
|
} : comment);
|
|
3710
|
+
const pendingOptimisticReplyIds = [...session.pendingOptimisticReplyIds ?? [], ...typeof result.id === "number" ? [result.id] : []];
|
|
3646
3711
|
await prStore.set({
|
|
3647
3712
|
...session,
|
|
3648
|
-
existingComments
|
|
3713
|
+
existingComments,
|
|
3714
|
+
pendingOptimisticReplyIds
|
|
3649
3715
|
});
|
|
3650
3716
|
}
|
|
3651
3717
|
return c.json({
|
|
@@ -3842,18 +3908,32 @@ function createApp(clientDir, diffOptsInput = DEFAULTS, commentStore, planStore,
|
|
|
3842
3908
|
if (decision !== "approve" && decision !== "comment" && decision !== "request-changes" && decision !== "draft") return c.json({ error: "decision must be one of: approve, comment, request-changes, draft" }, 400);
|
|
3843
3909
|
const generalBody = typeof body.body === "string" ? body.body : "";
|
|
3844
3910
|
if (body.dryRun === true) {
|
|
3845
|
-
const { buildReviewPayload } = await import("./github-
|
|
3911
|
+
const { buildReviewPayload, resolvedFromSession } = await import("./github-DKT0lJXv.mjs");
|
|
3912
|
+
const { rewriteLocalAttachmentsInBodies } = await import("./github-attachments-Cf17YWp4.mjs");
|
|
3913
|
+
const resolved = resolvedFromSession(session);
|
|
3914
|
+
const comments = session.comments ?? [];
|
|
3915
|
+
const rewritten = await rewriteLocalAttachmentsInBodies(resolved, [generalBody, ...comments.map((c) => c.body ?? "")], { dryRun: true });
|
|
3916
|
+
if (rewritten.error) return c.json({
|
|
3917
|
+
ok: false,
|
|
3918
|
+
dryRun: true,
|
|
3919
|
+
error: rewritten.error
|
|
3920
|
+
}, 400);
|
|
3921
|
+
const [body, ...commentBodies] = rewritten.bodies;
|
|
3846
3922
|
const payload = buildReviewPayload({
|
|
3847
3923
|
decision,
|
|
3848
|
-
body: generalBody,
|
|
3849
|
-
comments:
|
|
3924
|
+
body: body ?? generalBody,
|
|
3925
|
+
comments: comments.map((c, i) => ({
|
|
3926
|
+
...c,
|
|
3927
|
+
body: commentBodies[i] ?? c.body
|
|
3928
|
+
}))
|
|
3850
3929
|
});
|
|
3851
3930
|
return c.json({
|
|
3852
3931
|
ok: true,
|
|
3853
3932
|
dryRun: true,
|
|
3854
3933
|
authSource: session.authSource ?? "none",
|
|
3855
3934
|
failedComments: 0,
|
|
3856
|
-
payload
|
|
3935
|
+
payload,
|
|
3936
|
+
attachmentRewrites: rewritten.urlMap
|
|
3857
3937
|
});
|
|
3858
3938
|
}
|
|
3859
3939
|
const result = await submitReview({
|
|
@@ -3926,7 +4006,7 @@ function createApp(clientDir, diffOptsInput = DEFAULTS, commentStore, planStore,
|
|
|
3926
4006
|
const openCount = all.filter((x) => x.status === "open").length;
|
|
3927
4007
|
let diffFingerprints;
|
|
3928
4008
|
try {
|
|
3929
|
-
const { fingerprintDiffFiles } = await import("./diff-fingerprint-
|
|
4009
|
+
const { fingerprintDiffFiles } = await import("./diff-fingerprint-C8YO3TTE.mjs");
|
|
3930
4010
|
if (prMode) {
|
|
3931
4011
|
const prSession = await prStore.get();
|
|
3932
4012
|
if (prSession?.diff) diffFingerprints = fingerprintDiffFiles(prSession.diff);
|
|
@@ -3994,7 +4074,7 @@ function createApp(clientDir, diffOptsInput = DEFAULTS, commentStore, planStore,
|
|
|
3994
4074
|
} catch (err) {
|
|
3995
4075
|
return c.json({ error: err?.message ?? "Failed to compute current diff" }, 500);
|
|
3996
4076
|
}
|
|
3997
|
-
const { fingerprintDiffFiles, diffSinceLast, filesToReviewSinceLast } = await import("./diff-fingerprint-
|
|
4077
|
+
const { fingerprintDiffFiles, diffSinceLast, filesToReviewSinceLast } = await import("./diff-fingerprint-C8YO3TTE.mjs");
|
|
3998
4078
|
const delta = diffSinceLast(previous, fingerprintDiffFiles(currentPatch));
|
|
3999
4079
|
return c.json({
|
|
4000
4080
|
hasBaseline: true,
|
|
@@ -9,7 +9,7 @@ const STARTUP_LEASE_STALE_MS = 3e4;
|
|
|
9
9
|
* mismatches between a user-started session and an MCP request.
|
|
10
10
|
*/
|
|
11
11
|
function diffScopeKey(options) {
|
|
12
|
-
const { port: _port, host: _host, noOpen: _noOpen, help: _help, version: _version, outputMode: _outputMode, tui: _tui, gpu: _gpu, noExtDiff: _noExtDiff, ...scope } = options;
|
|
12
|
+
const { port: _port, host: _host, noOpen: _noOpen, reuseSession: _reuseSession, replaceSession: _replaceSession, help: _help, version: _version, outputMode: _outputMode, tui: _tui, gpu: _gpu, noExtDiff: _noExtDiff, ...scope } = options;
|
|
13
13
|
return JSON.stringify(scope);
|
|
14
14
|
}
|
|
15
15
|
function lockPath(repoRoot) {
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{at as e,ot as t}from"./chunk-CSCIHK7Q-Dw4jsICo.js";var n=(n,r)=>t.lang.round(e.parse(n)[r]);export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as e}from"./src-UnI8qjTK.js";var t=class{constructor(e){this.init=e,this.records=this.init()}static{e(this,`ImperativeState`)}reset(){this.records=this.init()}};export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as e,p as t}from"./src-UnI8qjTK.js";import{x as n}from"./chunk-CSCIHK7Q-Dw4jsICo.js";var r=e(e=>{let{securityLevel:r}=n(),i=t(`body`);return r===`sandbox`&&(i=t((t(`#i${e}`).node()?.contentDocument??document).body)),i.select(`#${e}`)},`selectSvgElement`);export{r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as e}from"./src-UnI8qjTK.js";import"./chunk-CSCIHK7Q-Dw4jsICo.js";import"./chunk-5ZQYHXKU-E1qBkOlk.js";import"./chunk-O5CBEL6O-CymJeKCI.js";import"./chunk-FMBD7UC4-hpHFrNoE.js";import"./chunk-BSJP7CBP-CoL841vB.js";import"./chunk-L5ZTLDWV-Brr6wA9I.js";import"./chunk-ND2GUHAM-Cj2MlAOf.js";import"./chunk-55IACEB6-o0ADQlnq.js";import"./chunk-2J33WTMH-LudE8z-b.js";import"./chunk-NZK2D7GU-CEyXOVMI.js";import"./chunk-3OPIFGDE-BxaQxo50.js";import"./chunk-KSCS5N6A-D67-Zs6D.js";import"./chunk-LZXEDZCA-e3dTHwrC.js";import{i as t,n,r,t as i}from"./chunk-727SXJPM-BitjzJ_b.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as e}from"./src-UnI8qjTK.js";import"./chunk-CSCIHK7Q-Dw4jsICo.js";import"./chunk-5ZQYHXKU-E1qBkOlk.js";import"./chunk-O5CBEL6O-CymJeKCI.js";import"./chunk-FMBD7UC4-hpHFrNoE.js";import"./chunk-BSJP7CBP-CoL841vB.js";import"./chunk-L5ZTLDWV-Brr6wA9I.js";import"./chunk-ND2GUHAM-Cj2MlAOf.js";import"./chunk-55IACEB6-o0ADQlnq.js";import"./chunk-2J33WTMH-LudE8z-b.js";import"./chunk-NZK2D7GU-CEyXOVMI.js";import"./chunk-3OPIFGDE-BxaQxo50.js";import"./chunk-KSCS5N6A-D67-Zs6D.js";import"./chunk-LZXEDZCA-e3dTHwrC.js";import{i as t,n,r,t as i}from"./chunk-727SXJPM-BitjzJ_b.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as e}from"./src-UnI8qjTK.js";import"./chunk-CSCIHK7Q-Dw4jsICo.js";import"./chunk-5ZQYHXKU-E1qBkOlk.js";import"./chunk-O5CBEL6O-CymJeKCI.js";import"./chunk-BSJP7CBP-CoL841vB.js";import"./chunk-L5ZTLDWV-Brr6wA9I.js";import"./chunk-55IACEB6-o0ADQlnq.js";import"./chunk-2J33WTMH-LudE8z-b.js";import"./chunk-NZK2D7GU-CEyXOVMI.js";import"./chunk-3OPIFGDE-BxaQxo50.js";import"./chunk-KSCS5N6A-D67-Zs6D.js";import"./chunk-LZXEDZCA-e3dTHwrC.js";import{i as t,n,r,t as i}from"./chunk-AQP2D5EJ-B5pw4PfB.js";var a={parser:n,get db(){return new i(2)},renderer:r,styles:t,init:e(e=>{e.state||={},e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
|
package/dist/github-DWgPIcKC.mjs
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|