fix wrong herdr response parse + add labels and branch names to delegations
CI / verify (pull_request) Failing after 8s
CI / verify (pull_request) Failing after 8s
This commit is contained in:
@@ -15,6 +15,7 @@ const root = join(temp, "root"),
|
||||
destination = join(temp, "child"),
|
||||
bin = join(temp, "bin"),
|
||||
config = join(temp, "config");
|
||||
const herdrCreation = join(temp, "herdr-creation.txt");
|
||||
for (const path of [root, bin, config, join(temp, "plugin")]) await mkdir(path);
|
||||
const signal = AbortSignal.timeout(120_000);
|
||||
if ((await command([binary, "--version"], temp, signal)) !== "opencode v2.0.4")
|
||||
@@ -41,17 +42,20 @@ const inventory = (path: string, id: string) =>
|
||||
source: {
|
||||
repo_key: join(root, ".git"),
|
||||
repo_root: root,
|
||||
source_checkout_path: path,
|
||||
source_workspace_id: id,
|
||||
source_checkout_path: root,
|
||||
source_workspace_id: "w1",
|
||||
},
|
||||
worktrees: [
|
||||
{ path, is_linked_worktree: path !== root, is_bare: false, open_workspace_id: id },
|
||||
{ path: root, is_linked_worktree: false, is_bare: false, open_workspace_id: "w1" },
|
||||
...(path === root
|
||||
? []
|
||||
: [{ path, is_linked_worktree: true, is_bare: false, open_workspace_id: id }]),
|
||||
],
|
||||
},
|
||||
});
|
||||
await writeFile(
|
||||
join(bin, "herdr"),
|
||||
`#!/bin/sh\ncase "$1 $2" in\n"worktree create") git -C '${root}' worktree add -b "$6" '${destination}' "$8" >&2 || exit 1; printf '{"result":{"workspace":{"workspace_id":"w2"},"worktree":{"path":"${destination}","branch":"%s","is_linked_worktree":true}}}' "$6"; exit ;;\nesac\ncase "$1 $2 $4" in\n"workspace list ") echo '{"result":{"workspaces":[{"workspace_id":"w1"}]}}' ;;\n"worktree list w1") echo '${inventory(root, "w1")}' ;;\n"worktree list w2") echo '${inventory(destination, "w2")}' ;;\n*) exit 9 ;;\nesac\n`,
|
||||
`#!/bin/sh\ncase "$1 $2" in\n"worktree create") [ "$9" = "--label" ] && [ "\${10}" = "Fix native host" ] || exit 8; printf '%s\\n%s\\n' "$6" "\${10}" > '${herdrCreation}'; git -C '${root}' worktree add -b "$6" '${destination}' "$8" >&2 || exit 1; printf '{"result":{"workspace":{"workspace_id":"w2"},"worktree":{"path":"${destination}","branch":"%s","is_linked_worktree":true}}}' "$6"; exit ;;\nesac\ncase "$1 $2 $4" in\n"workspace list ") echo '{"result":{"workspaces":[{"workspace_id":"w1"}]}}' ;;\n"worktree list w1") echo '${inventory(root, "w1")}' ;;\n"worktree list w2") echo '${inventory(destination, "w2")}' ;;\n*) exit 9 ;;\nesac\n`,
|
||||
);
|
||||
await chmod(join(bin, "herdr"), 0o755);
|
||||
const built = await Bun.build({
|
||||
@@ -190,6 +194,8 @@ try {
|
||||
.parse(JSON.parse(z.string().parse(result.output)));
|
||||
if (!output.content.includes("FIXTURE_COMPLETE"))
|
||||
throw new Error("Missing native child result");
|
||||
if ((await readFile(herdrCreation, "utf8")) !== "fix/native-host\nFix native host\n")
|
||||
throw new Error("Custom Herdr branch/label mismatch");
|
||||
const child = await client.session.get({ sessionID: output.metadata.sessionID });
|
||||
if (child.parentID !== parent.id || child.location.directory !== destination)
|
||||
throw new Error("Child ancestry/placement mismatch");
|
||||
|
||||
Reference in New Issue
Block a user