Restart on the current source with /reload The interface is developed by running it, and every change meant leaving the session, rebuilding, and starting again -- which loses the conversation that prompted the change. `/reload` does those three things without the reader doing them. The work is split where the terminal is. The interface only asks, by exiting with a code of its own; the runner rebuilds and restarts once it has the screen back. A compiler writing over a live alt-screen is a session nobody can read. A build that fails does not restart. The compiler's own output is printed and the process stops, because a reload onto code that does not compile would silently be a reload onto the build before it. "Build failed" on its own tells the reader nothing they can act on. Only where it means something. A published install ships `dist` and a manifest but no `src`, and a manifest with no build script is nothing to rebuild with, so there `/reload` says so rather than trying and failing. The check is a predicate over a directory so a test can hand it one, rather than a lookup that can only be exercised on the machine it runs on. The transcript ends with the session. It is not written out on the way past: reloading is something a reader does many times in a sitting, and a command that quietly leaves a file behind each time is one they have to clean up after. `/export` keeps a conversation when it is wanted. Verified both directions on a real session: an edit to a source file that had not been built appeared in `dist` after `/reload`, and reverting the file and reloading again took it back out. A deliberate type error printed the compiler's message and refused the restart. 335 tests pass, seven on this.
Restart on the current source with /reload
Deploy story
What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.
Not deployed through the forge lane
No push, promotion, build, or deploy receipt references this commit (receipts are scanned over a bounded recent window). Changes shipped by full node replacement carry their proof in the release gate receipt instead.
Changed files
-
modified
docs/assure-repo/false-green-candidates.v1.json -
modified
docs/assure-repo/surface-inventory.v1.json -
modified
packages/openagents-cli/src/cli.ts -
modified
packages/openagents-cli/src/coder-plain.ts -
added
packages/openagents-cli/src/coder-reload.ts -
modified
packages/openagents-cli/src/coder-ui.ts -
added
packages/openagents-cli/test/coder-reload.test.ts -
modified
packages/openagents-cli/test/coder-ui.test.ts
Diff
8 files changed, +219 -6
docs/assure-repo/false-green-candidates.v1.json modified +1 -1
@@ -4,7 +4,7 @@
| 4 | 4 |
|
| 5 | 5 |
|
| 6 | 6 |
|
| 7 |
|
|
| 7 |
|
|
| 8 | 8 |
|
| 9 | 9 |
|
| 10 | 10 |
|
docs/assure-repo/surface-inventory.v1.json modified +2 -2
@@ -1,7 +1,7 @@
| 1 | 1 |
|
| 2 | 2 |
|
| 3 | 3 |
|
| 4 |
|
|
| 4 |
|
|
| 5 | 5 |
|
| 6 | 6 |
|
| 7 | 7 |
|
packages/openagents-cli/src/cli.ts modified +27
@@ -36,6 +36,9 @@ import {
| 36 | 36 |
|
| 37 | 37 |
|
| 38 | 38 |
|
| 39 |
|
|
| 40 |
|
|
| 41 |
|
|
| 39 | 42 |
|
| 40 | 43 |
|
| 41 | 44 |
|
@@ -1835,6 +1838,30 @@ const coderCommand = Command.make(
| 1835 | 1838 |
|
| 1836 | 1839 |
|
| 1837 | 1840 |
|
| 1841 |
|
|
| 1842 |
|
|
| 1843 |
|
|
| 1844 |
|
|
| 1845 |
|
|
| 1846 |
|
|
| 1847 |
|
|
| 1848 |
|
|
| 1849 |
|
|
| 1850 |
|
|
| 1851 |
|
|
| 1852 |
|
|
| 1853 |
|
|
| 1854 |
|
|
| 1855 |
|
|
| 1856 |
|
|
| 1857 |
|
|
| 1858 |
|
|
| 1859 |
|
|
| 1860 |
|
|
| 1861 |
|
|
| 1862 |
|
|
| 1863 |
|
|
| 1864 |
|
|
| 1838 | 1865 |
|
| 1839 | 1866 |
|
| 1840 | 1867 |
|
packages/openagents-cli/src/coder-plain.ts modified +20 -2
@@ -19,6 +19,7 @@
| 19 | 19 |
|
| 20 | 20 |
|
| 21 | 21 |
|
| 22 |
|
|
| 22 | 23 |
|
| 23 | 24 |
|
| 24 | 25 |
|
@@ -71,7 +72,23 @@ export async function runCoderPlain(
| 71 | 72 |
|
| 72 | 73 |
|
| 73 | 74 |
|
| 75 |
|
|
| 76 |
|
|
| 77 |
|
|
| 74 | 78 |
|
| 79 |
|
|
| 80 |
|
|
| 81 |
|
|
| 82 |
|
|
| 83 |
|
|
| 84 |
|
|
| 85 |
|
|
| 86 |
|
|
| 87 |
|
|
| 88 |
|
|
| 89 |
|
|
| 90 |
|
|
| 91 |
|
|
| 75 | 92 |
|
| 76 | 93 |
|
| 77 | 94 |
|
@@ -99,15 +116,16 @@ export async function runCoderPlain(
| 99 | 116 |
|
| 100 | 117 |
|
| 101 | 118 |
|
| 102 |
|
|
| 119 |
|
|
| 103 | 120 |
|
| 104 | 121 |
|
| 105 | 122 |
|
| 106 | 123 |
|
| 107 | 124 |
|
| 108 | 125 |
|
| 126 |
|
|
| 109 | 127 |
|
| 110 |
|
|
| 128 |
|
|
| 111 | 129 |
|
| 112 | 130 |
|
| 113 | 131 |
|
packages/openagents-cli/src/coder-reload.ts added +64
@@ -0,0 +1,64 @@
| 1 |
|
|
| 2 |
|
|
| 3 |
|
|
| 4 |
|
|
| 5 |
|
|
| 6 |
|
|
| 7 |
|
|
| 8 |
|
|
| 9 |
|
|
| 10 |
|
|
| 11 |
|
|
| 12 |
|
|
| 13 |
|
|
| 14 |
|
|
| 15 |
|
|
| 16 |
|
|
| 17 |
|
|
| 18 |
|
|
| 19 |
|
|
| 20 |
|
|
| 21 |
|
|
| 22 |
|
|
| 23 |
|
|
| 24 |
|
|
| 25 |
|
|
| 26 |
|
|
| 27 |
|
|
| 28 |
|
|
| 29 |
|
|
| 30 |
|
|
| 31 |
|
|
| 32 |
|
|
| 33 |
|
|
| 34 |
|
|
| 35 |
|
|
| 36 |
|
|
| 37 |
|
|
| 38 |
|
|
| 39 |
|
|
| 40 |
|
|
| 41 |
|
|
| 42 |
|
|
| 43 |
|
|
| 44 |
|
|
| 45 |
|
|
| 46 |
|
|
| 47 |
|
|
| 48 |
|
|
| 49 |
|
|
| 50 |
|
|
| 51 |
|
|
| 52 |
|
|
| 53 |
|
|
| 54 |
|
|
| 55 |
|
|
| 56 |
|
|
| 57 |
|
|
| 58 |
|
|
| 59 |
|
|
| 60 |
|
|
| 61 |
|
|
| 62 |
|
|
| 63 |
|
|
| 64 |
|
packages/openagents-cli/src/coder-ui.ts modified +23 -1
@@ -32,6 +32,7 @@
| 32 | 32 |
|
| 33 | 33 |
|
| 34 | 34 |
|
| 35 |
|
|
| 35 | 36 |
|
| 36 | 37 |
|
| 37 | 38 |
|
@@ -658,6 +659,27 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 658 | 659 |
|
| 659 | 660 |
|
| 660 | 661 |
|
| 662 |
|
|
| 663 |
|
|
| 664 |
|
|
| 665 |
|
|
| 666 |
|
|
| 667 |
|
|
| 668 |
|
|
| 669 |
|
|
| 670 |
|
|
| 671 |
|
|
| 672 |
|
|
| 673 |
|
|
| 674 |
|
|
| 675 |
|
|
| 676 |
|
|
| 677 |
|
|
| 678 |
|
|
| 679 |
|
|
| 680 |
|
|
| 681 |
|
|
| 682 |
|
|
| 661 | 683 |
|
| 662 | 684 |
|
| 663 | 685 |
|
@@ -919,7 +941,7 @@ export function runCoderUi(session: CoderSession, options: CoderUiOptions): Prom
| 919 | 941 |
|
| 920 | 942 |
|
| 921 | 943 |
|
| 922 |
|
|
| 944 |
|
|
| 923 | 945 |
|
| 924 | 946 |
|
| 925 | 947 |
|
packages/openagents-cli/test/coder-reload.test.ts added +49
@@ -0,0 +1,49 @@
| 1 |
|
|
| 2 |
|
|
| 3 |
|
|
| 4 |
|
|
| 5 |
|
|
| 6 |
|
|
| 7 |
|
|
| 8 |
|
|
| 9 |
|
|
| 10 |
|
|
| 11 |
|
|
| 12 |
|
|
| 13 |
|
|
| 14 |
|
|
| 15 |
|
|
| 16 |
|
|
| 17 |
|
|
| 18 |
|
|
| 19 |
|
|
| 20 |
|
|
| 21 |
|
|
| 22 |
|
|
| 23 |
|
|
| 24 |
|
|
| 25 |
|
|
| 26 |
|
|
| 27 |
|
|
| 28 |
|
|
| 29 |
|
|
| 30 |
|
|
| 31 |
|
|
| 32 |
|
|
| 33 |
|
|
| 34 |
|
|
| 35 |
|
|
| 36 |
|
|
| 37 |
|
|
| 38 |
|
|
| 39 |
|
|
| 40 |
|
|
| 41 |
|
|
| 42 |
|
|
| 43 |
|
|
| 44 |
|
|
| 45 |
|
|
| 46 |
|
|
| 47 |
|
|
| 48 |
|
|
| 49 |
|
packages/openagents-cli/test/coder-ui.test.ts modified +33
@@ -4,6 +4,7 @@ import { describe, expect, it } from "vitest";
| 4 | 4 |
|
| 5 | 5 |
|
| 6 | 6 |
|
| 7 |
|
|
| 7 | 8 |
|
| 8 | 9 |
|
| 9 | 10 |
|
@@ -571,3 +572,35 @@ describe("the /skills screen", () => {
| 571 | 572 |
|
| 572 | 573 |
|
| 573 | 574 |
|
| 575 |
|
|
| 576 |
|
|
| 577 |
|
|
| 578 |
|
|
| 579 |
|
|
| 580 |
|
|
| 581 |
|
|
| 582 |
|
|
| 583 |
|
|
| 584 |
|
|
| 585 |
|
|
| 586 |
|
|
| 587 |
|
|
| 588 |
|
|
| 589 |
|
|
| 590 |
|
|
| 591 |
|
|
| 592 |
|
|
| 593 |
|
|
| 594 |
|
|
| 595 |
|
|
| 596 |
|
|
| 597 |
|
|
| 598 |
|
|
| 599 |
|
|
| 600 |
|
|
| 601 |
|
|
| 602 |
|
|
| 603 |
|
|
| 604 |
|
|
| 605 |
|
|
| 606 |
|