@fabiofiorita/porcelain 0.80.0 → 0.80.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 (56) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/server/src/cli/main.mjs +11 -36
  4. package/web/dist/assets/_-DFhJnAGd.js +1 -0
  5. package/web/dist/assets/_layerId-Do9LiVPi.js +1 -0
  6. package/web/dist/assets/_paired-B0TR3v2g.js +1 -0
  7. package/web/dist/assets/_paired-Dis4R_W7.js +1 -0
  8. package/web/dist/assets/_paired-DrjYrPD6.js +1 -0
  9. package/web/dist/assets/{_paired-ByXCZfON.js → _paired-vRIcsRPJ.js} +1 -1
  10. package/web/dist/assets/_reviewId-BNRd-RsV.js +1 -0
  11. package/web/dist/assets/{_revision-CEkztxVf.js → _revision-pX1M7Qmi.js} +1 -1
  12. package/web/dist/assets/_section-BYquVqCT.js +1 -0
  13. package/web/dist/assets/_worktreeId-B0TR3v2g.js +1 -0
  14. package/web/dist/assets/_worktreeId-B3-9jgRP.js +1 -0
  15. package/web/dist/assets/_worktreeId-CTlHFkwJ.js +1 -0
  16. package/web/dist/assets/_worktreeId-DrjYrPD6.js +1 -0
  17. package/web/dist/assets/{access-CgdAbsDB.js → access-B0Mkde3w.js} +11 -11
  18. package/web/dist/assets/connected-workspace-CpwV0cE8.js +1 -0
  19. package/web/dist/assets/desktop-actions-BhK3H27W.js +1 -0
  20. package/web/dist/assets/{edit-file-NoqbTKtz.js → edit-file-DyAqq6B7.js} +20 -20
  21. package/web/dist/assets/{file-editor-BcKWP6Pq.js → file-editor-CetHs3JL.js} +2 -2
  22. package/web/dist/assets/index-DlP1CrCK.js +10 -0
  23. package/web/dist/assets/index-h2SHzlPM.css +2 -0
  24. package/web/dist/assets/{lazyRouteComponent-DGmhBXYn.js → lazyRouteComponent-BbALCu0D.js} +1 -1
  25. package/web/dist/assets/pair-B0TR3v2g.js +1 -0
  26. package/web/dist/assets/pair-B1a3Ju3s.js +1 -0
  27. package/web/dist/assets/review-route-DoO_IquA.js +1 -0
  28. package/web/dist/assets/reviews-DXU6w8xA.js +1413 -0
  29. package/web/dist/assets/useMatch-DEcMF92D.js +1 -0
  30. package/web/dist/assets/useRouterState-BVrL54_o.js +1 -0
  31. package/web/dist/assets/workspace-error-B29zfIj0.js +1 -0
  32. package/web/dist/assets/{workspace-pending-D8mUCjic.js → workspace-pending-BpsajnZR.js} +1 -1
  33. package/web/dist/index.html +8 -8
  34. package/web/dist/assets/_-BshWuX2r.js +0 -1
  35. package/web/dist/assets/_layerId-B2Mhwdgd.js +0 -1
  36. package/web/dist/assets/_paired-BsiX749W.js +0 -1
  37. package/web/dist/assets/_paired-Qv7e73Az.js +0 -1
  38. package/web/dist/assets/_paired-RaEpohFx.js +0 -1
  39. package/web/dist/assets/_projectId-K3HYfGmC.js +0 -1
  40. package/web/dist/assets/_reviewId-BgaLSHh-.js +0 -1
  41. package/web/dist/assets/_section-eV0dGQ8T.js +0 -1
  42. package/web/dist/assets/_worktreeId-BsiX749W.js +0 -1
  43. package/web/dist/assets/_worktreeId-C634iX0I.js +0 -1
  44. package/web/dist/assets/_worktreeId-Dp2IijNU.js +0 -1
  45. package/web/dist/assets/_worktreeId-RaEpohFx.js +0 -1
  46. package/web/dist/assets/connected-workspace-73Vq_-Pm.js +0 -1
  47. package/web/dist/assets/desktop-actions-DbUXvsow.js +0 -1
  48. package/web/dist/assets/index-CEW83Kj-.css +0 -2
  49. package/web/dist/assets/index-iGH92IrA.js +0 -10
  50. package/web/dist/assets/pair-Cs-YnRFF.js +0 -1
  51. package/web/dist/assets/pair-RaEpohFx.js +0 -1
  52. package/web/dist/assets/review-route-C2awZrL6.js +0 -1
  53. package/web/dist/assets/reviews-BkUaPv4P.js +0 -1413
  54. package/web/dist/assets/useMatch-DNkNC5QD.js +0 -1
  55. package/web/dist/assets/useRouterState-7m7hAzAG.js +0 -1
  56. package/web/dist/assets/workspace-error-DZyPmDw9.js +0 -1
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @fabiofiorita/porcelain (0.80.0)
1
+ # @fabiofiorita/porcelain (0.80.1)
2
2
 
