Skip to content

feat(stml): require experimental opt-in#589

Merged
benvinegar merged 1 commit into
mainfrom
feat/experimental-stml-opt-in
Jul 24, 2026
Merged

feat(stml): require experimental opt-in#589
benvinegar merged 1 commit into
mainfrom
feat/experimental-stml-opt-in

Conversation

@benvinegar

Copy link
Copy Markdown
Member

Summary

  • add a launch-scoped --experimental flag and keep STML disabled by default
  • render plain-text note fallbacks and reject live markup in normal sessions
  • advertise stml through opted-in session context, while preventing config or reload escalation
  • update the bundled review skill, STML guide, user docs, daemon compatibility, and release notes

Testing

  • bun run format:check
  • bun run lint
  • bun run typecheck
  • bun run test (1209 passed, 5 skipped)
  • focused STML PTY coverage (2 passed)
  • bun run test:tty-smoke (9 passed)
  • real TTY smoke against the working-tree diff
  • bun run test:integration (56 passed; the atomic-save watch test times out identically on fresh origin/main)

This PR description was generated by Pi using OpenAI GPT-5.4

@greptile-apps

greptile-apps Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Require launch-scoped opt-in for experimental STML note rendering.

  • Add --experimental to review commands while preventing configuration and reload paths from escalating the launch capability.
  • Strip sidecar STML and reject markup-bearing live comments in normal sessions while preserving plain-text summaries.
  • Advertise enabled experimental features through the session registration, wire, projection, and CLI layers.
  • Bump daemon compatibility and update documentation, the bundled review skill, tests, and release notes.

Confidence Score: 5/5

The pull request appears safe to merge with no concrete blocking or non-blocking defects identified.

Experimental STML remains disabled by default, enabled only by launch input, preserved across reloads, rejected before live-comment mutation in normal sessions, and propagated through backward-compatible session parsing with the required daemon compatibility bump.

Important Files Changed

Filename Overview
src/core/cli.ts Adds experimental review-flag parsing in prefix and command-local positions while rejecting it for non-review commands.
src/core/config.ts Keeps experimental enablement controlled by explicit launch options rather than persisted configuration.
src/core/experimental.ts Centralizes experimental capability resolution and removes disabled markup from sidecar annotations without mutating source data.
src/ui/App.tsx Applies launch-scoped STML gating to displayed files, live-comment validation, and daemon-visible markup geometry.
src/ui/AppHost.tsx Preserves the original process launch authority across watch and daemon-driven reloads.
src/ui/hooks/useReviewController.ts Rejects markup-bearing single and batch live comments before state mutation when STML is disabled.
src/hunk-session/sessionRegistration.ts Advertises enabled experimental capabilities in initial and replacement session registrations.
src/hunk-session/wire.ts Parses only recognized experimental feature identifiers while remaining compatible with registrations that omit the field.
src/session/protocol.ts Bumps daemon compatibility for the changed forwarded session payload shape.

Sequence Diagram

sequenceDiagram
    participant U as User
    participant CLI as CLI/config
    participant App as AppHost/UI
    participant Broker as Session broker
    participant Agent as Agent CLI
    U->>CLI: Launch review
    CLI->>CLI: Resolve --experimental from launch argv
    CLI->>App: Bootstrap with launch capability
    App->>App: Strip STML unless opted in
    App->>Broker: Register experimentalFeatures
    Agent->>Broker: Read session context
    Broker-->>Agent: stml capability only when enabled
    Agent->>App: Submit live comment
    App->>App: Reject markup unless STML enabled
    Agent->>App: Request reload
    App->>App: Preserve original launch capability
Loading

Reviews (1): Last reviewed commit: "feat(stml): require experimental opt-in" | Re-trigger Greptile

@benvinegar
benvinegar force-pushed the feat/experimental-stml-opt-in branch from e6a81c1 to 8d52c25 Compare July 23, 2026 20:44
@benvinegar
benvinegar force-pushed the feat/experimental-stml-opt-in branch from 8d52c25 to b19d53a Compare July 24, 2026 13:34
@benvinegar
benvinegar merged commit 6ccc3a6 into main Jul 24, 2026
8 checks passed
@benvinegar
benvinegar deleted the feat/experimental-stml-opt-in branch July 24, 2026 14:02
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