codedeck 0.6.0 → 0.7.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 (140) hide show
  1. package/README.md +50 -35
  2. package/dist/cli/commands/claims.js +3 -2
  3. package/dist/cli/commands/claims.js.map +1 -1
  4. package/dist/cli/commands/doctor.js +8 -40
  5. package/dist/cli/commands/doctor.js.map +1 -1
  6. package/dist/cli/commands/logs.js +2 -2
  7. package/dist/cli/commands/logs.js.map +1 -1
  8. package/dist/cli/commands/open.js +102 -11
  9. package/dist/cli/commands/open.js.map +1 -1
  10. package/dist/cli/commands/ps.js +6 -6
  11. package/dist/cli/commands/ps.js.map +1 -1
  12. package/dist/cli/commands/review.js +36 -58
  13. package/dist/cli/commands/review.js.map +1 -1
  14. package/dist/cli/commands/run.js +27 -27
  15. package/dist/cli/commands/run.js.map +1 -1
  16. package/dist/cli/commands/setup.js +96 -314
  17. package/dist/cli/commands/setup.js.map +1 -1
  18. package/dist/cli/commands/show.js +2 -1
  19. package/dist/cli/commands/show.js.map +1 -1
  20. package/dist/cli/commands/ui.js +61 -0
  21. package/dist/cli/commands/ui.js.map +1 -0
  22. package/dist/cli/commands/usage-backfill.js +149 -0
  23. package/dist/cli/commands/usage-backfill.js.map +1 -0
  24. package/dist/cli/commands/usage.js +113 -45
  25. package/dist/cli/commands/usage.js.map +1 -1
  26. package/dist/cli/commands/wait.js +3 -2
  27. package/dist/cli/commands/wait.js.map +1 -1
  28. package/dist/cli/index.js +55 -39
  29. package/dist/cli/index.js.map +1 -1
  30. package/dist/cli/web-launch.js +126 -0
  31. package/dist/cli/web-launch.js.map +1 -0
  32. package/dist/config/config.js +0 -70
  33. package/dist/config/config.js.map +1 -1
  34. package/dist/config/paths.js +1 -0
  35. package/dist/config/paths.js.map +1 -1
  36. package/dist/config/setup.js +248 -0
  37. package/dist/config/setup.js.map +1 -0
  38. package/dist/config/web-host.js +31 -0
  39. package/dist/config/web-host.js.map +1 -0
  40. package/dist/config/web-port.js +24 -0
  41. package/dist/config/web-port.js.map +1 -0
  42. package/dist/core/claude-transcript.js +226 -0
  43. package/dist/core/claude-transcript.js.map +1 -0
  44. package/dist/core/errors.js +17 -0
  45. package/dist/core/errors.js.map +1 -1
  46. package/dist/core/models.js +4 -1
  47. package/dist/core/models.js.map +1 -1
  48. package/dist/core/pricing.js +87 -55
  49. package/dist/core/pricing.js.map +1 -1
  50. package/dist/core/roles.js +6 -5
  51. package/dist/core/roles.js.map +1 -1
  52. package/dist/core/run-skills.js +114 -0
  53. package/dist/core/run-skills.js.map +1 -0
  54. package/dist/core/run-usage.js +56 -10
  55. package/dist/core/run-usage.js.map +1 -1
  56. package/dist/core/session.js +6 -16
  57. package/dist/core/session.js.map +1 -1
  58. package/dist/core/usage-query.js +41 -0
  59. package/dist/core/usage-query.js.map +1 -0
  60. package/dist/core/usage-source.js +17 -0
  61. package/dist/core/usage-source.js.map +1 -0
  62. package/dist/daemon/build-id.js +30 -0
  63. package/dist/daemon/build-id.js.map +1 -0
  64. package/dist/daemon/daemon.js +1257 -700
  65. package/dist/daemon/daemon.js.map +1 -1
  66. package/dist/daemon/instance-lock.js +48 -0
  67. package/dist/daemon/instance-lock.js.map +1 -0
  68. package/dist/daemon/ipc.js +4 -3
  69. package/dist/daemon/ipc.js.map +1 -1
  70. package/dist/daemon/web-supervisor.js +251 -0
  71. package/dist/daemon/web-supervisor.js.map +1 -0
  72. package/dist/drivers/claude/driver.js +1 -0
  73. package/dist/drivers/claude/driver.js.map +1 -1
  74. package/dist/drivers/codex/driver.js +14 -3
  75. package/dist/drivers/codex/driver.js.map +1 -1
  76. package/dist/drivers/codex/host-skills.js +57 -0
  77. package/dist/drivers/codex/host-skills.js.map +1 -0
  78. package/dist/drivers/opencode/driver.js +6 -2
  79. package/dist/drivers/opencode/driver.js.map +1 -1
  80. package/dist/drivers/session-driver.js +7 -1
  81. package/dist/drivers/session-driver.js.map +1 -1
  82. package/dist/drivers/session-runtime.js +2 -0
  83. package/dist/drivers/session-runtime.js.map +1 -1
  84. package/dist/drivers/terminal.js +15 -0
  85. package/dist/drivers/terminal.js.map +1 -1
  86. package/dist/git/diff.js +29 -4
  87. package/dist/git/diff.js.map +1 -1
  88. package/dist/open/contract.js.map +1 -1
  89. package/dist/open/launchers/claude.js +78 -2
  90. package/dist/open/launchers/claude.js.map +1 -1
  91. package/dist/open/link-watcher.js +44 -0
  92. package/dist/open/link-watcher.js.map +1 -0
  93. package/dist/open/pty.js +330 -5
  94. package/dist/open/pty.js.map +1 -1
  95. package/dist/open/runtime.js +15 -12
  96. package/dist/open/runtime.js.map +1 -1
  97. package/dist/plugin/agents/general.md +33 -6
  98. package/dist/plugin/hooks/pane-ticker.ts +102 -0
  99. package/dist/plugin/hooks/register.tsx +39 -18
  100. package/dist/plugin/hooks/session-id.sh +1 -1
  101. package/dist/plugin/mods/agents/pane.ts +285 -156
  102. package/dist/plugin/mods/agents/types.ts +23 -3
  103. package/dist/plugin/statusline.sh +57 -32
  104. package/dist/store/database.js +49 -1
  105. package/dist/store/database.js.map +1 -1
  106. package/dist/store/native-links.js +80 -0
  107. package/dist/store/native-links.js.map +1 -0
  108. package/dist/store/sessions.js +166 -51
  109. package/dist/store/sessions.js.map +1 -1
  110. package/dist/store/usage-ledger.js +153 -0
  111. package/dist/store/usage-ledger.js.map +1 -0
  112. package/dist/utils/process.js +2 -16
  113. package/dist/utils/process.js.map +1 -1
  114. package/dist/web/brand.js +59 -0
  115. package/dist/web/brand.js.map +1 -0
  116. package/dist/web/child.js +67 -0
  117. package/dist/web/child.js.map +1 -0
  118. package/dist/web/home-page.js +48 -0
  119. package/dist/web/home-page.js.map +1 -0
  120. package/dist/web/review-page.js +12 -5
  121. package/dist/web/review-page.js.map +1 -1
  122. package/dist/web/security.js +170 -0
  123. package/dist/web/security.js.map +1 -0
  124. package/dist/web/server.js +198 -0
  125. package/dist/web/server.js.map +1 -0
  126. package/dist/web/setup-icons.js +37 -0
  127. package/dist/web/setup-icons.js.map +1 -0
  128. package/dist/web/setup-page.js +1795 -0
  129. package/dist/web/setup-page.js.map +1 -0
  130. package/dist/web/setup-routes.js +475 -0
  131. package/dist/web/setup-routes.js.map +1 -0
  132. package/dist/web/usage-page.js +609 -0
  133. package/dist/web/usage-page.js.map +1 -0
  134. package/dist/web/usage-routes.js +88 -0
  135. package/dist/web/usage-routes.js.map +1 -0
  136. package/dist/web/web-token.js +56 -0
  137. package/dist/web/web-token.js.map +1 -0
  138. package/package.json +1 -1
  139. package/dist/plugin/prompts/_partials/commit.md +0 -145
  140. package/dist/plugin/prompts/_partials/pr-writer.md +0 -186
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-page.js","sourceRoot":"","sources":["../../src/web/usage-page.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ import { buildUsageQueryParams } from "../core/usage-query.js";
2
+ import { renderUsagePage } from "./usage-page.js";
3
+ export function parseUsageWebQuery(searchParams, cwd, now = new Date()) {
4
+ const period = searchParams.get("period");
5
+ const periodDays = period && /^\d+d$/.test(period) ? period.slice(0, -1) : undefined;
6
+ const opts = {
7
+ all: readBoolean(searchParams, "all") || period === "all",
8
+ today: readBoolean(searchParams, "today") || period === "today",
9
+ days: readValue(searchParams, "days") ?? periodDays,
10
+ since: readValue(searchParams, "since"),
11
+ until: readValue(searchParams, "until"),
12
+ repo: readValue(searchParams, "repo"),
13
+ current: readBoolean(searchParams, "current"),
14
+ model: readValue(searchParams, "model"),
15
+ agent: readValue(searchParams, "agent"),
16
+ };
17
+ return buildUsageQueryParams(opts, cwd, now);
18
+ }
19
+ export function createUsageRoutes(options) {
20
+ const cwd = options.cwd ?? process.cwd();
21
+ const now = options.now ?? (() => new Date());
22
+ return [
23
+ {
24
+ path: "/usage",
25
+ kind: "page",
26
+ handler: (request, response) => {
27
+ response.writeHead(200, { "content-type": "text/html; charset=utf-8" });
28
+ const search = new URL(request.url ?? "/usage", "http://127.0.0.1").searchParams;
29
+ response.end(renderUsagePage({
30
+ ...options.page,
31
+ pages: options.pages ?? options.page?.pages,
32
+ filters: {
33
+ ...options.page?.filters,
34
+ period: search.get("period") ?? options.page?.filters?.period,
35
+ repo: search.get("repo") ?? options.page?.filters?.repo,
36
+ model: search.get("model") ?? options.page?.filters?.model,
37
+ agent: search.get("agent") ?? options.page?.filters?.agent,
38
+ since: search.get("since") ?? options.page?.filters?.since,
39
+ until: search.get("until") ?? options.page?.filters?.until,
40
+ },
41
+ by: search.get("by") ?? options.page?.by,
42
+ interval: search.get("interval") ?? options.page?.interval,
43
+ }));
44
+ },
45
+ },
46
+ {
47
+ path: "/api/usage",
48
+ kind: "api",
49
+ handler: async (request, response) => {
50
+ if (request.method !== "GET") {
51
+ writeJson(response, 405, { error: "method not allowed" });
52
+ return;
53
+ }
54
+ let searchParams;
55
+ try {
56
+ searchParams = new URL(request.url ?? "/api/usage", "http://127.0.0.1").searchParams;
57
+ }
58
+ catch {
59
+ writeJson(response, 400, { error: "bad request" });
60
+ return;
61
+ }
62
+ try {
63
+ const params = parseUsageWebQuery(searchParams, cwd, now());
64
+ const result = await options.fetchUsageQuery(params);
65
+ writeJson(response, 200, result);
66
+ }
67
+ catch (error) {
68
+ writeJson(response, 500, {
69
+ error: error instanceof Error ? error.message : String(error),
70
+ });
71
+ }
72
+ },
73
+ },
74
+ ];
75
+ }
76
+ function readValue(searchParams, name) {
77
+ const value = searchParams.get(name);
78
+ return value ? value : undefined;
79
+ }
80
+ function readBoolean(searchParams, name) {
81
+ const value = searchParams.get(name);
82
+ return value !== null && (value === "" || value === "1" || value.toLowerCase() === "true");
83
+ }
84
+ function writeJson(response, status, body) {
85
+ response.writeHead(status, { "content-type": "application/json; charset=utf-8" });
86
+ response.end(JSON.stringify(body));
87
+ }
88
+ //# sourceMappingURL=usage-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-routes.js","sourceRoot":"","sources":["../../src/web/usage-routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { randomBytes } from "node:crypto";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { getPaths } from "../config/paths.js";
5
+ const TOKEN_PATTERN = /^[0-9a-f]{64}\n?$/;
6
+ /**
7
+ * The console token every web server on this machine shares, so a browser
8
+ * cookie survives web child and daemon restarts. A new token is written to a
9
+ * temp file and published with `link`, which never exposes a partial file.
10
+ */
11
+ export function resolveWebToken(options = {}) {
12
+ const file = path.join(options.dir ?? getPaths().base, "web-token");
13
+ const stored = readToken(file);
14
+ if (stored)
15
+ return stored;
16
+ fs.mkdirSync(path.dirname(file), { recursive: true });
17
+ const tmp = `${file}.${process.pid}.${randomBytes(4).toString("hex")}.tmp`;
18
+ fs.writeFileSync(tmp, `${randomBytes(32).toString("hex")}\n`, { mode: 0o600, flag: "wx" });
19
+ try {
20
+ try {
21
+ (options.link ?? fs.linkSync)(tmp, file);
22
+ }
23
+ catch (error) {
24
+ if (error.code !== "EEXIST")
25
+ throw error;
26
+ const winner = readToken(file);
27
+ if (winner)
28
+ return winner;
29
+ fs.renameSync(tmp, file);
30
+ }
31
+ const token = readToken(file);
32
+ if (!token)
33
+ throw new Error(`could not store the web token in ${file}`);
34
+ return token;
35
+ }
36
+ finally {
37
+ fs.rmSync(tmp, { force: true });
38
+ }
39
+ }
40
+ function readToken(file) {
41
+ let raw;
42
+ try {
43
+ raw = fs.readFileSync(file, "utf8");
44
+ }
45
+ catch (error) {
46
+ if (error.code === "ENOENT")
47
+ return undefined;
48
+ throw error;
49
+ }
50
+ if (!TOKEN_PATTERN.test(raw))
51
+ return undefined;
52
+ if ((fs.statSync(file).mode & 0o077) !== 0)
53
+ fs.chmodSync(file, 0o600);
54
+ return raw.slice(0, 64);
55
+ }
56
+ //# sourceMappingURL=web-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-token.js","sourceRoot":"","sources":["../../src/web/web-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAS1C;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkC,EAAE;IAClE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3E,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3F,IAAI,CAAC;QACH,IAAI,CAAC;YACH,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,KAAK,CAAC;YACpE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YAC1B,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACzE,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codedeck",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
4
4
  "description": "CodeDeck, a local runtime for coding agents with session management, process supervision, event normalization, and git isolation",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,145 +0,0 @@
