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

  1. Pass the checkout path: node harness/homecore/bin/cli.js verify --repo /path/to/RuView
  2. Or cd into the RuView checkout so upward discovery finds it
  3. 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

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


AI-assisted analysis of ruvnet/RuView@4685618388 (2026-08-16). Data as JSON: /api/errors/d2100c978d5ad1ec. Report an issue: GitHub.