3
3
  The Porcelain review server and bundled web app for a plain Node installation.
4
4
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fabiofiorita/porcelain",
3
- "version": "0.80.0",
3
+ "version": "0.80.1",
4
4
  "description": "Review coding agents’ changes from a browser, Mac or phone",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -8448,13 +8448,15 @@ var byteLengthSchema = Schema214.Number.check(Schema214.isInt()).check(
8448
8448
  );
8449
8449
  var reviewSummaryLinkWireSchema = Schema214.Struct({
8450
8450
  url: Schema214.String.check(Schema214.isMinLength(1)),
8451
- byteLength: byteLengthSchema
8451
+ byteLength: byteLengthSchema,
8452
+ hasContent: Schema214.optional(Schema214.Boolean)
8452
8453
  });
8453
8454
  var reviewSummaryLinkValueSchema = Schema214.Struct({
8454
8455
  token: Schema214.String,
8455
8456
  expires: Schema214.String,
8456
8457
  signature: Schema214.String,
8457
- byteLength: byteLengthSchema
8458
+ byteLength: byteLengthSchema,
8459
+ hasContent: Schema214.optional(Schema214.Boolean)
8458
8460
  });
8459
8461
  var reviewSummaryLinkSchema = reviewSummaryLinkWireSchema.pipe(
8460
8462
  Schema214.decodeTo(
@@ -8466,12 +8468,14 @@ var reviewSummaryLinkSchema = reviewSummaryLinkWireSchema.pipe(
8466
8468
  token: decodeURIComponent(parts?.token ?? ""),
8467
8469
  expires: decodeURIComponent(parts?.expires ?? ""),
8468
8470
  signature: decodeURIComponent(parts?.signature ?? ""),
8469
- byteLength: link2.byteLength
8471
+ byteLength: link2.byteLength,
8472
+ ...link2.hasContent === void 0 ? {} : { hasContent: link2.hasContent }
8470
8473
  };
8471
8474
  },
8472
8475
  encode: (grant) => ({
8473
8476
  url: `/review-summaries/${encodeURIComponent(grant.token)}?expires=${encodeURIComponent(grant.expires)}&signature=${encodeURIComponent(grant.signature)}`,
8474
- byteLength: grant.byteLength
8477
+ byteLength: grant.byteLength,
8478
+ ...grant.hasContent === void 0 ? {} : { hasContent: grant.hasContent }
8475
8479
  })
8476
8480
  })
8477
8481
  )
@@ -8782,10 +8786,6 @@ var reviewRevisionParamsSchema = Schema215.Struct({
8782
8786
  });
