ruvnet/RuView · error · Error
Refusing CLI access: Homecore repository markers are missing
Error message
Refusing CLI access: Homecore repository markers are missing (${missing.join(', ')}) What it means
Homecore verifies the trusted root contains every entry of REQUIRED_MARKERS: .git, README.md, v2/Cargo.toml, v2/crates/homecore/Cargo.toml, v2/crates/homecore-server/Cargo.toml, and docs/adr/ADR-126-ruview-native-ha-port-master.md. The error message enumerates exactly which markers are missing so the gap is immediately visible.
Source
Thrown at harness/homecore/src/repo-trust.js:75
const parent = dirname(current);
if (parent === current) return null;
current = parent;
}
}
export function assertTrustedHomecoreRepo(repoRoot, { trustedRoot = repoRoot } = {}) {
if (!repoRoot || !trustedRoot) throw new TypeError('repoRoot and trustedRoot are required');
const root = realpathSync(repoRoot);
const trustAnchor = realpathSync(trustedRoot);
if (!isWithin(trustAnchor, root) || root !== trustAnchor) {
throw new Error('Refusing CLI access: repository does not match the configured trusted root');
}
if (!statSync(root).isDirectory()) {
throw new Error('Refusing CLI access: trusted root is not a directory');
}
const missing = REQUIRED_MARKERS.filter((marker) => !existsSync(join(root, marker)));
if (missing.length) {
throw new Error(`Refusing CLI access: Homecore repository markers are missing (${missing.join(', ')})`);
}
const readme = readContainedPrefix(root, join(root, 'README.md'), 131_072);
if (!/\b(?:RuView|wifi[- ]densepose)\b/i.test(readme)) {
throw new Error('Refusing CLI access: README does not identify a RuView checkout');
}
return root;
}
View on GitHub (pinned to 4685618388)
Solutions
- Clone the full repository with git clone instead of using an archive
- Restore the missing markers if the layout legitimately moved (git init for .git, reinstate the ADR file)
- Run the command from the actual repository root
Example fix
# before $ tar xf RuView-main.tar.gz && cd RuView-main && homecore doctor --repo . # no .git marker # after $ git clone https://github.com/ruvnet/RuView && cd RuView && homecore doctor --repo .
Defensive patterns
Strategy: validation
Validate before calling
import { existsSync } from 'node:fs';
import { join } from 'node:path';
const REQUIRED_MARKERS = ['.git', 'README.md', 'v2/Cargo.toml', 'v2/crates/homecore/Cargo.toml', 'v2/crates/homecore-server/Cargo.toml', 'docs/adr/ADR-126-ruview-native-ha-port-master.md'];
function missingMarkers(root) {
return REQUIRED_MARKERS.filter((m) => !existsSync(join(root, m)));
} Prevention
- Work from a full git clone, not a source archive, when using trust-gated harness commands
- Keep sparse-checkout exclusions from dropping docs/ or v2/ markers
- After restructuring the repo, update REQUIRED_MARKERS consumers in the same change
When it happens
Trigger: Running the CLI against an exported source archive without .git, a sparse or partial checkout missing docs/, a fork that moved v2/ or the ADR file, or a non-RuView directory that merely contains a README.md.
Common situations: Downloaded tarballs from GitHub (no .git), shallow CI clones excluding docs, directory restructures across harness versions, running from a parent directory holding several projects.
Related errors
- Refusing CLI access: repository marker escapes the trusted r
- Refusing CLI access: README marker is not a regular file
- Refusing CLI access: repository does not match the configure
- Refusing CLI access: trusted root is not a directory
- Refusing CLI access: README does not identify a RuView check
AI-assisted analysis of ruvnet/RuView@4685618388 (2026-08-16).
Data as JSON: /api/errors/7be1ed6e5b16365e.
Report an issue: GitHub.