@timurproko/a1 0.1.8-dev.465 → 0.1.8-dev.467

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.
@@ -59,6 +59,8 @@ export class OwnedUiSessionShellRoot {
59
59
  #workflowStatusAnchors = new Map();
60
60
  #workflowStatusMessages = new Map();
61
61
  #lastWorkflowStatusId;
62
+ // Invariant: the notice is dock chrome, never transcript content; the custom viewport alone uses it.
63
+ #dockNotice;
62
64
  #inputSurface;
63
65
  #inputSurfaceCoordination = "editor";
64
66
  #dockInputReuseEnabled;
@@ -341,6 +343,8 @@ export class OwnedUiSessionShellRoot {
341
343
  this.#documentLayouts.clear();
342
344
  }
343
345
  #mountTranscript(block) {
346
+ // Invariant: new content dismisses the notice; a revision of a mounted block keeps it.
347
+ this.#dismissDockNotice();
344
348
  const created = createPiShellTranscriptComponent(block, this.#cwd, this.#extensionRenderers, this.#submittedPromptComposer, this.#outputPad, !this.#thinkingVisible, this.#mermaidRenderingMode, this.#showImages, this.#imageWidthCells, this.#imageAssets, { ...this.#componentRuntime, changed: () => {
345
349
  if (this.#transcript.get(block.id) !== created)
346
350
  return;
@@ -522,7 +526,7 @@ export class OwnedUiSessionShellRoot {
522
526
  #renderDockLayout(width) {
523
527
  const queued = this.#customViewport ? [] : this.#renderQueued(width);
524
528
  const statusRows = this.#customViewport ? this.#status.renderDock(width) : this.#renderStatus(width);
525
- const transientRows = [...queued, ...statusRows];
529
+ const transientRows = [...queued, ...statusRows, ...this.#renderDockNotice(width)];
526
530
  const aboveWidgets = this.#renderWidgets("aboveEditor", width);
527
531
  const input = this.#inputSurface.render(width);
528
532
  // Invariant: pointer rows describe the body, not the autocomplete block now preceding it.
@@ -536,6 +540,17 @@ export class OwnedUiSessionShellRoot {
536
540
  inputRows: body?.rowCount ?? input.length,
537
541
  };
538
542
  }
543
+ #renderDockNotice(width) {
544
+ if (this.#dockNotice === undefined)
545
+ return [];
546
+ return ["", ...renderPiShellStatusText(this.#dockNotice, width, this.#outputPad)];
547
+ }
548
+ #dismissDockNotice() {
549
+ if (this.#dockNotice === undefined)
550
+ return;
551
+ this.#dockNotice = undefined;
552
+ this.#invalidateChrome();
553
+ }
539
554
  #renderQueued(width) {
540
555
  return this.#view.editor.queuedSubmissions.length === 0 ? [] : this.#queued.render(width);
541
556
  }
@@ -734,6 +749,14 @@ export class OwnedUiSessionShellRoot {
734
749
  return rows.join("\n");
735
750
  }
736
751
  appendWorkflowStatus(message) {
752
+ // Rationale: bare A1 acknowledges commands in one dock notice above the editor, where the
753
+ // reader's eye already is, instead of a transcript row that opens an empty session at the
754
+ // top-left or sinks into a long feed. The pinned route keeps Pi's chat placement.
755
+ if (this.#customViewport) {
756
+ this.#dockNotice = message;
757
+ this.#invalidateChrome();
758
+ return;
759
+ }
737
760
  const previousId = this.#lastWorkflowStatusId;
738
761
  if (previousId !== undefined
739
762
  && this.#transcriptOrder.at(-1) === previousId
@@ -873,6 +896,7 @@ export class OwnedUiSessionShellRoot {
873
896
  this.invalidate();
874
897
  }
875
898
  resetWorkflowPresentation() {
899
+ this.#dockNotice = undefined;
876
900
  for (const id of this.#workflowStatusAnchors.keys()) {
877
901
  this.#transcript.get(id)?.dispose?.();
878
902
  this.#transcript.delete(id);
@@ -1057,6 +1081,8 @@ export class OwnedUiSessionShellRoot {
1057
1081
  this.#transcriptOrder = order;
1058
1082
  }
1059
1083
  #appendAnchoredWorkflowComponent(render, dispose) {
1084
+ // Invariant: transcript-bound workflow output supersedes a pending acknowledgement.
1085
+ this.#dismissDockNotice();
1060
1086
  this.#workflowTranscriptSequence += 1;
1061
1087
  const id = `workflow-status-${this.#workflowTranscriptSequence}`;
1062
1088
  const component = {
@@ -5,7 +5,7 @@
5
5
  "platform": "darwin",
6
6
  "architecture": "arm64",
7
7
  "capability": "supported",
8
- "builtAt": "2026-09-17T17:09:52.350Z",
8
+ "builtAt": "2026-09-17T18:17:47.242Z",
9
9
  "artifact": {
10
10
  "filename": "process-guardian",
11
11
  "sha256": "9db1726bbe3fc2e8292f2ead1e7e9d0fd4d7d0dc9217b372582bf354b0f565dc",
@@ -5,7 +5,7 @@
5
5
  "platform": "linux",
6
6
  "architecture": "x64",
7
7
  "capability": "supported",
8
- "builtAt": "2026-09-17T17:09:48.434Z",
8
+ "builtAt": "2026-09-17T18:17:37.589Z",
9
9
  "artifact": {
10
10
  "filename": "process-guardian",
11
11
  "sha256": "d8cda6b0c7cb36c0cc41e90802aceebf6c02eaebbc08a83d7d963d2e918dbd7a",
@@ -5,10 +5,10 @@
5
5
  "platform": "win32",
6
6
  "architecture": "x64",
7
7
  "capability": "supported",
8
- "builtAt": "2026-09-17T17:10:27.708Z",
8
+ "builtAt": "2026-09-17T18:18:40.058Z",
9
9
  "artifact": {
10
10
  "filename": "process-guardian.exe",
11
- "sha256": "7f414d3e5005949040b86ae78a4f73375ac5773c6ad9f6a3b3f22e7d9f7d5b11",
11
+ "sha256": "bb9636bcbdcbd48220ad6beb4934afc7b07c369e0abe1906d9dacc45a67ec675",
12
12
  "size": 177664
13
13
  },
14
14
  "provenance": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timurproko/a1",
3
- "version": "0.1.8-dev.465",
3
+ "version": "0.1.8-dev.467",
4
4
  "description": "Standalone terminal workspace for supervised native and managed agents",
5
5
  "type": "module",
6
6
  "privateLaunchContract": "neutral-launch-v1",