mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-21 00:05:49 +02:00
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:
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
@@ -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`
|
||||
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
Reference in new issue
Block a user