1
- <!-- Source: ~/.claude/skills/commit/SKILL.md (vendored full text). Adaptations: (1) the create-branch skill reference is a one-line main/master rule below, the skill itself is not vendored; (2) any sentry-skills:commit reference points to the Commits section in this prompt; (3) Co-Authored-By names the harness that did the work, not Claude. -->
2
-
3
- ## Commits
4
-
5
- # Sentry Commit Messages
6
-
7
- Follow these conventions when creating commits for Sentry projects.
8
-
9
- ## Prerequisites
10
-
11
- If `git branch --show-current` shows `main` or `master`, create a feature branch first unless the human explicitly asked to commit there.
12
-
13
- ## Format
14
-
15
- ```
16
- <type>(<scope>): <subject>
17
-
18
- <body>
19
-
20
- <footer>
21
- ```
22
-
23
- The header is required. Scope is optional. All lines must stay under 100 characters.
24
-
25
- ## Commit Types
26
-
27
- | Type | Purpose |
28
- |------|---------|
29
- | `feat` | New feature |
30
- | `fix` | Bug fix |
31
- | `ref` | Refactoring (no behavior change) |
32
- | `perf` | Performance improvement |
33
- | `docs` | Documentation only |
34
- | `test` | Test additions or corrections |
35
- | `build` | Build system or dependencies |
36
- | `ci` | CI configuration |
37
- | `chore` | Maintenance tasks |
38
- | `style` | Code formatting (no logic change) |
39
- | `meta` | Repository metadata |
40
- | `license` | License changes |
41
-
42
- ## Subject Line Rules
43
-
44
- - Use imperative, present tense: "Add feature" not "Added feature"
45
- - Capitalize the first letter
46
- - No period at the end
47
- - Maximum 70 characters
48
-
49
- ## Body Guidelines
50
-
51
- - Explain **what** and **why**, not how
52
- - Use imperative mood and present tense
53
- - Include motivation for the change
54
- - Contrast with previous behavior when relevant
55
-
56
- ## Footer: Issue References
57
-
58
- Reference issues in the footer using these patterns:
59
-
60
- ```
61
- Fixes GH-1234
62
- Fixes #1234
63
- Fixes SENTRY-1234
64
- Refs LINEAR-ABC-123
65
- ```
66
-
67
- - `Fixes` closes the issue when merged
68
- - `Refs` links without closing
69
-
70
- ## AI-Generated Changes
71
-
72
- When changes were primarily generated by a coding agent, include the Co-Authored-By attribution naming the harness that did the work in the commit footer:
73
-
74
- ```
75
- Co-Authored-By: <harness that did the work>
76
- ```
77
-
78
- This is the only indicator of AI involvement that should appear in commits. Do not add phrases like "Generated by AI", "Written with Claude", or similar markers in the subject, body, or anywhere else in the commit message.
79
-
80
- ## Examples
81
-
82
- ### Simple fix
83
-
84
- ```
85
- fix(api): Handle null response in user endpoint
86
-
87
- The user API could return null for deleted accounts, causing a crash
88
- in the dashboard. Add null check before accessing user properties.
89
-
90
- Fixes SENTRY-5678
91
- Co-Authored-By: <harness that did the work>
92
- ```
93
-
94
- ### Feature with scope
95
-
96
- ```
97
- feat(alerts): Add Slack thread replies for alert updates
98
-
99
- When an alert is updated or resolved, post a reply to the original
100
- Slack thread instead of creating a new message. This keeps related
101
- notifications grouped together.
102
-
103
- Refs GH-1234
104
- ```
105
-
106
- ### Refactor
107
-
108
- ```
109
- ref: Extract common validation logic to shared module
110
-
111
- Move duplicate validation code from three endpoints into a shared
112
- validator class. No behavior change.
113
- ```
114
-
115
- ### Breaking change
116
-
117
- ```
118
- feat(api)!: Remove deprecated v1 endpoints
119
-
120
- Remove all v1 API endpoints that were deprecated in version 23.1.
121
- Clients should migrate to v2 endpoints.
122
-
123
- BREAKING CHANGE: v1 endpoints no longer available
124
- Fixes SENTRY-9999
125
- ```
126
-
127
- ## Revert Format
128
-
129
- ```
130
- revert: feat(api): Add new endpoint
131
-
132
- This reverts commit abc123def456.
133
-
134
- Reason: Caused performance regression in production.
135
- ```
136
-
137
- ## Principles
138
-
139
- - Each commit should be a single, stable change
140
- - Commits should be independently reviewable
141
- - The repository should be in a working state after each commit
142
-
143
- ## References
144
-
145
- - [Sentry Commit Messages](https://develop.sentry.dev/engineering-practices/commit-messages/)
@@ -1,186 +0,0 @@
1
- <!-- Source: ~/.claude/skills/pr-writer/SKILL.md (vendored full text). Adaptations: (1) the create-branch skill reference is a one-line main/master rule, the skill itself is not vendored; (2) the sentry-skills:commit reference below points to the Commits section in this prompt; (3) Co-Authored-By names the harness that did the work, not Claude. -->
2
-
3
- ## Pull requests
4
-
5
- # PR Writer
6
-
7
- Create pull requests following Sentry's engineering practices.
8
-
9
- **Requires**: GitHub CLI (`gh`) authenticated and available.
10
-
11
- ## Prerequisites
12
-
13
- Before creating a PR, ensure all changes are committed. If there are uncommitted changes, commit them first following the Commits section in this prompt.
14
-
15
- ```bash
16
- # Check for uncommitted changes
17
- git status --porcelain
18
- ```
19
-
20
- If the output shows any uncommitted changes (modified, added, or untracked files that should be included), commit them first following the Commits section in this prompt before proceeding.
21
-
22
- ## Process
23
-
24
- ### Step 1: Verify Branch State
25
-
26
- ```bash
27
- # Detect the default branch — note the output for use in subsequent commands
28
- gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'
29
- ```
30
-
31
- ```bash
32
- # Check current branch and status (substitute the detected branch name above for BASE)
33
- git status
34
- git log BASE..HEAD --oneline
35
- ```
36
-
37
- Ensure:
38
- - All changes are committed
39
- - Branch is up to date with remote
40
- - Changes are rebased on the base branch if needed
41
-
42
- ### Step 2: Analyze Changes
43
-
44
- Review what will be included in the PR:
45
-
46
- ```bash
47
- # See all commits that will be in the PR (substitute detected branch name for BASE)
48
- git log BASE..HEAD
49
-
50
- # See the full diff
51
- git diff BASE...HEAD
52
- ```
53
-
54
- Understand the scope and purpose of all changes before writing the description.
55
-
56
- ### Step 3: Write the PR Description
57
-
58
- Use this structure for PR descriptions (ignoring any repository PR templates):
59
-
60
- ```markdown
61
- <brief description of what the PR does>
62
-
63
- <why these changes are being made - the motivation>
64
-
65
- <alternative approaches considered, if any>
66
-
67
- <any additional context reviewers need>
68
- ```
69
-
70
- **Do NOT include:**
71
- - "Test plan" sections
72
- - Checkbox lists of testing steps
73
- - Redundant summaries of the diff
74
-
75
- **Do include:**
76
- - Clear explanation of what and why
77
- - Links to relevant issues or tickets
78
- - Context that isn't obvious from the code
79
- - Notes on specific areas that need careful review
80
-
81
- ### Step 4: Create the PR
82
-
83
- ```bash
84
- gh pr create --draft --title "<type>(<scope>): <description>" --body "$(cat <<'EOF'
85
- <description body here>
86
- EOF
87
- )"
88
- ```
89
-
90
- **Title format** follows commit conventions:
91
- - `feat(scope): Add new feature`
92
- - `fix(scope): Fix the bug`
93
- - `ref: Refactor something`
94
-
95
- ## PR Description Examples
96
-
97
- ### Feature PR
98
-
99
- ```markdown
100
- Add Slack thread replies for alert notifications
101
-
102
- When an alert is updated or resolved, we now post a reply to the original
103
- Slack thread instead of creating a new message. This keeps related
104
- notifications grouped and reduces channel noise.
105
-
106
- Previously considered posting edits to the original message, but threading
107
- better preserves the timeline of events and works when the original message
108
- is older than Slack's edit window.
109
-
110
- Refs SENTRY-1234
111
- ```
112
-
113
- ### Bug Fix PR
114
-
115
- ```markdown
116
- Handle null response in user API endpoint
117
-
118
- The user endpoint could return null for soft-deleted accounts, causing
119
- dashboard crashes when accessing user properties. This adds a null check
120
- and returns a proper 404 response.
121
-
122
- Found while investigating SENTRY-5678.
123
-
124
- Fixes SENTRY-5678
125
- ```
126
-
127
- ### Refactor PR
128
-
129
- ```markdown
130
- Extract validation logic to shared module
131
-
132
- Moves duplicate validation code from the alerts, issues, and projects
133
- endpoints into a shared validator class. No behavior change.
134
-
135
- This prepares for adding new validation rules in SENTRY-9999 without
136
- duplicating logic across endpoints.
137
- ```
138
-
139
- ## Issue References
140
-
141
- Reference issues in the PR body:
142
-
143
- | Syntax | Effect |
144
- |--------|--------|
145
- | `Fixes #1234` | Closes GitHub issue on merge |
146
- | `Fixes SENTRY-1234` | Closes Sentry issue |
147
- | `Refs GH-1234` | Links without closing |
148
- | `Refs LINEAR-ABC-123` | Links Linear issue |
149
-
150
- ## Guidelines
151
-
152
- - **One PR per feature/fix** - Don't bundle unrelated changes
153
- - **Keep PRs reviewable** - Smaller PRs get faster, better reviews
154
- - **Explain the why** - Code shows what; description explains why
155
- - **Mark WIP early** - Use draft PRs for early feedback
156
-
157
- ## Editing Existing PRs
158
-
159
- If you need to update a PR after creation, use `gh api` instead of `gh pr edit`:
160
-
161
- ```bash
162
- # Update PR description
163
- gh api -X PATCH repos/{owner}/{repo}/pulls/PR_NUMBER -f body="$(cat <<'EOF'
164
- Updated description here
165
- EOF
166
- )"
167
- ```
168
-
169
- ```bash
170
- # Update PR title
171
- gh api -X PATCH repos/{owner}/{repo}/pulls/PR_NUMBER -f title='new: Title here'
172
- ```
173
-
174
- ```bash
175
- # Update both
176
- gh api -X PATCH repos/{owner}/{repo}/pulls/PR_NUMBER \
177
- -f title='new: Title' \
178
- -f body='New description'
179
- ```
180
-
181
- Note: `gh pr edit` is currently broken due to GitHub's Projects (classic) deprecation.
182
-
183
- ## References
184
-
185
- - [Sentry Code Review Guidelines](https://develop.sentry.dev/engineering-practices/code-review/)
186
- - [Sentry Commit Messages](https://develop.sentry.dev/engineering-practices/commit-messages/)