fix: address feature-map review findings

Normalize document line endings and specify the prerequisites for run-page workspace recovery controls.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip committed 2026-10-05 18:01:17 -05:00
1 parent 5fd292dd77
commit 4892e5c5b2
3 files changed
+21 -7

No files matched your search

@@ -64,6 +64,14 @@ test("accepts a documented partial area and excludes tests and stories from page
assert.deepEqual(f.check(), []);
});
test("accepts CRLF line endings in the index and recipes", (t) => {
const f = fixture(t);
for (const path of ["feature-map/README.md", "feature-map/example.md"]) {
f.write(path, readFileSync(join(f.root, path), "utf8").replace(/\n/g, "\r\n"));
}
assert.deepEqual(f.check(), []);
});
test("new nested pages cannot hide under a previously covered directory", (t) => {
const f = fixture(t);
f.write("ui/src/pages/apps/new/NewPanel.tsx", "");
+12 -6
View File
@@ -35,8 +35,10 @@ use the currently offered action. Follow any linked repair task and return owner
### `run-detail`
Open the agent's run (`/agents/:agentId/runs/:runId`) from activity or the task's
run link. Inspect failure/workspace recovery there, then return to the source
task. This is a separate host for shared recovery controls.
run link. The run page hosts workspace recovery controls only for a failed run
with error code `workspace_validation_failed` and a linked source task that still
has a live `workspace_validation` recovery action. Use the source task for other
stopped-run recovery checks.
### `operator-retry`
@@ -91,11 +93,15 @@ history remains. A fixture pass does not qualify every live harness/provider.
Automated: [run workspace recovery](../ui/src/components/RunWorkspaceRecoverySurface.test.tsx)
tests this host; it is component coverage, not an end-to-end repair.
Manual: open the exact failed run and compare its recovery diagnosis to the
source task. Use an eligible action from the run surface, return to the task,
Manual: prepare a failed run with error code `workspace_validation_failed`, a
linked source task, and a live `workspace_validation` recovery action on that
task. Open that exact run and compare its recovery diagnosis to the source task.
Use an eligible action from the run surface, return to the task,
and verify the same action state, persisted outcome, and restored execution.
Repeat with an actor who lacks authority. Full run-detail navigation remains a
manual gap.
Repeat with an actor who lacks authority. Verify that the run-page controls are
absent for other error codes or after the source action retires; continue other
recovery checks on the source task. Full run-detail navigation remains a manual
gap.
### `operator-retry`
+1 -1
View File
@@ -35,7 +35,7 @@ function entryIds(text, label, errors) {
export function checkFeatureMap(repoRoot = defaultRoot) {
const errors = [];
const mapRoot = resolve(repoRoot, "feature-map");
const read = (path) => readFileSync(resolve(repoRoot, path), "utf8");
const read = (path) => readFileSync(resolve(repoRoot, path), "utf8").replace(/\r\n?/g, "\n");
const normalize = (path) => relative(repoRoot, path).split(sep).join("/");
const isFile = (path) => existsSync(path) && statSync(path).isFile();
const localFile = (base, path) => {