Skip to content

Artifactory for everyone: ramp to 100 on both channels, and a real off switch - #242

Merged
scgopi merged 1 commit into
mainfrom
feat/artifactory-for-everyone
Sep 1, 2026
Merged

scgopi merged 1 commit into
mainfrom
feat/artifactory-for-everyone

Conversation

@scgopi

@scgopi scgopi commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Ships the Artifactory to every install, with a setting for anyone who finds it too much.

The ramp

  • docs/ramps.json — served at graphcode.app/ramps.json — now lists artifactory at 100/100. It listed nothing before, so every install fell back to the code default of stable: 0. Takes effect on each install's next launch, no release needed; it stays the kill switch.
  • FeatureRamps.defaultPercents moves to 100/100 with it — the codespaces rule: a feature ramped fully on carries its default up, so an offline first launch isn't the one place it's missing.

The setting

A switch already existed, but it was a beta gate: offered only while the ramp was on, and the daemon read an absent key as off. It is a real setting now:

  • Always offered in Settings, for everyone. showsArtifactory / showsSwitch are gone.
  • On by default everywhereGraphcodeSettings.artifactoryEnabled defaults to true, absent key included, so a CLI-only machine or a hand-edited file gets the board the way every install does.
  • A person's choice is kept over any later ramp change, as before. Off, the daemon refuses every artifactory verb and the rail section disappears.

One switch, not two: the bit the daemon enforces is the setting, and a second toggle beside it would be two controls for one fact.

Verification

Suite 1497 tests / 155 suites pass; swiftlint 0 errors, swift-format --strict clean. FeatureRampsTests.artifactoryShipsOnEverywhere pins the new default; SettingsArtifactoryTests keeps pinning choice-outranks-ramp and the kill-switch path.

🤖 Generated with Claude Code

https://claude.ai/code/session_019A6NULwEiBXEdRXwEKKcRH

…f switch

The ramp: docs/ramps.json — served at graphcode.app/ramps.json — now lists
artifactory at 100/100. It listed nothing before, so every install fell back
to the code default of stable:0. Takes effect on each install's next launch,
no release needed, and stays the kill switch. FeatureRamps.defaultPercents
moves up with it (the codespaces rule: a feature ramped fully on carries its
default up, so an offline first launch isn't the one place it's missing).

The setting: a switch existed, but as a beta gate — offered only while the
ramp was on, and the daemon read an absent key as off. It is a real setting
now: always offered, on by default everywhere (GraphcodeSettings
.artifactoryEnabled defaults to true, absent key included, so CLI-only
machines get the board too), and a person's choice is kept over any later
ramp change. Off, the daemon refuses every artifactory verb and the rail
section disappears. One switch, not two: the bit the daemon enforces is the
setting.

Suite: 1497 tests / 155 suites pass; swiftlint 0 errors, format clean.

Signed-off-by: scgopi <scgopireddy@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019A6NULwEiBXEdRXwEKKcRH
@scgopi
scgopi merged commit 641a689 into main Sep 1, 2026
1 check 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