create-pmos 0.216.0 → 0.217.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/package.json +1 -1
- package/payload/KIT-VERSION +1 -1
- package/payload/planning/evals/eval-calibration.md +1 -1
- package/payload/planning/okrs/health-budgets.md +1 -1
- package/payload/state/discoveries.md +1 -1
- package/workspace/c3-sessions-panel-test.js +18 -0
- package/workspace/guide/console3-sessions.md +1 -1
- package/workspace/package-lock.json +2 -2
- package/workspace/package.json +1 -1
- package/workspace/public/pm/console3.css +3 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-pmos",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.217.0",
|
|
4
4
|
"description": "Scaffold the PMOS portable kit — run the PMOS product-management workflow (initiative → lane-fit spec → contract → build → three gates, with work-type lanes for features, research, maintenance, incidents, and content) entirely inside your own repo, with all state as git-versioned files. Includes `workflow-sweep`, which audits the state every board derives from and separates real defects from work you simply have not done. `create-pmos workspace` also installs + launches the local Terminal Workspace GUI. No database, no network, no telemetry.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
package/payload/KIT-VERSION
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
type: Reference
|
|
3
3
|
title: "Eval calibration log"
|
|
4
4
|
description: "Append-only record of every PM override of an evaluator verdict."
|
|
5
|
-
generated: {by: process:create-pmos, at: "2026-10-14T04:
|
|
5
|
+
generated: {by: process:create-pmos, at: "2026-10-14T04:36:06Z"}
|
|
6
6
|
status: stable
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
type: Reference
|
|
3
3
|
title: "Health budgets"
|
|
4
4
|
description: "Closed registry of health-budget anchors (D59), edited only by the PM."
|
|
5
|
-
generated: {by: process:create-pmos, at: "2026-10-14T04:
|
|
5
|
+
generated: {by: process:create-pmos, at: "2026-10-14T04:36:06Z"}
|
|
6
6
|
status: stable
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
type: Reference
|
|
3
3
|
title: "Discoveries and friction log"
|
|
4
4
|
description: "Append-only record of what runs discovered and where the process rubbed."
|
|
5
|
-
generated: {by: process:create-pmos, at: "2026-10-14T04:
|
|
5
|
+
generated: {by: process:create-pmos, at: "2026-10-14T04:36:06Z"}
|
|
6
6
|
status: stable
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -261,6 +261,24 @@ function startShell(name) {
|
|
|
261
261
|
}, cvSel, 10000));
|
|
262
262
|
ok('S2 the tool line lists each call with its target', await page.evaluate((s) => [...document.querySelectorAll(s + ' details[data-chat="tool"] li')].map((li) => li.querySelector('b').textContent + ' ' + ((li.querySelector('span') || {}).textContent || '')).join() === 'Bash git log', cvSel));
|
|
263
263
|
ok('S3 the status reads Your turn and the meta names the model', await page.evaluate(() => (document.querySelector('[data-cv="status"]') || {}).textContent === 'Your turn' && /claude-test/.test((document.querySelector('[data-cv="meta"]') || {}).textContent || '')));
|
|
264
|
+
// at Whole the list of sessions shows: each row's title sits above its subtitle, both at the row's left, and rows don't overlap
|
|
265
|
+
await page.click('[data-c3-size="whole"]');
|
|
266
|
+
await sleep(250);
|
|
267
|
+
const lay = await page.evaluate((s) => {
|
|
268
|
+
const rows = [...document.querySelectorAll('[data-c3-sess-list] [data-c3-sess-pick]')].map((b) => {
|
|
269
|
+
const r = b.getBoundingClientRect(), n = b.querySelector('.nm').getBoundingClientRect(), u = b.querySelector('.sub').getBoundingClientRect();
|
|
270
|
+
return { top: r.top, bottom: r.bottom, left: r.left, nl: n.left, nb: n.bottom, ul: u.left, ut: u.top, ub: u.bottom };
|
|
271
|
+
});
|
|
272
|
+
const f = document.querySelector(s + ' [data-cv="feed"]').getBoundingClientRect();
|
|
273
|
+
const m = document.querySelector(s + ' [data-chat="me"],' + s + ' [data-chat="bot"]');
|
|
274
|
+
const w = document.querySelector(s + ' [data-cv="feed"] > .wrap').getBoundingClientRect();
|
|
275
|
+
return { rows, gap: w.left - f.left, shown: !!m && m.getBoundingClientRect().height > 0 };
|
|
276
|
+
}, cvSel);
|
|
277
|
+
ok('S3b the list rows are laid out cleanly (title over subtitle, left aligned, no overlap)', lay.rows.length > 0 && lay.rows.every((r, i) =>
|
|
278
|
+
r.nb <= r.ut + 1 && r.ub <= r.bottom && Math.abs(r.nl - r.ul) < 1 && r.nl - r.left < 14 && (i === 0 || r.top >= lay.rows[i - 1].bottom - 1)), JSON.stringify(lay.rows));
|
|
279
|
+
ok('S3c at Whole the conversation starts at the left of its pane, next to the list', lay.shown && lay.gap < 16, String(lay.gap));
|
|
280
|
+
await page.click('[data-c3-size="half"]');
|
|
281
|
+
await sleep(150);
|
|
264
282
|
await page.fill('[data-cv="msg"]', 'echo c3-conv-$((5*5))');
|
|
265
283
|
await page.press('[data-cv="msg"]', 'Enter');
|
|
266
284
|
ok('S4 a sent message shows at once', await waitFor(page, () => [...document.querySelectorAll('[data-c3-conv] [data-chat="me"]')].some((n) => /c3-conv-/.test(n.textContent)), null, 3000));
|
|
@@ -71,7 +71,7 @@ A shell where Claude has not started says "No Claude in this shell yet". Press *
|
|
|
71
71
|
|
|
72
72
|
If PMOS cannot find the transcript of a Claude session, the view says so, and it does not show the transcript of a different session. Read the session in the terminal. PMOS looks for transcripts in `~/.claude`, in each `~/.claude-*` profile folder, and in the folder that `CLAUDE_CONFIG_DIR` names.
|
|
73
73
|
|
|
74
|
-
At **2/3** and **Whole**, the sheet also shows a list of your running sessions at the left. Press a session to open it.
|
|
74
|
+
At **2/3** and **Whole**, the sheet also shows a list of your running sessions at the left. Each row shows the session name and, below it, the agent and its state. Press a session to open it. The conversation starts next to the list.
|
|
75
75
|
|
|
76
76
|
### The scratchpad
|
|
77
77
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pmos-workspace",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.217.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "pmos-workspace",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.217.0",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@xterm/addon-fit": "^0.11.0",
|
package/workspace/package.json
CHANGED
|
@@ -1701,7 +1701,8 @@
|
|
|
1701
1701
|
.c3 .c3t-cv-panes .c3t-tw{flex:1 1 0;height:auto;min-height:0}
|
|
1702
1702
|
.c3 .c3t-cv-list{display:none;border-right:1px solid var(--border);overflow:auto;padding:0 var(--sp-2) 0 0;margin-right:var(--sp-3);gap:2px;align-content:start}
|
|
1703
1703
|
.c3 .c3t-cv-list .eyebrow{padding:var(--sp-2) 10px 4px;font:500 var(--fs-1) var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground)}
|
|
1704
|
-
.c3 .c3t-cv-list button{display:grid;gap:2px;text-align:left;border:0;background:none;padding:8px 10px;border-radius:8px;cursor:pointer;color:var(--foreground);font:inherit;font-size:var(--fs-3);width:100%;min-width:0}
|
|
1704
|
+
.c3 .c3t-cv-list button{display:grid;gap:2px;justify-content:stretch;justify-items:start;align-content:start;text-align:left;border:0;background:none;padding:8px 10px;border-radius:8px;cursor:pointer;color:var(--foreground);font:inherit;font-size:var(--fs-3);line-height:1.3;width:100%;min-width:0;height:auto;min-height:0}
|
|
1705
|
+
.c3 .c3t-cv-list button>span{max-width:100%}
|
|
1705
1706
|
.c3 .c3t-cv-list button .nm,.c3 .c3t-cv-list button .sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
1706
1707
|
.c3 .c3t-cv-list button .sub{font:var(--fs-1) var(--mono);color:var(--muted-foreground)}
|
|
1707
1708
|
.c3 .c3t-cv-list button[aria-current="true"]{background:color-mix(in oklab,var(--acc) 12%,transparent)}
|
|
@@ -1712,7 +1713,7 @@
|
|
|
1712
1713
|
.c3 .c3t-cv-meta .tg[data-tone="muted"]{--tc:var(--muted-foreground)}
|
|
1713
1714
|
.c3 .c3t-cv-meta .tg[data-tone="warning"]{--tc:var(--warning)}
|
|
1714
1715
|
.c3 .c3t-cv-feed{flex:1 1 0;min-height:0;overflow:auto;padding:var(--sp-3) 2px}
|
|
1715
|
-
.c3 .c3t-cv-feed>.wrap{max-width:
|
|
1716
|
+
.c3 .c3t-cv-feed>.wrap{max-width:820px;margin:0;display:flex;flex-direction:column;gap:var(--sp-2)}
|
|
1716
1717
|
.c3 .c3t-cv .m{padding:8px 14px;border-radius:8px;max-width:85%;overflow-wrap:anywhere;font-size:var(--fs-3);line-height:1.5}
|
|
1717
1718
|
.c3 .c3t-cv .m.me{align-self:flex-end;background:var(--acc);color:var(--on-accent);white-space:pre-wrap}
|
|
1718
1719
|
.c3 .c3t-cv .m.bot{align-self:flex-start;background:var(--muted)}
|