Skip to content

CoreScope 0.8.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 23:56
· 49 commits to main since this release
beaf42e

Added

  • Projects page (phase 1 of the Projects epic): register local repositories by folder, with a
    default name from .corescope.yml (or the folder) that stays editable; the file is validated
    with errors placed on their line and summarized (profiles, ports, Services, logs, capacity), a
    minimal one is offered when missing (decline and nothing is added); git root, linked worktree
    and main repository, subfolder, branch or detached HEAD; git init after a confirmation;
    rename and remove (files are never touched). corescope://open/projects, corescope projects,
    MCP list_projects. The list lives in Application Support/CoreScope/projects.json and is part
    of the settings backup.
  • Projects › Changes and commit (phase 2): a commit panel per repository — branch, upstream
    and ahead/behind, last commit; files grouped into Conflicts, Staged, Modified, New and Removed
    with status and +/− lines (git status --porcelain=v2 plus git diff --numstat); checkbox
    stage/unstage, multi-select, Stage all / Unstage all; unified diff; open in an installed
    editor or Finder; Discard changes… after a confirmation (tracked files back to HEAD, new files
    to the Trash); commit with ⌘↩, disabled without a message, staged files or with conflicts, hooks
    and signing as configured and a failing hook's output shown. index.lock and conflicts are
    explained, never a crash. The diff reads like Zed's uncommitted-changes view: all changes
    stacked by file (or the selected files) under pinned headers with a stage checkbox and Open,
    green/red/yellow gutter bars, line numbers, syntax colors, folded unchanged stretches and
    ↑/↓ between changes. Each card shows the change counts and ahead/behind without opening it,
    live while the page is open. FSEvents refreshes the panel only while it is open (.git reduced to
    HEAD/index/refs, .gitignored paths dropped, at most two reloads a second), measured as
    Projects (git) in CoreScope's own cost. corescope status, corescope://project/NAME, MCP
    project_git_status, project_git_diff, project_git_stage, project_git_commit,
    project_git_discard.
  • Projects › Branches and worktrees (phase 3, view only): collapsible sections on each
    repository's card, closed by default and read only when opened. Local branches (git branch --format): current first, last commit, ahead/behind or upstream gone, checked out in another
    worktree. Worktrees (git worktree list --porcelain, main included): branch, agent, merged,
    uncommitted changes, process working in it, lock, folder gone, last commit and a size measured
    in the background and cached for 10 minutes, without counting nested worktrees twice. Removal
    stays on the Cleanup page, linked from the section. corescope branches, corescope worktrees
    accepts a project name, MCP project_branches / project_worktrees.
  • Demo mode also anonymizes project names and branch names on the Projects page.
  • Projects in the floating panel and the menu bar (phase 4): Show in panel per project (card
    menu, the panel's menu, MCP set_project) adds a row with name, branch and change counts to
    every panel layout and to the menu bar popover, read when they appear and kept live by file
    watchers only while visible; a click opens the project's changes in a window of their own.
  • Change notifications per project (phase 5, opt-in, off by default): every 1, 5 or 15 min
    (card menu, Settings › Notifications, MCP set_project). Watchers only mark a project as
    touched; at its interval it is read once and compared with the last notification (core
    delta, tested), so it says what moved — new/modified/staged/deleted/conflict counts, a new
    commit or a branch switch — and never fires for a save that changes nothing. Clicking opens the
    changes.
  • AI commit message (phase 6, opt-in, off by default): Generate message in the changes
    panel writes the message from the staged diff only (core commit_context: lockfiles and
    binaries left out, cut at a configurable size, tested) with the provider set in Settings › AI:
    Claude Code claude -p or Codex codex exec already signed in (no tools, no MCP, outside any
    project), the Anthropic / OpenAI (Responses) / Gemini API with the key in the Keychain only, or
    Ollama / LM Studio. Editable instructions (Conventional Commits, title up to 72 characters),
    message language, model as free text with suggestions, Test connection, and a one-time
    consent per provider showing exactly what is sent. The message is editable and nothing commits
    on its own. MCP generate_commit_message. CONTRIBUTING and Privacy document the exception to
    local-only.
  • Agents follow the project's .corescope.yml on their own: Settings › MCP server › Agent
    hooks
    installs, per agent (Claude Code ~/.claude/settings.json, Codex ~/.codex/hooks.json,
    each backed up first), a SessionStart hook (corescope context --hook) that gives each new
    session a summary of the nearest .corescope.yml — capacity rule and heavy commands, ports,
    profiles, services, logs, a snapshot before wiping a database, or the file's error with its
    line — and the capacity gate (corescope gate), which now also covers Codex (same payload). The
    settings show whether Codex trusts the hooks (it runs user hooks only after /hooks). For
    agents without hooks: MCP agent_context, and a marked section in the project's CLAUDE.md /
    AGENTS.md (Agent instructions… on the project card, corescope context --write, MCP
    write_agent_instructions), leaving the rest of the file alone. MCP agent_hooks reports and
    changes the hooks; the MCP instructions ask agents to read agent_context when no session
    context came.

Fixed

  • The Navigate menu gives ⌘1–⌘9 to the first nine pages only; more pages would have crashed it.

Commits since v0.7.0

  • feat(projects): phase 1, register projects with .corescope.yml and git (e59a4f8)
  • feat(projects): phase 2, changes and manual commit (8c9cea0)
  • feat(projects): phase 3, branches and worktrees (974b726)
  • feat(agents): project context and capacity hooks for Claude Code and Codex (23f665e)
  • fix(settings): agent hooks as plain form rows (the grid overlapped the text below) (b9a67bc)
  • refactor(projects): RepoWatcher shared by the changes panel; one-call git summary for compact rows (485bf56)
  • feat(projects): Zed-style diff and change counts on each card (60cef08)
  • feat(projects): phase 4, projects in the floating panel and the menu bar (79c75c4)
  • feat(projects): phase 5, change notifications per project (3995bfe)
  • feat(projects): phase 6, AI commit message (opt-in) (ab60eef)
  • chore(release): 0.8.0 (85f96f8)

Full diff: v0.7.0...v0.8.0

Install

  1. Download CoreScope-0.8.0-macos-universal.dmg below (universal: Apple Silicon and Intel, macOS 14+).
  2. Open the DMG and drag CoreScope to Applications.
  3. The app is open source and signed ad hoc, not notarized by Apple, so macOS blocks it the first time. Open it once, then go to System Settings → Privacy & Security and click Open Anyway. Alternatively, in Terminal:
    xattr -dr com.apple.quarantine /Applications/CoreScope.app

The Intel slice is built and checked on every release but has not yet been run on an Intel Mac; reports are welcome.

Checksums (SHA-256)

dbd3fa30238fbc0a7c89784eff632122c9726b91dcd540a396f9890d49cb525c  CoreScope-0.8.0-macos-universal.dmg
b21781da2f96d449efdc7f56c72d2d1e7182fc7c978afbd663d65888a2a34545  CoreScope-0.8.0-macos-universal.zip

Verify with shasum -a 256 -c SHA256SUMS.txt in the download folder.