Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,3 +105,7 @@ Initial implementation.
— state, usage and the last dozen journal entries, printed and gone. A
flow peek shows the stage chain and recurses into the current stage's
run.
- The init wizard's full-permission confirm now defaults to Yes (the
recommended choice) and its warning spells out that runs and flows
(audit → triage → patch → verify) fail closed without it; doctor's
scoped-mode message says the same.
2 changes: 1 addition & 1 deletion internal/bootstrap/doctor.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func Doctor(ctx context.Context, state *State, log LogFn) (*DoctorReport, error)
if state.FullPermission {
add("permission-mode", true, "full (consented at init): harnesses run with all tools auto-approved")
} else {
add("permission-mode", true, "scoped (fail-closed): permission requests abort runs with exit 2 — the harness's skills need `traust-cli init --full-permission`")
add("permission-mode", true, "scoped (fail-closed): permission requests abort runs with exit 2 — skills and flows (audit → triage → patch → verify) need `traust-cli init --full-permission`")
}

// Traust checkout + venv.
Expand Down
10 changes: 7 additions & 3 deletions internal/tui/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ func RunInitWizard(defaultWorkspace, defaultForge string, detected []string, def
Ref: "latest",
ToolchainProfile: "none",
Harness: defaultHarness,
// Full permission is the recommended default: the harness's skills
// cannot run unattended without it, so the confirm highlights Yes.
FullPermission: true,
}

harnessOptions := []huh.Option[string]{}
Expand Down Expand Up @@ -73,9 +76,10 @@ func RunInitWizard(defaultWorkspace, defaultForge string, detected []string, def
),
huh.NewGroup(
huh.NewConfirm().
Title("Run skills with full permissions?").
Description("The traust harness's skills REQUIRE unattended tool use (bash, file writes) — "+
"without full permission they fail closed on the first permission request. "+
Title("Run skills with full permissions? (recommended)").
Description("The traust harness's skills REQUIRE unattended tool use (bash, file writes). "+
"WARNING: without full permission, runs and flows (audit → triage → patch → verify) "+
"fail closed on the first permission request — most workflows will not complete. "+
"With it, your harness runs with all tools auto-approved "+
"(claude --dangerously-skip-permissions, crush --yolo, codex --dangerously-bypass-approvals-and-sandbox). "+
"S9 isolation still applies: agents run from the harness root and never load the audit target's configuration.").
Expand Down
Loading