codedeck 0.7.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.
- package/README.md +49 -34
- package/dist/cli/commands/claims.js +3 -2
- package/dist/cli/commands/claims.js.map +1 -1
- package/dist/cli/commands/doctor.js +8 -40
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/logs.js +2 -2
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/open.js +8 -9
- package/dist/cli/commands/open.js.map +1 -1
- package/dist/cli/commands/ps.js +6 -6
- package/dist/cli/commands/ps.js.map +1 -1
- package/dist/cli/commands/review.js +36 -58
- package/dist/cli/commands/review.js.map +1 -1
- package/dist/cli/commands/run.js +27 -27
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/setup.js +96 -314
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/show.js +2 -1
- package/dist/cli/commands/show.js.map +1 -1
- package/dist/cli/commands/ui.js +61 -0
- package/dist/cli/commands/ui.js.map +1 -0
- package/dist/cli/commands/usage.js +65 -42
- package/dist/cli/commands/usage.js.map +1 -1
- package/dist/cli/commands/wait.js +3 -2
- package/dist/cli/commands/wait.js.map +1 -1
- package/dist/cli/index.js +55 -39
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/web-launch.js +126 -0
- package/dist/cli/web-launch.js.map +1 -0
- package/dist/config/config.js +0 -70
- package/dist/config/config.js.map +1 -1
- package/dist/config/paths.js +1 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/setup.js +248 -0
- package/dist/config/setup.js.map +1 -0
- package/dist/config/web-host.js +31 -0
- package/dist/config/web-host.js.map +1 -0
- package/dist/config/web-port.js +24 -0
- package/dist/config/web-port.js.map +1 -0
- package/dist/core/claude-transcript.js +87 -0
- package/dist/core/claude-transcript.js.map +1 -1
- package/dist/core/errors.js +17 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/models.js +4 -1
- package/dist/core/models.js.map +1 -1
- package/dist/core/pricing.js +73 -50
- package/dist/core/pricing.js.map +1 -1
- package/dist/core/roles.js +6 -5
- package/dist/core/roles.js.map +1 -1
- package/dist/core/run-skills.js +114 -0
- package/dist/core/run-skills.js.map +1 -0
- package/dist/core/run-usage.js +4 -1
- package/dist/core/run-usage.js.map +1 -1
- package/dist/core/session.js +6 -16
- package/dist/core/session.js.map +1 -1
- package/dist/core/usage-query.js +41 -0
- package/dist/core/usage-query.js.map +1 -0
- package/dist/daemon/build-id.js +30 -0
- package/dist/daemon/build-id.js.map +1 -0
- package/dist/daemon/daemon.js +1116 -767
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/instance-lock.js +48 -0
- package/dist/daemon/instance-lock.js.map +1 -0
- package/dist/daemon/web-supervisor.js +251 -0
- package/dist/daemon/web-supervisor.js.map +1 -0
- package/dist/drivers/claude/driver.js +1 -0
- package/dist/drivers/claude/driver.js.map +1 -1
- package/dist/drivers/codex/driver.js +14 -3
- package/dist/drivers/codex/driver.js.map +1 -1
- package/dist/drivers/codex/host-skills.js +57 -0
- package/dist/drivers/codex/host-skills.js.map +1 -0
- package/dist/drivers/opencode/driver.js +6 -2
- package/dist/drivers/opencode/driver.js.map +1 -1
- package/dist/drivers/session-runtime.js +2 -0
- package/dist/drivers/session-runtime.js.map +1 -1
- package/dist/drivers/terminal.js +15 -0
- package/dist/drivers/terminal.js.map +1 -1
- package/dist/git/diff.js +29 -4
- package/dist/git/diff.js.map +1 -1
- package/dist/open/contract.js.map +1 -1
- package/dist/open/pty.js +330 -5
- package/dist/open/pty.js.map +1 -1
- package/dist/plugin/agents/general.md +33 -6
- package/dist/plugin/hooks/pane-ticker.ts +102 -0
- package/dist/plugin/hooks/register.tsx +33 -8
- package/dist/plugin/mods/agents/pane.ts +259 -136
- package/dist/plugin/mods/agents/types.ts +19 -3
- package/dist/plugin/statusline.sh +22 -34
- package/dist/store/database.js +5 -1
- package/dist/store/database.js.map +1 -1
- package/dist/store/sessions.js +55 -12
- package/dist/store/sessions.js.map +1 -1
- package/dist/utils/process.js +2 -16
- package/dist/utils/process.js.map +1 -1
- package/dist/web/brand.js +59 -0
- package/dist/web/brand.js.map +1 -0
- package/dist/web/child.js +67 -0
- package/dist/web/child.js.map +1 -0
- package/dist/web/home-page.js +48 -0
- package/dist/web/home-page.js.map +1 -0
- package/dist/web/review-page.js +12 -5
- package/dist/web/review-page.js.map +1 -1
- package/dist/web/security.js +170 -0
- package/dist/web/security.js.map +1 -0
- package/dist/web/server.js +198 -0
- package/dist/web/server.js.map +1 -0
- package/dist/web/setup-icons.js +37 -0
- package/dist/web/setup-icons.js.map +1 -0
- package/dist/web/setup-page.js +1795 -0
- package/dist/web/setup-page.js.map +1 -0
- package/dist/web/setup-routes.js +475 -0
- package/dist/web/setup-routes.js.map +1 -0
- package/dist/web/usage-page.js +609 -0
- package/dist/web/usage-page.js.map +1 -0
- package/dist/web/usage-routes.js +88 -0
- package/dist/web/usage-routes.js.map +1 -0
- package/dist/web/web-token.js +56 -0
- package/dist/web/web-token.js.map +1 -0
- package/package.json +1 -1
- package/dist/plugin/prompts/_partials/commit.md +0 -145
- 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,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/)
|