@signalridge/pi-welcome 1.3.0 → 1.3.3
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/CHANGELOG.md +34 -0
- package/package.json +3 -3
- package/src/index.ts +26 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.3.3
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
- f714ea0: Publish the package versions already prepared by the previous release transition after its first publish attempt was blocked before npm publication.
|
|
7
|
+
|
|
8
|
+
## 1.3.2
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- b6cf242: Peer dependency ranges now name the versions actually validated against, so an untested host combination fails at install time instead of silently at runtime: `@earendil-works/pi-coding-agent`, `pi-ai`, `pi-tui`, and `pi-agent-core` move from `"*"` to `^0.84.0`, and `typebox` from `"*"` to `^1.3.11`.
|
|
12
|
+
|
|
13
|
+
Shared dependencies now carry ONE declared range across every package that uses them, and `bun run check:shared-deps` keeps it that way.
|
|
14
|
+
|
|
15
|
+
`@narumitw/pi-tui-kit` was declared at three disjoint floors — `^0.54.0`, `^0.51.0`, and `^0.49.1` across nine packages — and the lockfile duly resolved three copies (0.54.0, 0.51.0, 0.49.3) installed side by side. For a shared rendering surface drawing into one terminal inside one host process, that means a theme rendering one way in one extension and another way in the next, with nothing failing at install to say so. All nine now declare `^0.54.0` and the install resolves a single copy. `@sinclair/typebox` likewise converges on `^0.34.50`.
|
|
16
|
+
|
|
17
|
+
The new check covers `dependencies` and `peerDependencies` and compares range strings rather than their semantics: two ranges that merely overlap are still a finding, because the goal is one intentional answer per dependency rather than an accidental intersection. `devDependencies` are deliberately out of scope — a build tool is not a shared surface, and `pi-subagents` intentionally carries its own toolchain. `docs/package-boundaries.md` documents the Kit as a shared surface for the first time.
|
|
18
|
+
|
|
19
|
+
## 1.3.1
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- 2f22dea: Give the card its head back, with a mark that says which tool this is.
|
|
23
|
+
|
|
24
|
+
1.3.0 removed the whole title block. Only the wordmark was meant to go: the
|
|
25
|
+
tagline went with it because it sat on the same two lines, which left the card
|
|
26
|
+
opening straight into a key-hint row with nothing naming the session's tool or
|
|
27
|
+
version.
|
|
28
|
+
|
|
29
|
+
The two rows are back, now `pi` and its version over the tagline, with a pi
|
|
30
|
+
letterform for a mark — one beam over two legs, drawn from Block Elements so
|
|
31
|
+
every glyph is exactly one column in every terminal font. It says the same thing
|
|
32
|
+
as the title beside it rather than being a texture that could belong to any
|
|
33
|
+
tool, which the previous rounded outline and the solid bar that briefly replaced
|
|
34
|
+
it both were. The separate `Version` row is gone, since the version now rides
|
|
35
|
+
the title it belongs to.
|
|
36
|
+
|
|
3
37
|
## 1.3.0
|
|
4
38
|
### Minor Changes
|
|
5
39
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@signalridge/pi-welcome",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.3",
|
|
4
4
|
"description": "Startup resource and repository summary card for Pi.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"lifecycle": "stable"
|
|
10
10
|
},
|
|
11
11
|
"peerDependencies": {
|
|
12
|
-
"@earendil-works/pi-coding-agent": "
|
|
13
|
-
"@earendil-works/pi-tui": "
|
|
12
|
+
"@earendil-works/pi-coding-agent": "^0.84.0",
|
|
13
|
+
"@earendil-works/pi-tui": "^0.84.0"
|
|
14
14
|
},
|
|
15
15
|
"pi": {
|
|
16
16
|
"extensions": [
|
package/src/index.ts
CHANGED
|
@@ -37,6 +37,21 @@ import { type Component, truncateToWidth, visibleWidth, wrapTextWithAnsi } from
|
|
|
37
37
|
|
|
38
38
|
const ENTRY_TYPE = "welcome-card";
|
|
39
39
|
|
|
40
|
+
/**
|
|
41
|
+
* A pi letterform: one beam over two legs, drawn in the accent color.
|
|
42
|
+
*
|
|
43
|
+
* The mark says the same thing as the title line beside it — one for the eye,
|
|
44
|
+
* one for the reader — rather than being a texture that could belong to any
|
|
45
|
+
* tool. The legs are solid blocks rather than thin verticals so the two rows
|
|
46
|
+
* carry equal weight; hairlines wash out at small font sizes.
|
|
47
|
+
*
|
|
48
|
+
* Block Elements only. Each is exactly one column in every terminal font, while
|
|
49
|
+
* an emoji or a private-use glyph falls back to something double-width on some
|
|
50
|
+
* machines and shifts the text beside it out of alignment.
|
|
51
|
+
*/
|
|
52
|
+
const MARK = ["▄▄▄▄▄▄", "▐█ █▌"] as const;
|
|
53
|
+
const SUBTITLE = "A focused coding workspace";
|
|
54
|
+
|
|
40
55
|
/** Columns of padding inside the card. */
|
|
41
56
|
const PAD = 2;
|
|
42
57
|
|
|
@@ -319,8 +334,6 @@ function collect(pi: ExtensionAPI, ctx: ExtensionContext): WelcomeData {
|
|
|
319
334
|
}
|
|
320
335
|
}
|
|
321
336
|
|
|
322
|
-
push("Version", VERSION);
|
|
323
|
-
|
|
324
337
|
// GAP is the sentinel for a blank row: session facts above, what pi loaded
|
|
325
338
|
// below, so the card reads as two groups rather than one wall.
|
|
326
339
|
const resources = collectResources(pi, ctx.cwd);
|
|
@@ -426,10 +439,17 @@ export class WelcomeCard implements Component {
|
|
|
426
439
|
const pad = " ".repeat(PAD);
|
|
427
440
|
const body: string[] = [blank()];
|
|
428
441
|
|
|
429
|
-
//
|
|
430
|
-
//
|
|
431
|
-
//
|
|
432
|
-
//
|
|
442
|
+
// The mark names pi, not a vendor: what a returning user needs from the top
|
|
443
|
+
// of the card is which tool and which version, and a company name is
|
|
444
|
+
// neither. The version rides the title line because it belongs to the same
|
|
445
|
+
// fact.
|
|
446
|
+
const markWidth = Math.max(...MARK.map(visibleWidth));
|
|
447
|
+
body.push(
|
|
448
|
+
line(pad + t.fg("accent", MARK[0].padEnd(markWidth)) + pad + t.bold(t.fg("text", `pi v${VERSION}`))),
|
|
449
|
+
line(pad + t.fg("accent", MARK[1].padEnd(markWidth)) + pad + t.fg("muted", SUBTITLE)),
|
|
450
|
+
blank(),
|
|
451
|
+
);
|
|
452
|
+
|
|
433
453
|
const hintLine = fitHints(this.hints, Math.max(1, inner - PAD * 2));
|
|
434
454
|
if (hintLine) {
|
|
435
455
|
// The whole line is dimmed rather than highlighting each key: this is
|