8783
8787
  var reviewRecordSchema2 = Schema215.Struct({
8784
8788
  timing: Schema215.optional(Schema215.Literals(["decision", "record"])),
8785
- publishedAt: Schema215.optional(isoDateTimeSchema),
8786
- title: Schema215.optional(Schema215.String),
8787
- diagram: Schema215.optional(reviewDiagramSchema2),
8788
- guards: Schema215.optional(Schema215.Array(Schema215.String)),
8789
8789
  reviewId: reviewIdSchema,
8790
8790
  projectId: Schema215.String,
8791
8791
  branch: Schema215.String,
@@ -20935,7 +20935,8 @@ var ResolvePublishedReviewService = class _ResolvePublishedReviewService extends
20935
20935
  token: review.summaryToken,
20936
20936
  expires,
20937
20937
  signature,
20938
- byteLength: utf8ByteLength(review.summaryHtml)
20938
+ byteLength: utf8ByteLength(review.summaryHtml),
20939
+ hasContent: review.summaryHtml.trim().length > 0 && review.summaryHtml.trim() !== "<!doctype html><html><body></body></html>"
20939
20940
  },
20940
20941
  ...review.diagram === void 0 ? {} : { diagram: structuredClone(review.diagram) },
20941
20942
  layers,
@@ -22055,15 +22056,6 @@ var ReadReviewService = class _ReadReviewService extends Context162.Service()("@
22055
22056
  );
22056
22057
  };
22057
22058
 
22058
- // packages/reviews/src/rules/review-guards.ts
22059
- function reviewGuards(files) {
22060
- return files.filter(
22061
- (file) => file.status === "added" && /(?:^|\/)(?:architecture\/|[^/]*oxlint[^/]*|[^/]*eslint[^/]*|[^/]*lint-rules?\/)/.test(
22062
- file.path
22063
- )
22064
- ).map((file) => file.path);
22065
- }
22066
-
22067
22059
  // packages/reviews/src/services/list-project-reviews-service.ts
22068
22060
  import { Context as Context163, Effect as Effect194, Layer as Layer113 } from "effect";
