ruvnet/RuView · error · Error
A trusted RuView checkout is required; pass repo.
Error message
A trusted RuView checkout is required; pass repo.
What it means
resolveRepo returns null only when no repo argument was given, the context carries no trustedRoot, and findHomecoreRepo() walked from cwd up to the filesystem root without finding a directory that looks like a Homecore repo. runVerification then refuses to run cargo commands because there is no trusted checkout to run them in.
Source
Thrown at harness/homecore/src/tools.js:187
codex: executableOnPath('codex'),
claude: executableOnPath('claude'),
},
};
}
function commandsForProfile(profile) {
if (profile === 'full') {
return [...PROFILE_COMMANDS.core, ...PROFILE_COMMANDS.wasm, ...PROFILE_COMMANDS.hap];
}
return PROFILE_COMMANDS[profile];
}
export async function runVerification(args = {}, context = {}) {
const profile = args.profile || 'core';
const commands = commandsForProfile(profile);
if (!commands) throw new RangeError(`Unsupported verification profile: ${profile}`);
const root = resolveRepo(args.repo, context);
if (!root) throw new Error('A trusted RuView checkout is required; pass repo.');
const timeoutMs = args.timeout_ms || 900_000;
const runner = context.runner || runProcess;
const results = [];
for (const commandArgs of commands) {
const result = await runner('cargo', commandArgs, {
cwd: root,
timeoutMs,
signal: context.signal,
maxOutputBytes: 2_097_152,
});
results.push({
command: ['cargo', ...commandArgs],
code: result.code,
stdout: result.stdout,
stderr: result.stderr,
truncated: result.truncated,
});
}View on GitHub (pinned to 4685618388)
Solutions
- Pass the checkout path: node harness/homecore/bin/cli.js verify --repo /path/to/RuView
- Or cd into the RuView checkout so upward discovery finds it
- In CI, clone the repository before invoking verify
Example fix
# before $ cd ~ && node harness/homecore/bin/cli.js verify # after $ node harness/homecore/bin/cli.js verify --repo /path/to/RuView
Defensive patterns
Strategy: validation
Validate before calling
import { existsSync } from 'node:fs';
import { dirname, join } from 'node:path';
function findCheckoutUpward(start = process.cwd()) {
let dir = start;
while (true) {
if (existsSync(join(dir, 'v2/crates/homecore/Cargo.toml'))) return dir;
const parent = dirname(dir);
if (parent === dir) return null;
dir = parent;
}
}
const repo = args.repo || findCheckoutUpward();
if (!repo) {
console.error('A trusted RuView checkout is required; pass --repo /path/to/RuView');
process.exit(2);
} Prevention
- Make CI clone the repository before any verify/doctor invocation
- Prefer passing --repo explicitly over relying on upward discovery
- Remember discovery only finds checkouts containing the v2/crates/homecore layout
When it happens
Trigger: Running 'homecore verify' (no --repo) from a directory outside any RuView checkout — home directory, /tmp, or a CI job that never cloned the repository.
Common situations: CI pipelines assuming the repo is already present, switching the terminal to another project, invoking via npx from an arbitrary working directory.
Related errors
- Refusing CLI access: repository marker escapes the trusted r
- Refusing CLI access: README marker is not a regular file
- repoRoot and trustedRoot are required
- Refusing CLI access: repository does not match the configure
- Refusing CLI access: trusted root is not a directory
AI-assisted analysis of ruvnet/RuView@4685618388 (2026-08-16).
Data as JSON: /api/errors/d2100c978d5ad1ec.
Report an issue: GitHub.