@shanepadgett/tau-agent 0.3.0 → 0.4.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.
@@ -109,21 +109,25 @@ async function completePublish(
109
109
  progress: PublishProgress | undefined = undefined,
110
110
  ): Promise<void> {
111
111
  if (tag) {
112
- progress?.update("Updating version files");
112
+ progress?.update("write package versions");
113
113
  await writeReleaseVersion(root, manifests, version);
114
114
  }
115
- progress?.update("Packing packages");
115
+ progress?.update("npm pack --dry-run @shanepadgett/tau-tui");
116
116
  await run(pi, ctx, "npm", ["pack", "--dry-run", "--workspace", "@shanepadgett/tau-tui"], root);
117
+ progress?.update("npm pack --dry-run @shanepadgett/tau-agent");
117
118
  await run(pi, ctx, "npm", ["pack", "--dry-run", "--workspace", "@shanepadgett/tau-agent"], root);
118
119
 
119
120
  if (tag) {
120
- progress?.update("Committing release version");
121
+ progress?.update("git add release files");
121
122
  await git.run(["add", ...PACKAGE_PATHS, LOCKFILE_PATH], { cwd: root });
123
+ progress?.update(`git commit chore(release): ${releaseTag}`);
122
124
  await git.run(["commit", "-m", `chore(release): ${releaseTag}`], { cwd: root });
123
125
  }
124
- progress?.update(`Pushing ${releaseTag}`);
126
+ progress?.update(`git tag ${releaseTag}`);
125
127
  await git.run(["tag", releaseTag], { cwd: root });
128
+ progress?.update("git push origin HEAD");
126
129
  await git.run(["push", "origin", "HEAD"], { cwd: root, timeout: 120_000 });
130
+ progress?.update(`git push origin ${releaseTag}`);
127
131
  await git.run(["push", "origin", releaseTag], { cwd: root, timeout: 120_000 });
128
132
  progress?.update("Waiting for GitHub Actions");
129
133
  await monitorWorkflow(pi, ctx, root, await git.run(["rev-parse", "HEAD"], { cwd: root }), releaseTag, progress);
@@ -2,6 +2,19 @@ import type { Theme } from "@earendil-works/pi-coding-agent";
2
2
  import { type Component, Text, type TUI } from "@earendil-works/pi-tui";
3
3
  import { ToolPanel } from "@shanepadgett/tau-tui";
4
4
 
5
+ const RELEASE_STEPS = [
6
+ "write package versions",
7
+ "npm pack --dry-run @shanepadgett/tau-tui",
8
+ "npm pack --dry-run @shanepadgett/tau-agent",
9
+ "git add release files",
10
+ "git commit",
11
+ "git tag",
12
+ "git push origin HEAD",
13
+ "git push origin v",
14
+ "Waiting for GitHub Actions",
15
+ "GitHub Actions: publishing",
16
+ ] as const;
17
+
5
18
  export interface PublishProgress {
6
19
  update(status: string, detail?: string): void;
7
20
  }
@@ -13,6 +26,7 @@ export class PublishActivityPanel implements Component, PublishProgress {
13
26
  private readonly panel: ToolPanel;
14
27
  private status = "Preparing release";
15
28
  private detail: string | undefined;
29
+ private readonly completed: string[] = ["Release confirmed"];
16
30
 
17
31
  constructor(tui: TUI, theme: Theme, tag: string) {
18
32
  this.tui = tui;
@@ -22,12 +36,13 @@ export class PublishActivityPanel implements Component, PublishProgress {
22
36
  secondary: "Editor is unavailable until this release finishes.",
23
37
  header: [theme.fg("muted", "GitHub Actions publishes through npm trusted publishing.")],
24
38
  body: this.body,
25
- footer: { kind: "infoAck", message: "Publishing…", hints: [] },
39
+ footer: { kind: "hints", hints: [] },
26
40
  });
27
41
  this.renderBody();
28
42
  }
29
43
 
30
44
  update(status: string, detail: string | undefined = undefined): void {
45
+ if (this.status !== "Preparing release" && this.status !== status) this.completed.push(this.status);
31
46
  this.status = status;
32
47
  this.detail = detail;
33
48
  this.renderBody();
@@ -43,11 +58,15 @@ export class PublishActivityPanel implements Component, PublishProgress {
43
58
  }
44
59
 
45
60
  private renderBody(): void {
61
+ const upcoming = RELEASE_STEPS.filter(
62
+ (step) => !this.completed.some((completed) => completed.startsWith(step)) && step !== this.status,
63
+ );
46
64
  this.body.setText(
47
65
  [
48
- this.theme.fg("success", "✓ Release confirmed"),
66
+ ...this.completed.map((step) => this.theme.fg("success", `✓ ${step}`)),
49
67
  this.theme.fg("accent", `… ${this.status}`),
50
68
  ...(this.detail ? [this.theme.fg("muted", this.detail)] : []),
69
+ ...upcoming.map((step) => this.theme.fg("muted", `· ${step}`)),
51
70
  ].join("\n"),
52
71
  );
53
72
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shanepadgett/tau-agent",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Tau is a custom agentic harness built with pi extensions",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -28,7 +28,7 @@
28
28
  "README.md"
29
29
  ],
30
30
  "dependencies": {
31
- "@shanepadgett/tau-tui": "0.3.0",
31
+ "@shanepadgett/tau-tui": "0.4.0",
32
32
  "@toon-format/toon": "2.3.0"
33
33
  },
34
34
  "peerDependencies": {