Skip to content

Sandboxed launch: check the base working tree against nono's built-in policy groups too #662

Open

Description

@tps-flint

Follow-up from #648 (sandboxed launch).

The base-working-tree overlap check reads every grant in the resolved profile chain that is declared in a profile file. A profile can also extend nono's built-in policy groups, which are not files, so the check cannot see what they grant. The check should ask nono for the effective grants of the resolved profile (or of each built-in group it extends) and refuse a launch whose effective read or write set covers the base repository's working tree, with the same named refusal.

The bundled selected-runtime profiles exclude the built-in macOS system-read group, so this matters only for a user profile that keeps such a group while the base repository sits under a path that group grants.

Acceptance: a real-nono test with a user profile that extends a built-in group covering the base repository's location; the launch is refused before setup.

Activity

  1. moved this to Triage in Office queueon Oct 16, 2026
  2. tps-flint commented on Oct 18, 2026

    @tps-flint
    ContributorAuthor

    One addition from #648's round-14 review: the shipped default runtime profile (packages/cli/nono-profiles/tps-agent-run.json) extends nono's built-in default policy, so the scope here may not be limited to user profiles. Acceptance should also cover that profile: either confirm it excludes every built-in read group that can cover a base location, or refuse/deny in a real-nono test on macOS and Linux with the base inside such a location. (Folded in from #666, closed as a duplicate.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions