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: johannesjo/parallel-code
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.6.0
Choose a base ref
...
head repository: johannesjo/parallel-code
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.7.0
Choose a head ref
  • 17 commits
  • 46 files changed
  • 5 contributors

Commits on Apr 22, 2026

  1. Restore focus-mode panel highlight

    Reapply the remembered panel selection when entering focus mode and keep the visible focus border in sync with the active panel state.
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    johannesjo and Copilot committed Apr 22, 2026
    Configuration menu
    Copy the full SHA
    43ebf73 View commit details
    Browse the repository at this point in the history
  2. Ignore alt-arrow in changed files navigation

    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    johannesjo and Copilot committed Apr 22, 2026
    Configuration menu
    Copy the full SHA
    6638855 View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2026

  1. chore(deps-dev): bump @xmldom/xmldom (#80)

    Bumps the npm_and_yarn group with 1 update in the / directory: [@xmldom/xmldom](https://github.com/xmldom/xmldom).
    
    
    Updates `@xmldom/xmldom` from 0.8.12 to 0.8.13
    - [Release notes](https://github.com/xmldom/xmldom/releases)
    - [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
    - [Commits](xmldom/xmldom@0.8.12...0.8.13)
    
    ---
    updated-dependencies:
    - dependency-name: "@xmldom/xmldom"
      dependency-version: 0.8.13
      dependency-type: indirect
      dependency-group: npm_and_yarn
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Apr 23, 2026
    Configuration menu
    Copy the full SHA
    e4604b1 View commit details
    Browse the repository at this point in the history
  2. Adjust AI terminal font size

    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    johannesjo and Copilot committed Apr 23, 2026
    Configuration menu
    Copy the full SHA
    1f0c090 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    51eb740 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2026

  1. fix(git): refactor untracked file handling in getAllFileDiffs function (

    #84)
    
    Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
    FourWindff and claude authored Apr 24, 2026
    Configuration menu
    Copy the full SHA
    c20de32 View commit details
    Browse the repository at this point in the history
  2. feat(terminal): add scrollback keybindings

    Cmd/Ctrl+Shift+Up/Down scrolls one line, Cmd/Ctrl+Shift+PgUp/PgDn
    scrolls one page. Dispatched on the terminal layer so the PTY never
    sees the key.
    johannesjo committed Apr 24, 2026
    Configuration menu
    Copy the full SHA
    2cf3628 View commit details
    Browse the repository at this point in the history
  3. Pad shell toolbar when no terminal is open

    Without a terminal, the shell section has no internal resize handle and
    its single-row toolbar sits flush against the panels above and below. Add
    6px of top/bottom padding (matching the resize-handle height) and grow
    the reserved size to 40px so the Terminal button gets the same breathing
    room it has when a terminal is open.
    johannesjo committed Apr 24, 2026
    Configuration menu
    Copy the full SHA
    aa6f633 View commit details
    Browse the repository at this point in the history
  4. fix(git): resolve diff base to origin/<branch> when remote ref exists

    Stale local main (fetched but not pulled) caused worktree diffs to include
    the origin-vs-local delta: git resolved bare `main` to refs/heads/main,
    putting the merge-base at the old tip instead of the worktree's actual
    branch point.
    johannesjo committed Apr 24, 2026
    Configuration menu
    Copy the full SHA
    50e24db View commit details
    Browse the repository at this point in the history
  5. refactor(panels): replace reactive layout with flex-first ResizablePanel

    Drop the reactive `requestSize` + neighbor-absorb loop in favor of native
    CSS flex. Each ResizablePanel child is `flex: 0 0 auto` (content-sized),
    one or more `absorberId` children get `flex: 1 1 0`, and a user-drag pin
    (stored in `panelUserSize`) overrides with `flex: 0 0 Xpx`. Drag releases
    never pin a sole absorber, so the AI terminal always fills remaining
    height; multi-absorber trees (notes/changed-files) still honor pins so
    user splits survive. Content-side min/max heights declared inline on each
    panel body. One-shot migration wipes stale `task:*` pins from prior
    iterations; `tiling:*` and `sidebar:*` pins carry over. New tests cover
    the ui API and the panelUserSize migration.
    johannesjo committed Apr 24, 2026
    Configuration menu
    Copy the full SHA
    d18e9b1 View commit details
    Browse the repository at this point in the history
  6. refactor(panels): apply multi-review cleanups

    - Fix panel-entry leak in cleanupPanelEntries: match task:${id}:* and
      tiling:${id} key shapes, not just bare id.
    - Tighten isStringNumberRecord to reject NaN/Infinity/negatives and cap
      at MAX_PANEL_PX so a corrupted state file can't propagate NaN pixels.
    - ResizablePanel: memoize absorberSet, replace children[idx*2] indexing
      with wrapperRefs, rename absorberId to absorberIds (always array),
      self-heal stale sole-absorber pins via a createEffect, simplify unpin.
    - TilingLayout: wrap wheel-zoom loop in batch() so consumers re-run once
      per tick instead of once per key.
    - Tests: new core.test.ts for cleanupPanelEntries key shapes; extra
      validator cases in persistence.test.ts.
    johannesjo committed Apr 24, 2026
    Configuration menu
    Copy the full SHA
    f8d4953 View commit details
    Browse the repository at this point in the history
  7. fix(panels): cap steps height at 40vh and lower shell default

    Steps panel was content-sized with only `height: 100%`, so a long step
    list could balloon the panel and push the AI terminal and prompt below
    the visible area. Add `max-height: 40vh` so the internal scroll body
    takes over past that cap.
    
    Shell-section natural height drops from 200 → 140 px in non-focus mode.
    The drag floor was already 28 px via the PanelChild minSize, but 200 px
    combined with overflow:hidden made smaller sizes feel useless because
    the content was clipped rather than compressed.
    johannesjo committed Apr 24, 2026
    Configuration menu
    Copy the full SHA
    bf23c08 View commit details
    Browse the repository at this point in the history
  8. fix(panels): drop shell-section pin when last terminal closes

    Stack-mode shell-section is a non-absorber, so a user drag locks its
    wrapper to a pixel pin. When the last terminal closed, the inner content
    collapsed to the 28 px toolbar but the wrapper kept the pinned height,
    leaving an empty band above the AI terminal. Delete the pin reactively
    so the flex-first tree falls back to content size and the absorber
    reclaims the space.
    johannesjo committed Apr 24, 2026
    Configuration menu
    Copy the full SHA
    3710c80 View commit details
    Browse the repository at this point in the history
  9. fix(merge): show target base branch in merge dialog

    Replaces hardcoded "main" text throughout MergeDialog with the resolved
    base branch from the task (or backend detection) so users can see which
    branch they are merging into when it isn't main.
    johannesjo committed Apr 24, 2026
    Configuration menu
    Copy the full SHA
    09b7f7a View commit details
    Browse the repository at this point in the history

Commits on Apr 25, 2026

  1. fix(git): pick diff base by merge-base closest to HEAD

    The previous rule (commit 50e24db) always preferred origin/<branch>
    over local <branch> when both existed. That fixed one failure mode —
    stale local main leaking the origin-vs-local delta into the diff —
    but introduced the inverse: when local <branch> is ahead of origin
    (user merged a PR locally without pushing, or pulled into <branch>
    after creating the worktree), the merge-base against origin/<branch>
    is older than the worktree's actual branch point, so commits already
    on local <branch> appear as feature-branch changes.
    
    Either ref can be stale; the merge-base closer to HEAD is always
    right. The new pickMergeBase computes both candidate merge-bases and
    keeps whichever is a descendant of the other; on divergence (both
    refs picked up commits the other lacks since the branch point) it
    prefers local, since that is what the user thinks they branched from.
    
    All diff-base call sites — getChangedFiles, getAllFileDiffs,
    getFileDiff, computeBranchDiffStats, getChangedFilesFromBranch,
    getAllFileDiffsFromBranch, getFileDiffFromBranch — now route through
    the new picker via detectMergeBase. The redundant inline merge-base
    lookup inside getFileDiffFromBranch is removed. resolveBaseRef is
    deleted. Spec deltas live in openspec/changes/auto-detect-diff-base/.
    johannesjo committed Apr 25, 2026
    Configuration menu
    Copy the full SHA
    460b9c4 View commit details
    Browse the repository at this point in the history
  2. fix(panels): drop shell-section min-height when it absorbs in split mode

    In focus-mode split layout, shell-section is the right-column flex
    absorber. The inner div's `min-height: max(200px, 33vh)` exists to give
    the panel a sensible default size when content-sized — but as the
    absorber it overflowed the wrapper once steps grew and compressed the
    column, and xterm sized to the 33vh inner. The wrapper's overflow:hidden
    then clipped the bottom of the terminal output.
    
    Fall back to a 0 floor when this section is the absorber so the inner
    shrinks with the wrapper and xterm fits the visible area.
    johannesjo committed Apr 25, 2026
    Configuration menu
    Copy the full SHA
    695efcd View commit details
    Browse the repository at this point in the history
  3. 1.7.0

    johannesjo committed Apr 25, 2026
    Configuration menu
    Copy the full SHA
    60c52e9 View commit details
    Browse the repository at this point in the history
Loading