Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: levelcodeai/levelcode
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.0.1
Choose a base ref
...
head repository: levelcodeai/levelcode
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.0.2
Choose a head ref
  • 8 commits
  • 3 files changed
  • 2 contributors

Commits on Jul 25, 2026

  1. redesign(ai): name-only Cloud model picker — drop the per-row debug d…

    …etail
    
    The gateway model picker showed three technical fields per model: the raw id
    (anthropic/claude-opus-5), the context size, and a "N× credits · NK ctx · ≈N turns
    left" second line. For someone who just wants to pick Opus 5 that buried the name in
    noise and made every row a tall two-line block.
    
    Each row is now a single, name-forward line: the friendly name + the active check, and
    a lock + "coming soon" on staged models. The plan and remaining credits still live in
    the picker's placeholder, so the one number that matters isn't lost. Reads like the
    Cursor / Claude Code pickers.
    
    - dropped: description=id, the ctx/multiplier/turns detail line, and fmtTurns (now
      unused). matchOnDescription is off, so typing filters by model name only.
    - staged rows carry _name — the "coming soon" toast used to read the model name out of
      description, which is now literally the string "coming soon".
    
    It's a native QuickPick, so the font follows the app UI font (can't be set per-picker);
    the single-line rows are what make the name read large and clean.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    ndemianc and claude committed Jul 25, 2026
    Configuration menu
    Copy the full SHA
    41c855f View commit details
    Browse the repository at this point in the history
  2. Merge pull request #46 from levelcodeai/redesign/model-picker-minimal

    redesign(ai): name-only Cloud model picker — drop the per-row debug detail
    ndemianc authored Jul 25, 2026
    Configuration menu
    Copy the full SHA
    c1f778d View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2026

  1. feat(ai): finished-plan auto-collapse + dismiss; drop the footer "Lev…

    …elCode Cloud" chip
    
    Two chat-UI cosmetics (both in media/chat.html, non-overlapping regions).
    
    Plan bar — a completed checklist used to sit fully expanded (up to 38vh) long after the run
    ended, with no way to clear it. Now, matching how Claude Code / Cursor handle a finished plan:
    - auto-collapse to the (green) header the moment it first hits N/N — rising-edge latch, so a
      manual re-expand of a done plan sticks on later re-renders, and the state resets when the
      plan is cleared (agentStart / newChat / dismiss);
    - a dismiss (×) in the header closes it outright — reveals on header hover, stays visible once
      the plan is done (its primary use), and also clears a plan stranded by an aborted/errored
      run. stopPropagation so it doesn't also toggle the collapse. The × is a styled literal, not
      codicon('close') — 'close' isn't in the webview's codicon subset (it would render as text).
    
    Footer — removed the st-local item (home icon + "LevelCode Cloud" / "Local" / "Direct"). The
    st-key chip already conveys the mode + plan ("Gateway · Pro+", "BYO key", "Direct · no key"),
    so st-local was redundant; renderRouting now drives st-key only. Updated the three comments
    that referenced st-local.
    
    Verified: every <script> block in chat.html parses (0 syntax errors); webviewCss + creditFormat
    suites (which parse chat.html) still green; full gate 24 suites.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    ndemianc and claude committed Jul 26, 2026
    Configuration menu
    Copy the full SHA
    c29de36 View commit details
    Browse the repository at this point in the history
  2. docs: RELEASE-NOTES.md for v1.0.1 (gateway error recovery + license d…

    …etection)
    
    v1.0.1 (tag a0850f4) contains #44 (license) + #45 (gateway error handling) only. The
    model-picker cleanup (#46) merged to develop AFTER this tag, and the chat cosmetics (#47)
    aren't merged yet — so neither is in v1.0.1, and the notes cover exactly what the tag holds.
    
    Lead: a transient upstream 5xx now retries and recovers instead of ending the run, and a
    failed request surfaces an honest "LevelCode Cloud API 502: Bad Gateway" instead of raw
    nginx HTML mislabeled "OpenAI". Under the hood: GitHub now detects the LICENSE as MIT.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    ndemianc and claude committed Jul 26, 2026
    Configuration menu
    Copy the full SHA
    722ee8e View commit details
    Browse the repository at this point in the history
  3. a11y(ai): make the plan dismiss (×) keyboard-operable (PR #47 review)

    The dismiss control had role="button" but no tabindex and no key handler, so keyboard-only
    users couldn't reach or activate it. Matched the house pattern used by ctxStat / approvals /
    the mode pill: tabindex="0" + an Enter/Space keydown that runs the same dismiss as the click
    (factored into one handler, shared with onclick).
    
    Also gave it a :focus-visible reveal + accent outline — the button is opacity:0 until hover
    (or the plan is done), so without that a keyboard focus would land on an invisible control.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    ndemianc and claude committed Jul 26, 2026
    Configuration menu
    Copy the full SHA
    750f6f9 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #47 from levelcodeai/ui/chat-cosmetics

    feat(ai): finished-plan auto-collapse + dismiss; drop the footer "LevelCode Cloud" chip
    ndemianc authored Jul 26, 2026
    Configuration menu
    Copy the full SHA
    510f4a9 View commit details
    Browse the repository at this point in the history
  5. docs: name 502/503/504 explicitly in the v1.0.1 retry notes (PR #48 r…

    …eview)
    
    "a genuine transient 5xx" could be read to include 500, which is NOT retried. Say
    "only a 502, 503, or 504" to match the code (TRANSIENT_STATUS) and the very next
    sentence. Also tightened "500 / other 4xx" (500 isn't a 4xx) to "a 500, any other 4xx".
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    ndemianc and claude committed Jul 26, 2026
    Configuration menu
    Copy the full SHA
    bc45a34 View commit details
    Browse the repository at this point in the history
  6. Merge pull request #48 from levelcodeai/docs/release-notes-v1.0.1

    docs: RELEASE-NOTES.md for v1.0.1
    ndemianc authored Jul 26, 2026
    Configuration menu
    Copy the full SHA
    b9c1289 View commit details
    Browse the repository at this point in the history
Loading