create-pmos 0.158.0 → 0.160.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-initiatives-test.js +8 -2
- package/workspace/guide/ask-the-agent.md +1 -1
- package/workspace/guide/briefing.md +2 -2
- package/workspace/guide/calendar-popup.md +1 -1
- package/workspace/guide/console-calendar.md +2 -2
- package/workspace/guide/index.md +1 -1
- package/workspace/guide/initiative-boards.md +4 -4
- package/workspace/guide/layout.md +5 -3
- package/workspace/guide/notes.md +1 -1
- package/workspace/guide/settings.md +2 -2
- package/workspace/lib/initiative-rows.js +33 -3
- package/workspace/lib/routes-boards.js +8 -0
- package/workspace/package-lock.json +2 -2
- package/workspace/package.json +1 -1
- package/workspace/public/c3.html +11 -2
- package/workspace/public/pm/c3-demo-boards.js +6 -0
- package/workspace/public/pm/c3-dock.js +7 -7
- package/workspace/public/pm/c3-ib-docs.js +9 -9
- package/workspace/public/pm/c3-ib-initiatives.js +7 -7
- package/workspace/public/pm/c3-ib-items.js +4 -4
- package/workspace/public/pm/c3-ib-releases.js +4 -4
- package/workspace/public/pm/c3-ib-sprints.js +5 -5
- package/workspace/public/pm/c3-ib-triage.js +6 -6
- package/workspace/public/pm/c3-ii-tabs.js +6 -6
- package/workspace/public/pm/c3-ini-records.js +11 -11
- package/workspace/public/pm/c3-ini-timeline.js +3 -3
- package/workspace/public/pm/c3-ini-ui.js +7 -0
- package/workspace/public/pm/c3-ini-work.js +2 -2
- package/workspace/public/pm/c3-initiatives.js +42 -23
- package/workspace/public/pm/c3-plan.js +1 -1
- package/workspace/public/pm/c3-settings.js +2 -2
- package/workspace/public/pm/c3-shell.js +3 -3
- package/workspace/public/pm/c3-tickets.js +1 -1
- package/workspace/public/pm/console3.css +3 -0
- package/workspace/public/pm/pm-work-view.js +1 -1
- package/workspace/public/pm/sessions-panel.js +2 -2
- package/workspace/public/pm/shell-recording.js +1 -1
- package/workspace/public/pm/welcome.js +2 -2
- package/workspace/server.js +4 -2
|
@@ -130,10 +130,10 @@ function draw(host, st) {
|
|
|
130
130
|
: none('None running. A result appears on its card.')));
|
|
131
131
|
/* Started by me */
|
|
132
132
|
const mine = g.startedByMe || [];
|
|
133
|
-
const add = el('a', { class: 'chip2 lk c3t-new', href: '/', title: 'Start a session in the
|
|
133
|
+
const add = el('a', { class: 'chip2 lk c3t-new', href: '/classic.html', title: 'Start a session in the classic app. A session starts over the terminal connection; this page has no route for it.' }, ic('plus', 'sm'), 'New');
|
|
134
134
|
root.append(section('term', 'Started by me', mine.length, add, mine.length
|
|
135
135
|
? el('ul', { class: 'list', 'data-c3t': 'mine' }, mine.map((s) => { const c = cards[s.id]; return row(st, s, c, { sub: liveWord(s, c) + ' · ' + ago(s.startedAt) + ' · main tree', body: [plain(s, c) ? null : cardHost(st, s, c || { state: 'working', title: 'Working', nextMoves: [], claims: [], steps: [] }), blankPanel(st, s, c)].filter(Boolean) }); }))
|
|
136
|
-
: none('None. Start one in the
|
|
136
|
+
: none('None. Start one in the classic app (/classic.html).')));
|
|
137
137
|
/* Past */
|
|
138
138
|
const past = g.past || [];
|
|
139
139
|
root.append(section('clock', 'Past (7 days)', past.length, null, past.length
|
|
@@ -147,7 +147,7 @@ const RGL = { highlighter: () => c3ic('flag', 'sm'), pause: () => glyph('M8 5v14
|
|
|
147
147
|
* elsewhere the main app, where the full note is. */
|
|
148
148
|
const openNote = (id) => {
|
|
149
149
|
if (document.querySelector('[data-c3-tab="cal"]')) { window.dispatchEvent(new CustomEvent('c3-open-note', { detail: { id: id || dock.activeId() || null } })); return; }
|
|
150
|
-
try { window.open('/', '_blank', 'noopener'); } catch { /* a blocked pop-up */ }
|
|
150
|
+
try { window.open('/classic.html', '_blank', 'noopener'); } catch { /* a blocked pop-up */ }
|
|
151
151
|
};
|
|
152
152
|
|
|
153
153
|
/* The engine and language the live transcript uses, on the chip (notes-recording-reliability): a meeting transcribed in the wrong
|
|
@@ -138,7 +138,7 @@ const importNow = () => {
|
|
|
138
138
|
const notNow = () => run('dismiss', async () => {
|
|
139
139
|
const r = await pmPost('/api/onboarding/dismiss', { ws: S.ws });
|
|
140
140
|
if (!r || !r.ok) { fail(r, 'Not now'); return; }
|
|
141
|
-
location.href = '
|
|
141
|
+
location.href = '/?ws=' + encodeURIComponent(S.ws);
|
|
142
142
|
});
|
|
143
143
|
const undo = () => run('undo', async () => {
|
|
144
144
|
const r = await pmPost('/api/onboarding/undo', { ws: S.ws, import_id: S.importId });
|
|
@@ -284,7 +284,7 @@ function viewBriefing() {
|
|
|
284
284
|
+ (items ? numbered(items) : '<div class="fold" data-testid="no-briefing">Your portfolio is in. Open PMOS to see it.</div>')
|
|
285
285
|
+ (tools.length ? sub('Your tools', 'tools', '', tools.length) + `<ul class="list">${tools.join('')}</ul>` : ''),
|
|
286
286
|
foot(ctl({ variant: 'ghost', html: S.busy === 'undo' ? spin('Undoing') : 'Undo this import', attrs: { 'data-testid': 'undo-link', disabled: !!S.busy, ...busyAttrs('undo') } }),
|
|
287
|
-
ctl({ variant: 'primary', html: 'Open PMOS', href: '
|
|
287
|
+
ctl({ variant: 'primary', html: 'Open PMOS', href: '/?ws=' + encodeURIComponent(S.ws), attrs: { class: 'wl-primary', 'data-testid': 'open-pmos' } }))];
|
|
288
288
|
}
|
|
289
289
|
|
|
290
290
|
const VIEWS = { welcome: viewWelcome, look: viewLook, portfolio: viewPortfolio, questions: viewQuestions, briefing: viewBriefing, sources: viewSources };
|
package/workspace/server.js
CHANGED
|
@@ -5637,12 +5637,14 @@ async function handleRequest(req, res) {
|
|
|
5637
5637
|
const built = BUILD_RE.exec(url.pathname);
|
|
5638
5638
|
const p = built ? built[1] : url.pathname;
|
|
5639
5639
|
|
|
5640
|
-
|
|
5640
|
+
// console3 (public/c3.html) is the default page: '/' and '/index.html' serve it, and '/c3.html' stays an alias so old links
|
|
5641
|
+
// keep working. The older shell (public/index.html) moved to '/classic.html' (c3-default-page), reachable and easy to return to.
|
|
5642
|
+
if (p === '/' || p === '/index.html' || p === '/c3.html' || p === '/classic' || p === '/classic.html' || p === '/welcome' || p === '/welcome.html') {
|
|
5641
5643
|
// pm-os-absorb Run 2 (R25, X11): the per-launch nonce goes into the base meta line, nowhere else. no-store, so a
|
|
5642
5644
|
// restarted server never answers a press from a page that holds the previous launch's value. The page code is
|
|
5643
5645
|
// referenced under this launch's build prefix.
|
|
5644
5646
|
const n = pmGuard.launchNonce();
|
|
5645
|
-
return fs.readFile(path.join(PUB, p === '/
|
|
5647
|
+
return fs.readFile(path.join(PUB, (p === '/classic' || p === '/classic.html') ? 'index.html' : (p === '/welcome' || p === '/welcome.html') ? 'welcome.html' : 'c3.html'), 'utf8', (err, html) => {
|
|
5646
5648
|
if (err) { res.writeHead(404); res.end('not found'); return; }
|
|
5647
5649
|
let out = withBuild(html);
|
|
5648
5650
|
if (n) out = out.replace('<meta name="' + pmGuard.NONCE_META + '" content="" />', '<meta name="' + pmGuard.NONCE_META + '" content="' + n + '" />');
|