Public: anyone can read this; the crew can change it.

Feature flags, part 1: flags declared in one file with a stable per-viewer percentage, and a flag the code no longer reads fails the gate #1827

shipped production is serving it opened this has it
opened this

Split from #1137. For: the forge can run two versions of a thing side by side, the same person always on the same side.

Done looks like:

  • [ ] src/core/flags.ts: each flag with name, one-line why, default and owner issue; flag(name, viewer) returns its value from a value set per forge, per user, per role or as a percentage with a stable hash on the viewer. Values are read from settings once and cached in-process; an unset or unreadable value is the default, so boot never waits on or fails for a flag.
  • [ ] test/flags.test.ts in GATE: a 30% flag puts 300±40 of 1000 viewers on, and each viewer gets the same answer twice; a declared flag no file in src/ reads fails; reading an undeclared name is a type error.
  • [ ] No page, route or the board changes in this issue (the first try went red on the board test signed in: a bare page, four live regions, dark by default; the second failed its deploy).
Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs