Conversation
Post-0.11.0 release: bump apps/desktop to the next -dev prerelease marker (0.11.1-dev) and sync the lockfile, per the -dev version-number rule. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
After a release, master gains a merge commit dev lacks, so the branches diverge and later dev->master PRs show phantom "behind" commits. Document the mandatory back-merge of master into dev (verify git log dev..master is empty) alongside the -dev bump, in both the AGENTS.md release-flow summary and the packaging-release checklist. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Binary files (images, office docs, PDFs, …) render a "binary, not rendered"
placeholder with no indication of whether they are Git LFS-managed. Detect LFS
and surface the status.
- repo-mirror getFileContent: detect the Git LFS pointer blob (the mirror never
smudges, so an LFS-managed file's content is the pointer text) and return it
as binary + the real byte size from the pointer, instead of dumping pointer
text as a bogus diff
- contract: extend FileContent / DiffFileContent binary variant with an optional
lfs { size } field
- DiffPane: on the binary placeholder show a "Git LFS · <size>" tag for
LFS-managed files, or a "⚠ Not LFS" tag for plain inline binaries (per side,
preferring head); i18n across all four locales
- test: cover LFS pointer detection + size parsing in repo-mirror
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…red) Comments could only be PR summaries or line-anchored inline comments. Add file-level comments — anchored to a whole file — which Bitbucket and GitHub support. Previously such remote comments were silently collapsed to summaries, losing their file association (notably Bitbucket file comments). - model: PrCommentAnchor.line/lineType become optional (absent line = file-level); comment kind gains 'file'; new capability fileLevelComments - adapters: Bitbucket maps/publishes a line-less anchor; GitHub uses subject_type: "file"; GitLab has no file-level diff-comment API → capability false + defensive guard (degrades to local menu / hides the entry) - ipc: comments:createFile channel + controller (posts via the inline-publish path with a line-less anchor) - renderer: a file-level comment strip above the diff editor shows the file's file-level comments (reusing CommentItem for full interaction parity) plus an icon "comment on file" entry (capability-gated); the header shows the file's project-relative path as a breadcrumb. CommentItem renders a path-only, non-clickable chip for file-level anchors and skips the line code context; useCommentZones excludes line-less anchors from Monaco line zones - docs: capability field + per-platform table + a file-level comments section in the comment-interactions design Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…eased Recreate the [Unreleased] section (consumed by the 0.11.0 release) with Added entries for the two features on this branch, in both locales. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(diff): Git LFS status on binary diffs + file-level comments
…+ background) The button reset's `font: inherit` came after `font-size: $fs-md` and reset the size back to the header bar's 12px, so the breadcrumb never matched the file tree node (13px) — order the override after the reset. Also give the breadcrumb bar the tree's $bg-panel background so it reads as one surface with the file tree. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
pr-agent 0.39.0 ships a new default `repo_context_files = ["AGENTS.md"]`, but LocalGitProvider (the only provider meebox uses) inherits the base no-op `get_repo_file_content`, so the feature is skipped with a per-run WARNING and never injects project guidance into the review. Patch LocalGitProvider.get_repo_file_content in the version-guarded shim to read the blob from the base branch's tree (`git show <target>:<path>`, never the working tree, so it stays independent of _prepare_repo's /ask worktree sanitizing). Missing files / git errors degrade to "" so build_repo_context treats them as "no context" and caches no fetch error. Result: /review /describe /improve now inject the reviewed repo's AGENTS.md (capped at repo_context_max_lines) as <instruction_files>, and the WARNING no longer fires. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…leased Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(agent): support repo_context_files on LocalGitProvider via shim
Inline comment view zones were fully torn down and rebuilt on every
comments:changed (a reply/edit/delete anywhere, or the poller pulling a
new remote comment). Each rebuild unmounted the zones' React roots, so an
open inline reply/edit lost its half-typed text — unlike the activity
timeline, which survives via keyed reconciliation.
Give the inline zones the same "reconcile in place" behaviour: refactor
mountInlineZones into a persistent controller (createInlineZones →
{ update, dispose }) that diffs zones by a stable (side, line) key —
unchanged keys re-render their existing root (CommentZone keys children by
remoteId, so an open editor keeps its state), only added/removed lines
mount/unmount. useCommentZones splits into a structural effect (owns the
controller, recreated only on editor/file/view change) and a content
effect (calls controller.update on comments/props change + rebuilds the
stateless glyph decorations).
The one-shot mountInlineZones wrapper is kept byte-compatible, so the
draft zones (useDraftZones) are unchanged. The activity timeline already
handled this and needs no change.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ew comments
Creating a new inline comment records a persisted draft, but replying to a
comment posted immediately with no draft — so an unsubmitted reply was lost
on switching PRs/files/tabs, and the two authoring flows were inconsistent.
Unify replies onto the same draft model:
- ReviewDraft gains kind ('comment' | 'reply', default 'comment' for
back-compat) + replyTo { parentCommentId, threadId? }; anchor becomes
optional (a reply snapshots its inline parent's anchor, or has none when
replying to a summary comment). drafts:create validates the kind
constraints; publishDraftBatch branches reply -> comments.replyToComment
vs comment -> publishInlineComment.
- The shared CommentReplyEditor now creates a pending reply-draft instead of
posting immediately, so every surface (activity timeline + inline diff)
defers identically. A new shared ReplyDraftList renders a parent's pending
reply-drafts below it (reusing DraftZone), self-fetching from the drafts
store, on both surfaces.
- Reply-drafts join the "Publish comments" batch and count; they publish via
the reply API and, on success, the local draft is dropped and the real
reply is fetched back as a normal comment.
- useDraftZones excludes reply-kind (they render nested, not as line zones);
useLineCommentAdder ignores them for '+' occupancy; DraftsPanel /
PublishReviewModal show a "reply" tag and guard the now-optional anchor;
PrPanel / DiffView guard anchor too.
Editing an existing comment stays immediate (it mutates a remote comment,
not new authored content). i18n added for 4 locales.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…s inline comment across refresh)
feat(review): make comment replies deferred drafts, consistent with new comments
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release 0.11.1.
Highlights
AGENTS.mdas context.Version bumped to 0.11.1 (apps/desktop/package.json + lockfile); CHANGELOG (EN + ZH) Unreleased → [0.11.1] - 2026-07-14. Gates green (lint/typecheck/test/build).
Tag
v0.11.1on master after merge triggers the release build.🤖 Generated with Claude Code