Drop "prototype/carryover" framing now that v1 is shipped

SPEC, DEV docs, and code comments still talked about the codebase as
a rewrite-in-progress against an external prototype. With v1 shipped
the framing reads oddly — it implies code is provisional when it's
the production thing. Recast §18 as "the technical stack," strip
"carryover from the prototype" comments across backend (api.py,
chat.py, providers.py) and frontend (DiffView, PromptBar,
SelectionTooltip, modelStyles), and rework SPEC §1 / §18 to introduce
OHM up front rather than as a follow-on to a prototype reference.

Also:
- RUNBOOK: bump Python prereq to 3.11+ to match the production VM
  (was 3.13).
- Remove IMPLEMENTATION-PROMPT.md — the original implementation brief
  is no longer load-bearing.
- Add deploy/DEPLOY-NEW-SESSION-PROMPT.md as the durable
  deploy-handoff prompt for new sessions.
This commit is contained in:
Ben Stull
2026-05-25 10:32:46 -07:00
parent 7c3b8fc133
commit ee6e3491e7
12 changed files with 411 additions and 155 deletions
+1 -2
View File
@@ -4,8 +4,7 @@
// view. We reconstruct the markup for every accepted change in branch
// history by reading the `changes` table (passed in as `changes`) plus
// the current rendered HTML; hovering any tracked span surfaces a
// tooltip with the change's type/model/prompt/reason context. Carryover
// from the prototype.
// tooltip with the change's type/model/prompt/reason context.
import { useState, useCallback } from 'react'
import { MODEL_STYLES } from '../modelStyles'
+4 -5
View File
@@ -1,10 +1,9 @@
// PromptBar.jsx — the §8.1 prompt-bar at the bottom of the center column.
//
// Carryover from the prototype. In discuss mode the contributor types
// to talk; in contribute mode the model is told to lean toward concrete
// edits. The selection-quote machinery is preserved — a passage
// highlighted in the editor surfaces here as a "scoped to selection"
// badge and travels to the backend with the message.
// In discuss mode the contributor types to talk; in contribute mode the
// model is told to lean toward concrete edits. A passage highlighted in
// the editor surfaces here as a "scoped to selection" badge and travels
// to the backend with the message.
import { useState } from 'react'
import ModelPicker from './ModelPicker.jsx'
+4 -4
View File
@@ -1,9 +1,9 @@
// SelectionTooltip.jsx — the §8.12 selection-anchored entry point.
//
// Carryover from the prototype. The contributor selects a passage in
// the editor; this floating panel appears anchored to that selection.
// Submitting creates a new range-anchored chat thread (or invokes the
// AI on the current branch chat with the selection as `quote`).
// The contributor selects a passage in the editor; this floating
// panel appears anchored to that selection. Submitting creates a new
// range-anchored chat thread (or invokes the AI on the current branch
// chat with the selection as `quote`).
//
// Two affordances per §8.13: an "Ask" button that opens (or continues)
// a chat thread, and a "Flag" button that drops a flag thread anchored
+2 -2
View File
@@ -1,6 +1,6 @@
// modelStyles.js — colors and display labels for each LLM provider.
// §18 carryover from the prototype. Per §19.2's per-RFC-model topic,
// future per-RFC overrides land on top of this map without replacing it.
// Per §19.2's per-RFC-model topic, future per-RFC overrides land on
// top of this map without replacing it.
export const MODEL_STYLES = {
// Claude variants — shades of purple