22069
22061
  var ListProjectReviewsService = class _ListProjectReviewsService extends Context163.Service()("@porcelain/reviews/ListProjectReviewsService") {
@@ -22074,24 +22066,7 @@ var ListProjectReviewsService = class _ListProjectReviewsService extends Context
22074
22066
  return {
22075
22067
  execute: Effect194.fn("ListProjectReviewsService.execute")(
22076
22068
  function* (input) {
22077
- return yield* Effect194.forEach(
22078
- yield* reviews.list(input),
22079
- (record) => Effect194.gen(function* () {
22080
- const review = yield* reviews.read({
22081
- reviewId: record.reviewId
22082
- });
22083
- return {
22084
- ...record,
22085
- ...review ? {
22086
- ...review.diagram === void 0 ? {} : { diagram: review.diagram },
22087
- timing: review.timing ?? "decision",
22088
- guards: reviewGuards(review.files),
22089
- publishedAt: review.publishedAt,
22090
- title: review.verdict.asked.text
22091
- } : {}
22092
- };
22093
- })
22094
- );
22069
+ return yield* reviews.list(input);
22095
22070
  }
22096
22071
  )
22097
22072
  };
@@ -0,0 +1 @@
1
+ import{Tc as e,pc as t}from"./access-B0Mkde3w.js";import{t as n}from"./connected-workspace-CpwV0cE8.js";var r=t(),i=e(),a=()=>{let e=(0,r.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,i.jsx)(n,{notice:`not-found`}),e[0]=t):t=e[0],t};export{a as component};
@@ -0,0 +1 @@
1
+ import{Tc as e,pc as t}from"./access-B0Mkde3w.js";import{t as n}from"./index-DlP1CrCK.js";import{t as r}from"./review-route-DoO_IquA.js";var i=t(),a=e();function o(){let e=(0,i.c)(7),t=n.useParams(),o,s;e[0]===t?(o=e[1],s=e[2]):({layerId:o,...s}=t,e[0]=t,e[1]=o,e[2]=s);let c=n.useSearch(),l;return e[3]!==o||e[4]!==s||e[5]!==c?(l=(0,a.jsx)(r,{...s,...c,decision:o}),e[3]=o,e[4]=s,e[5]=c,e[6]=l):l=e[6],l}export{o as component};
@@ -0,0 +1 @@
1
+ import{t as e}from"./workspace-error-B29zfIj0.js";var t=e;export{t as errorComponent};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Tc as t,Tn as n,nl as r,pc as i,vc as a}from"./access-B0Mkde3w.js";import{t as o}from"./useRouterState-BVrL54_o.js";import{M as s,_ as c,a as l,g as u,h as d}from"./reviews-DXU6w8xA.js";import{l as f}from"./index-DlP1CrCK.js";import{t as p}from"./desktop-actions-BhK3H27W.js";var m=e(r(),1),h=i(),g=t();function _(e){let t=(0,h.c)(3),{children:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,g.jsx)(s,{}),t[0]=r):r=t[0];let i;return t[1]===n?i=t[2]:(i=(0,g.jsxs)(g.Fragment,{children:[r,(0,g.jsx)(l,{children:n})]}),t[1]=n,t[2]=i),i}function v(e){let t=(0,h.c)(6),{children:r}=e,[i,a]=(0,m.useState)(!0),o=n(),s;t[0]===o?s=t[1]:(s=o&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(u,{connection:o}),(0,g.jsx)(c,{connection:o})]}),t[0]=o,t[1]=s);let l;return t[2]!==r||t[3]!==i||t[4]!==s?(l=(0,g.jsx)(_,{children:(0,g.jsxs)(d,{open:i,onOpenChange:a,children:[r,s]})}),t[2]=r,t[3]=i,t[4]=s,t[5]=l):l=t[5],l}function y(){let e=(0,h.c)(4),t=n(),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={select:b},e[0]=r):r=e[0];let i=o(r),s;return e[1]!==t||e[2]!==i?(s=t?(0,g.jsxs)(v,{children:[(0,g.jsx)(f,{}),(0,g.jsx)(p,{connection:t,empty:i})]}):(0,g.jsx)(a,{to:`/pair`,replace:!0}),e[1]=t,e[2]=i,e[3]=s):s=e[3],s}function b(e){return e.location.pathname===`/`}export{y as component};
@@ -0,0 +1 @@
1
+ import{t as e}from"./workspace-error-B29zfIj0.js";var t=e;export{t as errorComponent};
@@ -1 +1 @@
1
- import{Ec as e,Xi as t,mc as n,qi as r,wn as i,yc as a}from"./access-CgdAbsDB.js";import{t as o}from"./useRouterState-7m7hAzAG.js";import{A as s}from"./reviews-BkUaPv4P.js";import"./edit-file-NoqbTKtz.js";import{t as c}from"./connected-workspace-73Vq_-Pm.js";import{c as l}from"./index-iGH92IrA.js";var u=n(),d=e();function f(){let e=(0,u.c)(18),n=l.useSearch(),f,m;e[0]===n?(f=e[1],m=e[2]):({worktree:m,...f}=n,e[0]=n,e[1]=f,e[2]=m);let h;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(h={select:p},e[3]=h):h=e[3];let g=o(h),{connection:_}=i(),v=s(_),y;e[4]!==v||e[5]!==m?(y=m===void 0?t(v,r(v)?.id):t(v,m),e[4]=v,e[5]=m,e[6]=y):y=e[6];let b=y;if(b&&g){let t;e[7]!==b.projectId||e[8]!==b.worktree.id?(t={projectId:b.projectId,worktreeId:b.worktree.id},e[7]=b.projectId,e[8]=b.worktree.id,e[9]=t):t=e[9];let n;e[10]!==f||e[11]!==m?(n=m===void 0?{}:f,e[10]=f,e[11]=m,e[12]=n):n=e[12];let r;return e[13]!==t||e[14]!==n?(r=(0,d.jsx)(a,{to:`/$projectId/$worktreeId`,params:t,search:n,replace:!0}),e[13]=t,e[14]=n,e[15]=r):r=e[15],r}let x=m!==void 0&&g?`missing-worktree`:void 0,S;return e[16]===x?S=e[17]:(S=(0,d.jsx)(c,{notice:x}),e[16]=x,e[17]=S),S}function p(e){return e.status===`idle`&&e.location.pathname===`/`}export{f as component};
1
+ import{Tc as e,Xi as t,pc as n,qi as r,vc as i,wn as a}from"./access-B0Mkde3w.js";import{t as o}from"./useRouterState-BVrL54_o.js";import{k as s}from"./reviews-DXU6w8xA.js";import"./edit-file-DyAqq6B7.js";import{t as c}from"./connected-workspace-CpwV0cE8.js";import{s as l}from"./index-DlP1CrCK.js";var u=n(),d=e();function f(){let e=(0,u.c)(18),n=l.useSearch(),f,m;e[0]===n?(f=e[1],m=e[2]):({worktree:m,...f}=n,e[0]=n,e[1]=f,e[2]=m);let h;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(h={select:p},e[3]=h):h=e[3];let g=o(h),{connection:_}=a(),v=s(_),y;e[4]!==v||e[5]!==m?(y=m===void 0?t(v,r(v)?.id):t(v,m),e[4]=v,e[5]=m,e[6]=y):y=e[6];let b=y;if(b&&g){let t;e[7]!==b.projectId||e[8]!==b.worktree.id?(t={projectId:b.projectId,worktreeId:b.worktree.id},e[7]=b.projectId,e[8]=b.worktree.id,e[9]=t):t=e[9];let n;e[10]!==f||e[11]!==m?(n=m===void 0?{}:f,e[10]=f,e[11]=m,e[12]=n):n=e[12];let r;return e[13]!==t||e[14]!==n?(r=(0,d.jsx)(i,{to:`/$projectId/$worktreeId`,params:t,search:n,replace:!0}),e[13]=t,e[14]=n,e[15]=r):r=e[15],r}let x=m!==void 0&&g?`missing-worktree`:void 0,S;return e[16]===x?S=e[17]:(S=(0,d.jsx)(c,{notice:x}),e[16]=x,e[17]=S),S}function p(e){return e.status===`idle`&&e.location.pathname===`/`}export{f as component};
@@ -0,0 +1 @@
1
+ import{Tc as e,pc as t}from"./access-B0Mkde3w.js";import{i as n}from"./index-DlP1CrCK.js";import{t as r}from"./review-route-DoO_IquA.js";var i=t(),a=e();function o(){let e=(0,i.c)(3),t=n.useParams(),o=n.useSearch(),s;return e[0]!==t||e[1]!==o?(s=(0,a.jsx)(r,{...t,...o}),e[0]=t,e[1]=o,e[2]=s):s=e[2],s}export{o as component};
@@ -1 +1 @@
1
- import{Ec as e,mc as t}from"./access-CgdAbsDB.js";import{n}from"./index-iGH92IrA.js";import{t as r}from"./review-route-C2awZrL6.js";var i=t(),a=e();function o(){let e=(0,i.c)(3),t=n.useParams(),o=n.useSearch(),s;return e[0]!==t||e[1]!==o?(s=(0,a.jsx)(r,{...t,...o}),e[0]=t,e[1]=o,e[2]=s):s=e[2],s}export{o as component};
1
+ import{Tc as e,pc as t}from"./access-B0Mkde3w.js";import{n}from"./index-DlP1CrCK.js";import{t as r}from"./review-route-DoO_IquA.js";var i=t(),a=e();function o(){let e=(0,i.c)(3),t=n.useParams(),o=n.useSearch(),s;return e[0]!==t||e[1]!==o?(s=(0,a.jsx)(r,{...t,...o}),e[0]=t,e[1]=o,e[2]=s):s=e[2],s}export{o as component};
@@ -0,0 +1 @@
1
+ import{Tc as e,pc as t,wn as n}from"./access-B0Mkde3w.js";import{t as r}from"./useMatch-DEcMF92D.js";import{c as i,k as a,u as o}from"./reviews-DXU6w8xA.js";import{n as s,t as c}from"./connected-workspace-CpwV0cE8.js";import{a as l}from"./index-DlP1CrCK.js";var u=t(),d=e();function f(){let e=(0,u.c)(5),{section:t}=l.useParams(),f;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(f={from:`/_paired/settings/$section/$environmentId`,shouldThrow:!1},e[0]=f):f=e[0];let p=r(f),m=o.some(e=>e.id===t)&&(p===void 0||t===`computers`),{connection:h}=n(),{environment:g}=a(h);if(s(m?g.custom?`Settings · ${g.name}`:`Settings`:`Porcelain`),!m){let t;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,d.jsx)(c,{notice:`not-found`}),e[1]=t):t=e[1],t}let _=p?.params.environmentId,v;return e[2]!==t||e[3]!==_?(v=(0,d.jsx)(c,{settingsOpen:!0,children:(0,d.jsx)(i,{section:t,environmentId:_})}),e[2]=t,e[3]=_,e[4]=v):v=e[4],v}export{f as component};
@@ -0,0 +1 @@
1
+ import{t as e}from"./workspace-error-B29zfIj0.js";var t=e;export{t as errorComponent};
@@ -0,0 +1 @@
1
+ import{Tc as e,Xi as t,pc as n,vc as r,wn as i}from"./access-B0Mkde3w.js";import{k as a}from"./reviews-DXU6w8xA.js";import"./edit-file-DyAqq6B7.js";import{t as o}from"./connected-workspace-CpwV0cE8.js";import{o as s}from"./index-DlP1CrCK.js";var c=n(),l=e();function u(){let e=(0,c.c)(10),{projectId:n,worktreeId:u}=s.useParams(),d=s.useSearch(),{connection:f}=i(),p=a(f),m;e[0]!==p||e[1]!==u?(m=t(p,u),e[0]=p,e[1]=u,e[2]=m):m=e[2];let h=m;if(h?.projectId!==n){let t;return e[3]!==d||e[4]!==u?(t=(0,l.jsx)(r,{to:`/`,search:{...d,worktree:u},replace:!0}),e[3]=d,e[4]=u,e[5]=t):t=e[5],t}let g;return e[6]!==p||e[7]!==d||e[8]!==h?(g=(0,l.jsx)(o,{review:{selection:h,search:d,inventory:p}}),e[6]=p,e[7]=d,e[8]=h,e[9]=g):g=e[9],g}export{u as component};
@@ -0,0 +1 @@
1
+ import{En as e,Tc as t,pc as n,vc as r}from"./access-B0Mkde3w.js";import"./reviews-DXU6w8xA.js";import"./edit-file-DyAqq6B7.js";import"./connected-workspace-CpwV0cE8.js";import"./workspace-pending-BpsajnZR.js";import{r as i}from"./index-DlP1CrCK.js";var a=n(),o=t();function s(){let t=(0,a.c)(9),{environmentId:n,projectId:s,worktreeId:c}=i.useParams(),l=i.useSearch();e(n);{let e;return t[0]!==l||t[1]!==c?(e=(0,o.jsx)(r,{to:`/`,search:{...l,worktree:c},replace:!0}),t[0]=l,t[1]=c,t[2]=e):e=t[2],e}}export{s as component};
@@ -0,0 +1 @@
1
+ import{t as e}from"./workspace-error-B29zfIj0.js";var t=e;export{t as errorComponent};