Skip to content

docs(rfd): Add RFDs 074–080 and clarify draft superseding in RFD 001#611

Merged
JeanMertz merged 1 commit intomainfrom
prr179
May 6, 2026
Merged

docs(rfd): Add RFDs 074–080 and clarify draft superseding in RFD 001#611
JeanMertz merged 1 commit intomainfrom
prr179

Conversation

@JeanMertz
Copy link
Copy Markdown
Collaborator

@JeanMertz JeanMertz commented May 6, 2026

Add seven new RFDs covering the next wave of design work:

  • RFD 074 (Discussion): Eager loading with command-declared data requirements. Replaces lazy OnceLock loading with a two-phase startup pipeline where commands declare filter_needs and target_needs upfront, enabling infallible data access at runtime.

  • RFD 075 (Discussion): Tool sandbox and access policy. OS-level sandboxing for subprocess tools via sandbox-exec on macOS, Landlock on Linux, and restricted tokens/job objects on Windows. Extends RFD 076's AccessPolicy with CommandRule for spawn restrictions.

  • RFD 076 (Accepted): Tool access grants. Typed access field on tool config declaring filesystem, network, and environment-variable grants. Tools self-enforce via ctx.check_*() helpers; OS-level enforcement is RFD 075's responsibility.

  • RFD 077 (Discussion): Plugin configuration and trust policy. Introduces a [plugins] section in AppConfig with per-plugin install policy, execution policy, checksum pinning, and opaque options. Replaces standalone approval files.

  • RFD 078 (Accepted): Tool config mutation. Adds access.config as a fourth resource type in RFD 076's access model. Tools declare config read/write grants, return outcome.config / outcome.unset, and rejected deltas trigger re-invocation with context.delta_rejection. Approved deltas accumulate in a per-cycle commit buffer and are emitted as a single ConfigDelta at cycle end.

  • RFD 080 (Discussion): Editor as a config source. Moves editor invocation from Query::run into the startup pipeline so the editor's TOML preamble is resolved as a proper config layer before Ctx is constructed, eliminating the phantom-delta bug and making editor-provided values visible to the current turn.

Also updates RFD 001 to clarify that drafts cannot be superseded — a draft replaced before promotion is deleted, not superseded. Supersedes relationships only apply from the Accepted state onward.

Base automatically changed from prr178 to main May 6, 2026 13:31
# This is the 1st commit message:

docs(rfd): Add RFDs 074–080 and clarify draft superseding in RFD 001

Add seven new RFDs covering the next wave of design work:

- **RFD 074** (Discussion): Eager loading with command-declared data
  requirements. Replaces lazy `OnceLock` loading with a two-phase
  startup pipeline where commands declare `filter_needs` and
  `target_needs` upfront, enabling infallible data access at runtime.

- **RFD 075** (Discussion): Tool sandbox and access policy. OS-level
  sandboxing for subprocess tools via `sandbox-exec` on macOS, Landlock
  on Linux, and restricted tokens/job objects on Windows. Extends RFD
  076's `AccessPolicy` with `CommandRule` for spawn restrictions.

- **RFD 076** (Accepted): Tool access grants. Typed `access` field on
  tool config declaring filesystem, network, and environment-variable
  grants. Tools self-enforce via `ctx.check_*()` helpers; OS-level
  enforcement is RFD 075's responsibility.

- **RFD 077** (Discussion): Plugin configuration and trust policy.
  Introduces a `[plugins]` section in `AppConfig` with per-plugin
  install policy, execution policy, checksum pinning, and opaque
  options. Replaces standalone approval files.

- **RFD 078** (Accepted): Tool config mutation. Adds `access.config` as
  a fourth resource type in RFD 076's access model. Tools declare config
  read/write grants, return `outcome.config` / `outcome.unset`, and
  rejected deltas trigger re-invocation with `context.delta_rejection`.
  Approved deltas accumulate in a per-cycle commit buffer and are
  emitted as a single `ConfigDelta` at cycle end.

- **RFD 080** (Discussion): Editor as a config source. Moves editor
  invocation from `Query::run` into the startup pipeline so the editor's
  TOML preamble is resolved as a proper config layer before `Ctx` is
  constructed, eliminating the phantom-delta bug and making
  editor-provided values visible to the current turn.

Also updates RFD 001 to clarify that drafts cannot be superseded — a
draft replaced before promotion is deleted, not superseded. Supersedes
relationships only apply from the Accepted state onward.

Signed-off-by: Jean Mertz <git@jeanmertz.com>

# The commit message #2 will be skipped:

# fixup! docs(rfd): Add RFDs 074–080 and clarify draft superseding in RFD 001
#
# Signed-off-by: Jean Mertz <git@jeanmertz.com>
@JeanMertz JeanMertz merged commit e133113 into main May 6, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant