@snagset/server 0.0.3 → 0.1.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.md +4 -3
- package/dist/app.js +167 -30
- package/dist/app.js.map +1 -1
- package/dist/bin.js +46 -9
- package/dist/bin.js.map +1 -1
- package/dist/boot.js +105 -54
- package/dist/boot.js.map +1 -1
- package/dist/config.generated.js +5 -2
- package/dist/config.generated.js.map +1 -1
- package/dist/db/connect.js +7 -0
- package/dist/db/connect.js.map +1 -1
- package/dist/db/migrations/0005_studio_reviewers.sql +45 -0
- package/dist/db/migrations/0006_instance_settings.sql +69 -0
- package/dist/db/migrations/0007_jira_provider.no-txn.sql +13 -0
- package/dist/domain.js +129 -0
- package/dist/domain.js.map +1 -0
- package/dist/instance/settings.js +54 -0
- package/dist/instance/settings.js.map +1 -0
- package/dist/integrations/github.js +112 -0
- package/dist/integrations/github.js.map +1 -0
- package/dist/integrations/inbound.js +88 -0
- package/dist/integrations/inbound.js.map +1 -0
- package/dist/integrations/jira.js +129 -0
- package/dist/integrations/jira.js.map +1 -0
- package/dist/integrations/linear.js +111 -0
- package/dist/integrations/linear.js.map +1 -0
- package/dist/integrations/outbox.js +305 -0
- package/dist/integrations/outbox.js.map +1 -0
- package/dist/integrations/slack.js +135 -0
- package/dist/integrations/slack.js.map +1 -0
- package/dist/integrations/store.js +101 -0
- package/dist/integrations/store.js.map +1 -0
- package/dist/mail/index.js +21 -11
- package/dist/mail/index.js.map +1 -1
- package/dist/mail/resolve.js +80 -0
- package/dist/mail/resolve.js.map +1 -0
- package/dist/projectCache.js +3 -2
- package/dist/projectCache.js.map +1 -1
- package/dist/projects.js +8 -2
- package/dist/projects.js.map +1 -1
- package/dist/routes/account.js +59 -0
- package/dist/routes/account.js.map +1 -0
- package/dist/routes/activity.js +111 -0
- package/dist/routes/activity.js.map +1 -0
- package/dist/routes/anchorReports.js +196 -0
- package/dist/routes/anchorReports.js.map +1 -0
- package/dist/routes/assignees.js +139 -0
- package/dist/routes/assignees.js.map +1 -0
- package/dist/routes/attachments.js +2 -2
- package/dist/routes/attachments.js.map +1 -1
- package/dist/routes/bodyLimit.js +60 -0
- package/dist/routes/bodyLimit.js.map +1 -0
- package/dist/routes/comments.js +27 -17
- package/dist/routes/comments.js.map +1 -1
- package/dist/routes/cors.js +10 -1
- package/dist/routes/cors.js.map +1 -1
- package/dist/routes/instance.js +164 -0
- package/dist/routes/instance.js.map +1 -0
- package/dist/routes/integrations.js +610 -0
- package/dist/routes/integrations.js.map +1 -0
- package/dist/routes/jobs.js +15 -3
- package/dist/routes/jobs.js.map +1 -1
- package/dist/routes/mcpTokens.js +119 -0
- package/dist/routes/mcpTokens.js.map +1 -0
- package/dist/routes/members.js +177 -0
- package/dist/routes/members.js.map +1 -0
- package/dist/routes/owner.js +64 -7
- package/dist/routes/owner.js.map +1 -1
- package/dist/routes/sites.js +181 -8
- package/dist/routes/sites.js.map +1 -1
- package/dist/routes/threads.js +276 -9
- package/dist/routes/threads.js.map +1 -1
- package/dist/serverless.js +39 -6
- package/dist/serverless.js.map +1 -1
- package/dist/studioReviewers.js +67 -0
- package/dist/studioReviewers.js.map +1 -0
- package/dist/vendor/adapters/outbound/sanitise.js +18 -3
- package/dist/vendor/types/brief.js +121 -0
- package/package.json +1 -1
- package/static/dashboard/assets/CompositeItem-CoPuxIvr.js +1 -0
- package/static/dashboard/assets/ConfirmDialog-DkCcJwll.js +1 -0
- package/static/dashboard/assets/CopyButton-BNa2pLLv.js +1 -0
- package/static/dashboard/assets/FieldItemContext-DQXjpFtW.js +1 -0
- package/static/dashboard/assets/InstallTag-SOlWl7Hx.js +1 -0
- package/static/dashboard/assets/SaveState-CmxB4XyX.js +6 -0
- package/static/dashboard/assets/_app-DNkv3HBi.js +1 -0
- package/static/dashboard/assets/_app-xVQe811c.js +56 -0
- package/static/dashboard/assets/activity-DsMa5Ja6.js +1 -0
- package/static/dashboard/assets/arrow-left-vQV4xhAD.js +6 -0
- package/static/dashboard/assets/avatar-DuPL6QD_.js +1 -0
- package/static/dashboard/assets/badge-BWjiIc8T.js +1 -0
- package/static/dashboard/assets/card-BIBfCno8.js +1 -0
- package/static/dashboard/assets/check-Dpx6GTdT.js +6 -0
- package/static/dashboard/assets/chevron-right-DKIlBUGN.js +6 -0
- package/static/dashboard/assets/copy-DCbhEe2L.js +6 -0
- package/static/dashboard/assets/createBaseUIEventDetails-C_ZVkrgp.js +1 -0
- package/static/dashboard/assets/createLucideIcon-C_IGE4WD.js +36 -0
- package/static/dashboard/assets/dialog-BT2uWf4e.js +6 -0
- package/static/dashboard/assets/dropdown-menu-DSXzPAwB.js +11 -0
- package/static/dashboard/assets/image-off-DGWejLDG.js +6 -0
- package/static/dashboard/assets/index-BRTBtV91.css +1 -0
- package/static/dashboard/assets/index-D6FWZoJT.js +129 -0
- package/static/dashboard/assets/label-9QsSpLMA.js +1 -0
- package/static/dashboard/assets/labels--UUyt9uB.js +1 -0
- package/static/dashboard/assets/layout-grid-UPGEmEw-.js +6 -0
- package/static/dashboard/assets/me-0HQsBXLU.js +1 -0
- package/static/dashboard/assets/parts-C29uZ5zo.js +1 -0
- package/static/dashboard/assets/plus-BFNS5LcY.js +6 -0
- package/static/dashboard/assets/s._site-D6Ep2tdc.js +1 -0
- package/static/dashboard/assets/s._site.comments-BRVI5gpJ.js +39 -0
- package/static/dashboard/assets/s._site.reviewers-CiEkZnnp.js +1 -0
- package/static/dashboard/assets/s._site.settings-BqLGyfEd.js +1 -0
- package/static/dashboard/assets/setup-dUMCPWdf.js +1 -0
- package/static/dashboard/assets/sign-in-CdRa-bio.js +1 -0
- package/static/dashboard/assets/sites-CmbtFKoo.js +1 -0
- package/static/dashboard/assets/studio-BHuVXWZh.js +1 -0
- package/static/dashboard/assets/studio-BjeTOKda.js +1 -0
- package/static/dashboard/assets/studio.index--kuzOs7w.js +1 -0
- package/static/dashboard/assets/studio.integrations-Bq6HP80a.js +1 -0
- package/static/dashboard/assets/studio.members-8AB1KYsw.js +1 -0
- package/static/dashboard/assets/sun-BCiTcgnh.js +16 -0
- package/static/dashboard/assets/table-BXmeI_yA.js +1 -0
- package/static/dashboard/assets/update-duXzIzFS.js +1 -0
- package/static/dashboard/assets/useBaseQuery-Cp9wivVR.js +1 -0
- package/static/dashboard/assets/useQuery-BZXZlOqO.js +1 -0
- package/static/dashboard/assets/useRender-CO8aPW06.js +1 -0
- package/static/dashboard/assets/users-Dvw2FCKM.js +6 -0
- package/static/dashboard/assets/welcome-BHKjw20b.js +11 -0
- package/static/dashboard/assets/you-RBpAfUMU.js +1 -0
- package/static/dashboard/assets/zod-BpyjQIvb.js +1 -0
- package/static/dashboard/index.html +17 -2
- package/static/widget/snag.capture.js +1 -1
- package/static/widget/snag.dock.js +1 -1
- package/static/widget/snag.panels.js +1 -1
- package/static/widget/snag.runtime.js +2 -2
- package/static/widget/snag.text.js +1 -1
- package/vercel.json +4 -0
- package/static/dashboard/assets/index-DsUJ96yc.css +0 -1
- package/static/dashboard/assets/index-DultqpS7.js +0 -1
package/dist/routes/threads.js
CHANGED
|
@@ -5,6 +5,9 @@ import { ID_PREFIX } from "../vendor/types/names.js";
|
|
|
5
5
|
import { queueCommentNotice, queueResolvedNotice } from "../mail/notify.js";
|
|
6
6
|
import { effectiveWriteMode } from "./sessions.js";
|
|
7
7
|
import { mcpAllows, scopeDenied, checkWriteBudget, budgetExhausted, recordAgentWrite, agentReviewer, } from "./mcpAuth.js";
|
|
8
|
+
import { inPool } from "./assignees.js";
|
|
9
|
+
import { briefMarkdown } from "../vendor/types/brief.js";
|
|
10
|
+
import { queueIntegrationEvent } from "../integrations/outbox.js";
|
|
8
11
|
/**
|
|
9
12
|
* Wire id ⇄ row id — 05 §3.5, verbatim: *"id uuid PRIMARY KEY — client-minted
|
|
10
13
|
* UUIDv7; wire form 'thr_…'"*.
|
|
@@ -65,7 +68,15 @@ features,
|
|
|
65
68
|
* accumulate for the life of the install and arrive in one burst the day
|
|
66
69
|
* somebody configures Resend.
|
|
67
70
|
*/
|
|
68
|
-
notifications =
|
|
71
|
+
notifications = async () => false,
|
|
72
|
+
/** Where this instance lives (SNAGSET_BASE_URL) — the brief's screenshot links are absolute. */
|
|
73
|
+
baseUrl = "http://localhost:8080",
|
|
74
|
+
/**
|
|
75
|
+
* D95/D97: the site's tracker connections — id, provider, and whether
|
|
76
|
+
* issues are made on every new thread. Injected so this file never opens
|
|
77
|
+
* a token; the worker does that.
|
|
78
|
+
*/
|
|
79
|
+
trackers = async () => []) {
|
|
69
80
|
const app = new Hono();
|
|
70
81
|
/** Resolve `{uid}`, and 404 rather than leak whether a uid exists. */
|
|
71
82
|
const project = (uid) => projects.get(uid);
|
|
@@ -111,9 +122,14 @@ notifications = false) {
|
|
|
111
122
|
* `originAllowed` is absent (never false) when there is no Origin header:
|
|
112
123
|
* same-origin pages and curl are not strangers.
|
|
113
124
|
*/
|
|
114
|
-
|
|
125
|
+
// D91 — the switch, 05 §4.9 layer 6: a paused site is writable from
|
|
126
|
+
// nowhere, and the stub reads `writable` and stays dormant. Said before
|
|
127
|
+
// the origin verdict, because "switched off" is the more useful sentence.
|
|
128
|
+
const paused = p.status !== "active";
|
|
129
|
+
const writable = c.get("originAllowed") !== false && !paused;
|
|
115
130
|
const base = {
|
|
116
131
|
uid: p.uid,
|
|
132
|
+
status: p.status,
|
|
117
133
|
// A9b, and it is a fact about THIS instance rather than a constant:
|
|
118
134
|
// derived from whether a bucket is connected. False hides the screenshot
|
|
119
135
|
// control rather than offering one whose upload would fail — annotation
|
|
@@ -131,7 +147,7 @@ notifications = false) {
|
|
|
131
147
|
writable,
|
|
132
148
|
};
|
|
133
149
|
if (!writable)
|
|
134
|
-
return c.json({ ...base, reason: "origin_not_allowed" });
|
|
150
|
+
return c.json({ ...base, reason: paused ? "project_paused" : "origin_not_allowed" });
|
|
135
151
|
// T10/M2-22: the round HISTORY rides the config the widget already fetches
|
|
136
152
|
// at mount, so the dock's selector costs no extra request. Behind the
|
|
137
153
|
// origin split with `keyPrefix` (§7.2): the least sensitive PRIVATE things
|
|
@@ -216,6 +232,21 @@ notifications = false) {
|
|
|
216
232
|
const status = asStudio ? c.req.query("status") : undefined;
|
|
217
233
|
const requestedRound = Number(c.req.query("round")) || null;
|
|
218
234
|
const q = asStudio ? (c.req.query("q") ?? "").trim() : "";
|
|
235
|
+
/**
|
|
236
|
+
* `?assignee=rev_…|unassigned` — 05 §6.4b's triage filter ("what has
|
|
237
|
+
* nobody picked up"). `unassigned` is a word rather than an empty value
|
|
238
|
+
* because `assignee=` with nothing after it is indistinguishable from an
|
|
239
|
+
* absent parameter on the wire. Studio-only, like status and q: a filter
|
|
240
|
+
* the widget does not draw.
|
|
241
|
+
*/
|
|
242
|
+
const assigneeRaw = asStudio ? c.req.query("assignee")?.trim() : undefined;
|
|
243
|
+
let assigneeFilter = null;
|
|
244
|
+
if (assigneeRaw) {
|
|
245
|
+
assigneeFilter = assigneeRaw === "unassigned" ? "unassigned" : rowId(assigneeRaw, ID_PREFIX.reviewer);
|
|
246
|
+
if (!assigneeFilter) {
|
|
247
|
+
return fail(c, 400, "validation_failed", "assignee must be a reviewer id (rev_…) or the word unassigned.");
|
|
248
|
+
}
|
|
249
|
+
}
|
|
219
250
|
/**
|
|
220
251
|
* `?since=` — 05 §6.3's delta poll, and A10's whole realtime story.
|
|
221
252
|
*
|
|
@@ -284,6 +315,15 @@ notifications = false) {
|
|
|
284
315
|
t.created_at, t.updated_at, t.resolved_at, t.comment_count_public,
|
|
285
316
|
t.route, e.key AS environment_key, rd.number AS round, rd.name AS round_name,
|
|
286
317
|
r.name AS created_by_name, r.kind AS created_by_kind, r.id AS created_by_id,
|
|
318
|
+
ar.id AS assignee_id, ar.name AS assignee_name, ar.kind AS assignee_kind,
|
|
319
|
+
(ar.user_id IS NOT NULL) AS assignee_is_team,
|
|
320
|
+
COALESCE(
|
|
321
|
+
(SELECT json_agg(json_build_object(
|
|
322
|
+
'provider', x.provider, 'kind', x.kind, 'externalId', x.external_id, 'url', x.url, 'status', x.status)
|
|
323
|
+
ORDER BY x.synced_at)
|
|
324
|
+
FROM external_refs x
|
|
325
|
+
WHERE x.thread_id = t.id AND x.status <> 'detached'),
|
|
326
|
+
'[]'::json) AS refs,
|
|
287
327
|
COALESCE(
|
|
288
328
|
(SELECT json_agg(json_build_object(
|
|
289
329
|
'id', c.id, 'body', c.body, 'createdAt', c.created_at,
|
|
@@ -317,6 +357,9 @@ notifications = false) {
|
|
|
317
357
|
(t.deleted_at IS NULL AND ${asOwner ? tx `true` : tx `t.private = false`}) AS visible
|
|
318
358
|
FROM threads t
|
|
319
359
|
JOIN reviewers r ON r.id = t.created_by
|
|
360
|
+
-- The assignee, when there is one (05 section 6.4b). LEFT: most
|
|
361
|
+
-- threads have nobody yet, and an inner join would hide them.
|
|
362
|
+
LEFT JOIN reviewers ar ON ar.id = t.assignee_id
|
|
320
363
|
JOIN environments e ON e.id = t.environment_id
|
|
321
364
|
-- Joined for the round filter, and the join is the fix for a real
|
|
322
365
|
-- trap: threads.round_number is the thread's position WITHIN its round
|
|
@@ -345,6 +388,11 @@ notifications = false) {
|
|
|
345
388
|
: tx `e.is_default`}
|
|
346
389
|
${key || !route ? tx `` : tx `AND t.route = ${route}`}
|
|
347
390
|
${key || !status ? tx `` : tx `AND t.status = ${status}::snag_thread_status`}
|
|
391
|
+
${key || !assigneeFilter
|
|
392
|
+
? tx ``
|
|
393
|
+
: assigneeFilter === "unassigned"
|
|
394
|
+
? tx `AND t.assignee_id IS NULL`
|
|
395
|
+
: tx `AND t.assignee_id = ${assigneeFilter}::uuid`}
|
|
348
396
|
-- Absent round query param: an OWNER still sees every round
|
|
349
397
|
-- (unchanged), but a non-owner reader defaults to the latest OPEN
|
|
350
398
|
-- round, so a fresh page load is D2-clean rather than showing a
|
|
@@ -431,6 +479,10 @@ notifications = false) {
|
|
|
431
479
|
if (!session) {
|
|
432
480
|
return fail(c, 401, "unauthorized", "Open your review link, or reload the page, and try again.");
|
|
433
481
|
}
|
|
482
|
+
if (p.status !== "active") {
|
|
483
|
+
// D91: the switch is off — writes refused, reads work (05 §4.9 layer 6).
|
|
484
|
+
return fail(c, 403, "project_paused", "This site's widget is switched off. Its owner can switch it back on.");
|
|
485
|
+
}
|
|
434
486
|
if (!session.perm.includes("thread:create")) {
|
|
435
487
|
// §4.8's matrix. A read-only session gets a sentence about permission,
|
|
436
488
|
// not about authentication — they ARE signed in.
|
|
@@ -559,8 +611,20 @@ notifications = false) {
|
|
|
559
611
|
FROM ins WHERE ${commentBody}::text IS NOT NULL
|
|
560
612
|
RETURNING id, body, created_at
|
|
561
613
|
),
|
|
614
|
+
-- The author's row: seen now, and the counters the assignee pool
|
|
615
|
+
-- reads (05 section 3.4, section 6.4b -- "everyone who has
|
|
616
|
+
-- commented" is thread_count > 0 OR comment_count > 0). Until D90
|
|
617
|
+
-- nothing moved thread_count at all, so a client whose only act
|
|
618
|
+
-- was leaving a pin was invisible to the pool. ONE update: two
|
|
619
|
+
-- data-modifying CTEs touching the same row in one statement is
|
|
620
|
+
-- unsupported in Postgres and only one of them lands -- the first
|
|
621
|
+
-- attempt at this was a second CTE, and it lost to this one.
|
|
562
622
|
touched AS (
|
|
563
|
-
UPDATE reviewers
|
|
623
|
+
UPDATE reviewers
|
|
624
|
+
SET last_seen_at = now(),
|
|
625
|
+
thread_count = thread_count + 1,
|
|
626
|
+
comment_count = comment_count + ${counted}::int
|
|
627
|
+
WHERE id = ${reviewerId}::uuid RETURNING id
|
|
564
628
|
)
|
|
565
629
|
SELECT ins.*, rv.id AS created_by_id, rv.name AS created_by_name, rv.kind AS created_by_kind,
|
|
566
630
|
COALESCE(
|
|
@@ -592,7 +656,7 @@ notifications = false) {
|
|
|
592
656
|
* A body-less thread queues nothing. There is no sentence to send, and
|
|
593
657
|
* "somebody pinned something" is not worth an email.
|
|
594
658
|
*/
|
|
595
|
-
if (
|
|
659
|
+
if (commentBody && (await notifications())) {
|
|
596
660
|
await queueCommentNotice(tx, {
|
|
597
661
|
orgId: p.org_id,
|
|
598
662
|
projectId: p.id,
|
|
@@ -605,6 +669,22 @@ notifications = false) {
|
|
|
605
669
|
pageUrl: body.context?.url ?? "",
|
|
606
670
|
}, randomUUID());
|
|
607
671
|
}
|
|
672
|
+
// D95: a site whose tracker makes an issue on every new thread. Same
|
|
673
|
+
// transaction as the thread, keyed on the thread, so a retried POST
|
|
674
|
+
// cannot make a second issue.
|
|
675
|
+
for (const link of await trackers(p.org_id, p.id)) {
|
|
676
|
+
if (link.createOn !== "thread.created")
|
|
677
|
+
continue;
|
|
678
|
+
await queueIntegrationEvent(tx, {
|
|
679
|
+
orgId: p.org_id,
|
|
680
|
+
projectId: p.id,
|
|
681
|
+
integrationId: link.id,
|
|
682
|
+
threadId,
|
|
683
|
+
provider: link.provider,
|
|
684
|
+
topic: "issue.create",
|
|
685
|
+
version: 0,
|
|
686
|
+
});
|
|
687
|
+
}
|
|
608
688
|
return row;
|
|
609
689
|
});
|
|
610
690
|
c.header("x-snagset-config-version", String(p.config_version));
|
|
@@ -640,6 +720,15 @@ notifications = false) {
|
|
|
640
720
|
t.created_at, t.updated_at, t.resolved_at, t.comment_count_public,
|
|
641
721
|
t.route, e.key AS environment_key, rd.number AS round, rd.name AS round_name,
|
|
642
722
|
r.id AS created_by_id, r.name AS created_by_name, r.kind AS created_by_kind,
|
|
723
|
+
ar.id AS assignee_id, ar.name AS assignee_name, ar.kind AS assignee_kind,
|
|
724
|
+
(ar.user_id IS NOT NULL) AS assignee_is_team,
|
|
725
|
+
COALESCE(
|
|
726
|
+
(SELECT json_agg(json_build_object(
|
|
727
|
+
'provider', x.provider, 'kind', x.kind, 'externalId', x.external_id, 'url', x.url, 'status', x.status)
|
|
728
|
+
ORDER BY x.synced_at)
|
|
729
|
+
FROM external_refs x
|
|
730
|
+
WHERE x.thread_id = t.id AND x.status <> 'detached'),
|
|
731
|
+
'[]'::json) AS refs,
|
|
643
732
|
COALESCE(
|
|
644
733
|
(SELECT json_agg(json_build_object(
|
|
645
734
|
'id', c2.id, 'body', c2.body, 'createdAt', c2.created_at,
|
|
@@ -650,6 +739,7 @@ notifications = false) {
|
|
|
650
739
|
'[]'::json) AS comments
|
|
651
740
|
FROM threads t
|
|
652
741
|
JOIN reviewers r ON r.id = t.created_by
|
|
742
|
+
LEFT JOIN reviewers ar ON ar.id = t.assignee_id
|
|
653
743
|
JOIN environments e ON e.id = t.environment_id
|
|
654
744
|
JOIN rounds rd ON rd.id = t.round_id
|
|
655
745
|
WHERE t.id = ${threadId}::uuid
|
|
@@ -685,6 +775,81 @@ notifications = false) {
|
|
|
685
775
|
* `thread:resolve` (§4.8's matrix — it is in the default link grant, because
|
|
686
776
|
* a client marking their own snag done is the loop D4 is built around).
|
|
687
777
|
*/
|
|
778
|
+
/**
|
|
779
|
+
* 05 §6.4 endpoint 8 — one thread — and D93's brief: the same row as
|
|
780
|
+
* `text/markdown` when the id ends in `.md`, for curl, an agent's shell or
|
|
781
|
+
* a ticket body. The privacy rule is the list's: a private thread is absent
|
|
782
|
+
* for a non-owner, which reads as "no such thread" rather than confirming
|
|
783
|
+
* one exists (§6.4a), and team-only replies stay out of a client's copy.
|
|
784
|
+
*/
|
|
785
|
+
app.get("/api/v1/projects/:uid/threads/:id", async (c) => {
|
|
786
|
+
const p = await project(c.req.param("uid"));
|
|
787
|
+
if (!p)
|
|
788
|
+
return fail(c, 404, "project_not_found", "No project with that uid.");
|
|
789
|
+
const owner = c.get("owner");
|
|
790
|
+
const session = c.get("session");
|
|
791
|
+
const mcp = c.get("mcp");
|
|
792
|
+
const asOwner = !!owner && owner.orgId === p.org_id;
|
|
793
|
+
const asAgent = mcpAllows(mcp, p.org_id, "threads:read");
|
|
794
|
+
if (mcp && !asAgent)
|
|
795
|
+
return scopeDenied(c, "threads:read");
|
|
796
|
+
if (!asOwner && !asAgent && !session) {
|
|
797
|
+
return fail(c, 401, "unauthorized", "Open your review link, or reload the page, and try again.");
|
|
798
|
+
}
|
|
799
|
+
const raw = c.req.param("id");
|
|
800
|
+
const wantMarkdown = raw.endsWith(".md");
|
|
801
|
+
const threadRow = rowId(wantMarkdown ? raw.slice(0, -3) : raw, ID_PREFIX.thread);
|
|
802
|
+
if (!threadRow)
|
|
803
|
+
return fail(c, 404, "thread_not_found", "No such thread in this project.");
|
|
804
|
+
const [row] = await inOrg(sql, p.org_id, async (tx) => tx `
|
|
805
|
+
SELECT t.id, t.key, t.status, t.version, t.anchor, t.anchor_state, t.context, t.round_number,
|
|
806
|
+
t.created_at, t.updated_at, t.resolved_at, t.comment_count_public,
|
|
807
|
+
t.route, e.key AS environment_key, rd.number AS round, rd.name AS round_name,
|
|
808
|
+
r.id AS created_by_id, r.name AS created_by_name, r.kind AS created_by_kind,
|
|
809
|
+
ar.id AS assignee_id, ar.name AS assignee_name, ar.kind AS assignee_kind,
|
|
810
|
+
(ar.user_id IS NOT NULL) AS assignee_is_team,
|
|
811
|
+
COALESCE(
|
|
812
|
+
(SELECT json_agg(json_build_object(
|
|
813
|
+
'provider', x.provider, 'kind', x.kind, 'externalId', x.external_id, 'url', x.url, 'status', x.status)
|
|
814
|
+
ORDER BY x.synced_at)
|
|
815
|
+
FROM external_refs x
|
|
816
|
+
WHERE x.thread_id = t.id AND x.status <> 'detached'),
|
|
817
|
+
'[]'::json) AS refs,
|
|
818
|
+
COALESCE(
|
|
819
|
+
(SELECT json_agg(json_build_object(
|
|
820
|
+
'id', c2.id, 'body', c2.body, 'createdAt', c2.created_at,
|
|
821
|
+
'author', json_build_object('id', cr.id, 'name', cr.name, 'kind', cr.kind))
|
|
822
|
+
ORDER BY c2.seq)
|
|
823
|
+
FROM comments c2 JOIN reviewers cr ON cr.id = c2.author_id
|
|
824
|
+
WHERE c2.thread_id = t.id AND c2.deleted_at IS NULL
|
|
825
|
+
${asOwner ? tx `` : tx `AND c2.private = false`}),
|
|
826
|
+
'[]'::json) AS comments,
|
|
827
|
+
COALESCE(
|
|
828
|
+
(SELECT json_agg(json_build_object(
|
|
829
|
+
'id', a.id, 'kind', a.kind, 'contentType', a.content_type,
|
|
830
|
+
'width', a.width, 'height', a.height)
|
|
831
|
+
ORDER BY a.created_at)
|
|
832
|
+
FROM attachments a
|
|
833
|
+
WHERE a.thread_id = t.id AND a.deleted_at IS NULL AND a.state = 'bound'),
|
|
834
|
+
'[]'::json) AS attachments
|
|
835
|
+
FROM threads t
|
|
836
|
+
JOIN reviewers r ON r.id = t.created_by
|
|
837
|
+
LEFT JOIN reviewers ar ON ar.id = t.assignee_id
|
|
838
|
+
JOIN environments e ON e.id = t.environment_id
|
|
839
|
+
JOIN rounds rd ON rd.id = t.round_id
|
|
840
|
+
WHERE t.id = ${threadRow}::uuid
|
|
841
|
+
AND t.project_id = ${p.id}::uuid
|
|
842
|
+
AND t.deleted_at IS NULL
|
|
843
|
+
AND ${asOwner ? tx `true` : tx `t.private = false`}
|
|
844
|
+
`);
|
|
845
|
+
if (!row)
|
|
846
|
+
return fail(c, 404, "thread_not_found", "No such thread in this project.");
|
|
847
|
+
const shaped = shape(row);
|
|
848
|
+
if (!wantMarkdown)
|
|
849
|
+
return c.json(shaped);
|
|
850
|
+
const md = briefMarkdown(shaped, { name: p.name, dashboardOrigin: baseUrl });
|
|
851
|
+
return c.text(md, 200, { "content-type": "text/markdown; charset=utf-8" });
|
|
852
|
+
});
|
|
688
853
|
app.patch("/api/v1/projects/:uid/threads/:id", async (c) => {
|
|
689
854
|
const p = await project(c.req.param("uid"));
|
|
690
855
|
if (!p)
|
|
@@ -745,11 +910,46 @@ notifications = false) {
|
|
|
745
910
|
field: "private",
|
|
746
911
|
});
|
|
747
912
|
}
|
|
913
|
+
/**
|
|
914
|
+
* `assignee` — 05 §6.4b, D90. A reviewer id from the pool, or null to
|
|
915
|
+
* un-assign. Same register as `private`: the studio's own routing of
|
|
916
|
+
* work, so an owner always may, a reviewer session needs the permission
|
|
917
|
+
* that names it, and a refusal is `403 field_not_permitted` with
|
|
918
|
+
* `details.field` rather than a silently dropped field — a client that
|
|
919
|
+
* sends it and gets a 200 will believe the thread moved.
|
|
920
|
+
*/
|
|
921
|
+
const hasAssignee = !!body && "assignee" in body;
|
|
922
|
+
let assigneeRow;
|
|
923
|
+
if (hasAssignee) {
|
|
924
|
+
if (body.assignee === null) {
|
|
925
|
+
assigneeRow = null;
|
|
926
|
+
}
|
|
927
|
+
else {
|
|
928
|
+
assigneeRow = rowId(body.assignee, ID_PREFIX.reviewer);
|
|
929
|
+
if (!assigneeRow) {
|
|
930
|
+
return fail(c, 400, "validation_failed", "assignee must be a reviewer id (rev_…) or null.", {
|
|
931
|
+
field: "assignee",
|
|
932
|
+
});
|
|
933
|
+
}
|
|
934
|
+
}
|
|
935
|
+
if (asAgent && !asOwner) {
|
|
936
|
+
// 07 §8.6 mitigation 4 again: an agent proposes, never disposes —
|
|
937
|
+
// and handing a thread to a person is disposing of it.
|
|
938
|
+
return fail(c, 403, "field_not_permitted", "An agent cannot assign a comment to someone.", {
|
|
939
|
+
field: "assignee",
|
|
940
|
+
});
|
|
941
|
+
}
|
|
942
|
+
if (!asOwner && !session?.perm.includes("thread:assign")) {
|
|
943
|
+
return fail(c, 403, "field_not_permitted", "This review link does not allow assigning comments.", {
|
|
944
|
+
field: "assignee",
|
|
945
|
+
});
|
|
946
|
+
}
|
|
947
|
+
}
|
|
748
948
|
const status = typeof body?.status === "string" ? body.status : undefined;
|
|
749
949
|
// `private` alone is a valid patch — the status is only required when it is
|
|
750
950
|
// the thing being changed.
|
|
751
|
-
if (status === undefined && wantsPrivate === undefined) {
|
|
752
|
-
return fail(c, 400, "validation_failed", "Send status, private, or
|
|
951
|
+
if (status === undefined && wantsPrivate === undefined && !hasAssignee) {
|
|
952
|
+
return fail(c, 400, "validation_failed", "Send status, private, assignee, or any of them.");
|
|
753
953
|
}
|
|
754
954
|
if (status !== undefined && !["open", "progress", "review", "resolved"].includes(status)) {
|
|
755
955
|
return fail(c, 400, "validation_failed", "status must be one of open, progress, review, resolved.");
|
|
@@ -807,6 +1007,8 @@ notifications = false) {
|
|
|
807
1007
|
// "no such thread" would send a client into a refetch loop for a thread
|
|
808
1008
|
// that is very much there.
|
|
809
1009
|
let conflict;
|
|
1010
|
+
// Set by the transaction when the candidate assignee is not in the pool.
|
|
1011
|
+
let badAssignee = false;
|
|
810
1012
|
const [row] = await inOrg(sql, p.org_id, async (tx) => {
|
|
811
1013
|
/**
|
|
812
1014
|
* F-26's check, INSIDE the transaction and holding the row.
|
|
@@ -832,6 +1034,23 @@ notifications = false) {
|
|
|
832
1034
|
return [];
|
|
833
1035
|
}
|
|
834
1036
|
}
|
|
1037
|
+
/**
|
|
1038
|
+
* The candidate must be IN THE POOL — §6.4b's predicate, shared with
|
|
1039
|
+
* the pool route — and in THIS project. Blocked and erased reviewers
|
|
1040
|
+
* keep the assignments they have but take no new ones; a guest who
|
|
1041
|
+
* never wrote is not assignable; a reviewer id from another project is
|
|
1042
|
+
* nobody at all.
|
|
1043
|
+
*/
|
|
1044
|
+
if (assigneeRow) {
|
|
1045
|
+
const [ok] = await tx `
|
|
1046
|
+
SELECT r.id FROM reviewers r
|
|
1047
|
+
WHERE r.id = ${assigneeRow}::uuid AND r.project_id = ${p.id}::uuid AND ${inPool(tx)}
|
|
1048
|
+
`;
|
|
1049
|
+
if (!ok) {
|
|
1050
|
+
badAssignee = true;
|
|
1051
|
+
return [];
|
|
1052
|
+
}
|
|
1053
|
+
}
|
|
835
1054
|
/**
|
|
836
1055
|
* §6.4 consequence TWO of three, and it runs before the CTE rather than
|
|
837
1056
|
* inside it.
|
|
@@ -869,6 +1088,7 @@ notifications = false) {
|
|
|
869
1088
|
? tx `now()`
|
|
870
1089
|
: tx `NULL`},
|
|
871
1090
|
private = ${wantsPrivate === undefined ? tx `private` : tx `${wantsPrivate}`},
|
|
1091
|
+
assignee_id = ${assigneeRow === undefined ? tx `assignee_id` : assigneeRow === null ? tx `NULL` : tx `${assigneeRow}::uuid`},
|
|
872
1092
|
-- 05 section 6.4, consequence one of three: a private thread has
|
|
873
1093
|
-- no public replies to count, and a thread made public again
|
|
874
1094
|
-- counts only the replies that are themselves public.
|
|
@@ -890,12 +1110,21 @@ notifications = false) {
|
|
|
890
1110
|
-- precisely because this UPDATE does not touch what they read.
|
|
891
1111
|
RETURNING id, key, status, version, anchor, anchor_state, context, round_number,
|
|
892
1112
|
created_at, updated_at, resolved_at, comment_count_public,
|
|
893
|
-
route, created_by, environment_id
|
|
1113
|
+
route, created_by, environment_id, assignee_id
|
|
894
1114
|
)
|
|
895
1115
|
SELECT t.id, t.key, t.status, t.version, t.anchor, t.anchor_state, t.context, t.round_number,
|
|
896
1116
|
t.created_at, t.updated_at, t.resolved_at, t.comment_count_public,
|
|
897
1117
|
t.route, e.key AS environment_key,
|
|
898
1118
|
r.name AS created_by_name, r.kind AS created_by_kind, r.id AS created_by_id,
|
|
1119
|
+
ar.id AS assignee_id, ar.name AS assignee_name, ar.kind AS assignee_kind,
|
|
1120
|
+
(ar.user_id IS NOT NULL) AS assignee_is_team,
|
|
1121
|
+
COALESCE(
|
|
1122
|
+
(SELECT json_agg(json_build_object(
|
|
1123
|
+
'provider', x.provider, 'kind', x.kind, 'externalId', x.external_id, 'url', x.url, 'status', x.status)
|
|
1124
|
+
ORDER BY x.synced_at)
|
|
1125
|
+
FROM external_refs x
|
|
1126
|
+
WHERE x.thread_id = t.id AND x.status <> 'detached'),
|
|
1127
|
+
'[]'::json) AS refs,
|
|
899
1128
|
COALESCE(
|
|
900
1129
|
(SELECT json_agg(json_build_object(
|
|
901
1130
|
'id', c.id, 'body', c.body, 'createdAt', c.created_at,
|
|
@@ -920,6 +1149,7 @@ notifications = false) {
|
|
|
920
1149
|
'[]'::json) AS attachments
|
|
921
1150
|
FROM upd t
|
|
922
1151
|
JOIN reviewers r ON r.id = t.created_by
|
|
1152
|
+
LEFT JOIN reviewers ar ON ar.id = t.assignee_id
|
|
923
1153
|
JOIN environments e ON e.id = t.environment_id
|
|
924
1154
|
`;
|
|
925
1155
|
/**
|
|
@@ -933,7 +1163,7 @@ notifications = false) {
|
|
|
933
1163
|
* moves through on its own; mailing on each would train people to filter
|
|
934
1164
|
* the sender before the one message that matters arrives.
|
|
935
1165
|
*/
|
|
936
|
-
if (
|
|
1166
|
+
if (status === "resolved" && updated?.[0] && (await notifications())) {
|
|
937
1167
|
const t = updated[0];
|
|
938
1168
|
await queueResolvedNotice(tx, {
|
|
939
1169
|
orgId: p.org_id,
|
|
@@ -951,6 +1181,23 @@ notifications = false) {
|
|
|
951
1181
|
pageUrl: String(t["context"]?.["url"] ?? ""),
|
|
952
1182
|
});
|
|
953
1183
|
}
|
|
1184
|
+
// D95: our status is canonical, the tracker's follows — queued here, in
|
|
1185
|
+
// the transaction that moved it, keyed on the version so every change
|
|
1186
|
+
// is one row. The worker maps by state type: resolved closes as
|
|
1187
|
+
// completed, anything else reopens; a thread with no issue is skipped.
|
|
1188
|
+
if (status !== undefined && updated?.[0]) {
|
|
1189
|
+
for (const link of await trackers(p.org_id, p.id)) {
|
|
1190
|
+
await queueIntegrationEvent(tx, {
|
|
1191
|
+
orgId: p.org_id,
|
|
1192
|
+
projectId: p.id,
|
|
1193
|
+
integrationId: link.id,
|
|
1194
|
+
threadId: threadRow,
|
|
1195
|
+
provider: link.provider,
|
|
1196
|
+
topic: "issue.state",
|
|
1197
|
+
version: Number(updated[0]["version"] ?? 0),
|
|
1198
|
+
});
|
|
1199
|
+
}
|
|
1200
|
+
}
|
|
954
1201
|
return updated;
|
|
955
1202
|
});
|
|
956
1203
|
/**
|
|
@@ -962,6 +1209,11 @@ notifications = false) {
|
|
|
962
1209
|
* to compare against, and so a caller that legitimately wants to overwrite
|
|
963
1210
|
* can re-send with it — which IS "Post anyway", expressed on the wire.
|
|
964
1211
|
*/
|
|
1212
|
+
if (badAssignee) {
|
|
1213
|
+
return fail(c, 400, "validation_failed", "That person cannot be assigned on this site — they are not in its pool.", {
|
|
1214
|
+
field: "assignee",
|
|
1215
|
+
});
|
|
1216
|
+
}
|
|
965
1217
|
if (conflict !== undefined) {
|
|
966
1218
|
return fail(c, 409, "version_conflict", "Someone else updated this while you were working on it. Reload to see their change, then try again.", { currentVersion: conflict, sentVersion: expected });
|
|
967
1219
|
}
|
|
@@ -1043,6 +1295,21 @@ function shape(r) {
|
|
|
1043
1295
|
name: r.created_by_name,
|
|
1044
1296
|
kind: r.created_by_kind,
|
|
1045
1297
|
},
|
|
1298
|
+
// ALWAYS present, null when nobody (05 section 6.4b): the dashboard
|
|
1299
|
+
// merges a PATCH response over its row with a spread, and a key that is
|
|
1300
|
+
// merely absent when un-assigned would leave the old name on the row.
|
|
1301
|
+
// Additive for the widget, which does not read it.
|
|
1302
|
+
assignee: r.assignee_id
|
|
1303
|
+
? {
|
|
1304
|
+
id: wireId_(r.assignee_id, ID_PREFIX.reviewer),
|
|
1305
|
+
name: r.assignee_name,
|
|
1306
|
+
kind: r.assignee_kind,
|
|
1307
|
+
isTeam: !!r.assignee_is_team,
|
|
1308
|
+
}
|
|
1309
|
+
: null,
|
|
1310
|
+
// D95: where this thread lives elsewhere — the GitHub issue, later the
|
|
1311
|
+
// Linear and Jira ones. Always an array, so a merge can clear it.
|
|
1312
|
+
refs: r.refs ?? [],
|
|
1046
1313
|
createdAt: new Date(r.created_at).toISOString(),
|
|
1047
1314
|
updatedAt: new Date(r.updated_at).toISOString(),
|
|
1048
1315
|
// F-26's handle. On the LIST as well as the detail, because the dashboard
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threads.js","sourceRoot":"","sources":["../../src/routes/threads.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"threads.js","sourceRoot":"","sources":["../../src/routes/threads.ts"],"names":[],"mappings":"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"}
|
package/dist/serverless.js
CHANGED
|
@@ -73,13 +73,46 @@ function boot() {
|
|
|
73
73
|
* Workers the next hosting milestone on this same app factory, and an entry
|
|
74
74
|
* point written to one vendor's helper is one that has to be rewritten for it.
|
|
75
75
|
*/
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
/**
|
|
77
|
+
* A CONFIGURATION FAILURE SHOULD SAY SO, not crash.
|
|
78
|
+
*
|
|
79
|
+
* `boot()` throws when a required variable is missing, and until 2026-09-01
|
|
80
|
+
* that throw reached the platform — which renders "This Serverless Function
|
|
81
|
+
* has crashed. FUNCTION_INVOCATION_FAILED" and puts the real message in
|
|
82
|
+
* function logs the operator may not know exist. On the deploy we bless, on
|
|
83
|
+
* the very first request, for the most ordinary mistake there is.
|
|
84
|
+
*
|
|
85
|
+
* The bin has had `explain()` for this since it shipped: an unreachable
|
|
86
|
+
* database prints "✗ no Postgres answered at host:port. Start one, or point
|
|
87
|
+
* DATABASE_URL at a database that is running." Serverless had nothing, so the
|
|
88
|
+
* same operator got a sentence on the bin and a shrug on Vercel.
|
|
89
|
+
*
|
|
90
|
+
* NAMES ONLY, never values — this response is public, and the whole point of
|
|
91
|
+
* the variable being missing is that somebody is about to paste a secret into
|
|
92
|
+
* a dashboard. `503` rather than `500`: the instance is not broken, it is not
|
|
93
|
+
* configured, and a proxy should feel free to retry once it is.
|
|
94
|
+
*/
|
|
95
|
+
function configFailure(e) {
|
|
96
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
97
|
+
return new Response(`Snagset is deployed but not configured.\n\n${message}\n\n` +
|
|
98
|
+
`Set it in your platform's environment settings and redeploy.\n` +
|
|
99
|
+
`\`snagset env\` lists every variable this build accepts.\n`, { status: 503, headers: { "content-type": "text/plain; charset=utf-8", "cache-control": "no-store" } });
|
|
100
|
+
}
|
|
101
|
+
function serve(request) {
|
|
102
|
+
let app;
|
|
103
|
+
try {
|
|
104
|
+
app = boot().app;
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
// Nothing is cached on this path, so the NEXT request boots again — set
|
|
108
|
+
// the variable and the instance recovers without a redeploy.
|
|
109
|
+
return configFailure(e);
|
|
110
|
+
}
|
|
111
|
+
return app.fetch(request);
|
|
112
|
+
}
|
|
113
|
+
export default { fetch: serve };
|
|
81
114
|
/** Named, for platforms whose convention is a bare exported function. */
|
|
82
|
-
export const handler =
|
|
115
|
+
export const handler = serve;
|
|
83
116
|
/**
|
|
84
117
|
* Release the instance's pool. **Tests only** — a function instance is torn
|
|
85
118
|
* down by the platform and never calls this.
|
package/dist/serverless.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverless.js","sourceRoot":"","sources":["../src/serverless.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAY,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;;;;;GAOG;AACH,IAAI,MAAM,GAA+D,IAAI,CAAC;AAE9E,SAAS,IAAI;IACX,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CACb,qFAAqF;YACnF,sFAAsF;YACtF,sFAAsF;YACtF,sFAAsF;YACtF,iCAAiC,CACpC,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;IAEjG,MAAM,GAAG,GAAG,SAAS,CAAC;QACpB,GAAG;QACH,GAAG;QACH,SAAS,EAAE,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC;QAChD,yEAAyE;QACzE,uEAAuE;QACvE,2EAA2E;QAC3E,gCAAgC;QAChC,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,OAAO;QAClD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,SAAS;QACzD,SAAS,EAAE,oCAAoC;QAC/C,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACtB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,
|
|
1
|
+
{"version":3,"file":"serverless.js","sourceRoot":"","sources":["../src/serverless.ts"],"names":[],"mappings":"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"}
|