@nanocollective/roster 0.1.0-alpha.40 → 0.1.0-alpha.41

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nanocollective/roster",
3
- "version": "0.1.0-alpha.40",
3
+ "version": "0.1.0-alpha.41",
4
4
  "description": "An agent-run org, powered by GitHub. Scaffold AI staff members whose brain is a repo.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -16,23 +16,6 @@
16
16
  "engines": {
17
17
  "node": ">=20"
18
18
  },
19
- "scripts": {
20
- "build": "tsup src/cli.ts --format esm --target node20 --clean",
21
- "dev": "tsx src/cli.ts",
22
- "test": "tsx --test test/*.test.ts",
23
- "test:all": "pnpm test:format && pnpm test:lint && pnpm test:types && pnpm test:knip && pnpm test",
24
- "test:ava:coverage": "c8 --reporter=text --reporter=json-summary tsx --test test/*.test.ts",
25
- "test:format": "biome check --no-errors-on-unmatched .",
26
- "test:lint": "biome lint .",
27
- "test:lint:fix": "biome check --write .",
28
- "test:types": "tsc --noEmit",
29
- "test:knip": "knip",
30
- "test:audit": "pnpm audit --audit-level=high",
31
- "test:security": "semgrep scan --config auto --error",
32
- "typecheck": "tsc --noEmit",
33
- "format": "biome check --write .",
34
- "prepublishOnly": "pnpm test:all && pnpm build"
35
- },
36
19
  "devDependencies": {
37
20
  "@biomejs/biome": "^2.5.12",
38
21
  "@types/node": "^22.10.2",
@@ -52,9 +35,24 @@
52
35
  "url": "https://github.com/Nano-Collective/roster/issues"
53
36
  },
54
37
  "author": "Nano Collective",
55
- "packageManager": "pnpm@11.0.9",
56
38
  "publishConfig": {
57
39
  "access": "public",
58
40
  "tag": "latest"
41
+ },
42
+ "scripts": {
43
+ "build": "tsup src/cli.ts --format esm --target node20 --clean",
44
+ "dev": "tsx src/cli.ts",
45
+ "test": "tsx --test test/*.test.ts",
46
+ "test:all": "pnpm test:format && pnpm test:lint && pnpm test:types && pnpm test:knip && pnpm test",
47
+ "test:ava:coverage": "c8 --reporter=text --reporter=json-summary tsx --test test/*.test.ts",
48
+ "test:format": "biome check --no-errors-on-unmatched .",
49
+ "test:lint": "biome lint .",
50
+ "test:lint:fix": "biome check --write .",
51
+ "test:types": "tsc --noEmit",
52
+ "test:knip": "knip",
53
+ "test:audit": "pnpm audit --audit-level=high",
54
+ "test:security": "semgrep scan --config auto --error",
55
+ "typecheck": "tsc --noEmit",
56
+ "format": "biome check --write ."
59
57
  }
60
- }
58
+ }
@@ -1323,9 +1323,22 @@ function newIssueForm(viewer) {
1323
1323
  body: body.value,
1324
1324
  labels: picked.chosen(),
1325
1325
  });
1326
- status.innerHTML =
1327
- 'created · <a href="' + esc(r.url ?? "") + '" target="_blank" rel="noopener">open it</a>';
1328
- await refreshAll(true);
1326
+ /* The form is done once GitHub has the issue. What you sent is shown as what it now is,
1327
+ a thread in the inbox, open and selected, rather than a link out to github.com beside
1328
+ a form still holding what you typed. The filters are set so its row is on the list. */
1329
+ const number = Number(String(r.url ?? "").match(/\/issues\/(\d+)/)?.[1]);
1330
+ S.inboxOpen = number ? { repo: s.brain, number, kind: "issue" } : null;
1331
+ S.inboxState = "";
1332
+ S.inboxFilter = "";
1333
+ S.query = "";
1334
+ if (S.inboxStaff && S.inboxStaff !== s.handle) S.inboxStaff = s.handle;
1335
+ writeHash(false);
1336
+ status.textContent = "sent · opening it…";
1337
+ // It is sent either way. A refresh that fails must not read as a send that failed.
1338
+ await refreshAll(false).catch(() => {
1339
+ status.textContent = "sent · refresh to see it";
1340
+ });
1341
+ return;
1329
1342
  } catch (e) {
1330
1343
  status.textContent = e.message;
1331
1344
  status.className = "meta err";