Repository navigation
Conversation
From 0.10 on, the GitHub Release body no longer carries the early-preview caveat. Removes the banner from RELEASE_NOTES.md — it lived only in the release-notes template (the CHANGELOG and website changelog never had it). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The website-changelog pointer moves to the top of the Release body and becomes
two markdown links — `[English](…) · [简体中文](…)` — each deep-linking to this
version on its locale's changelog (EN root, ZH under /zh/). release.yml fills the
new `%%CHANGELOG_URL_EN%%` / `%%CHANGELOG_URL_ZH%%` placeholders; sync-docs already
emits the `{#v…}` anchor on both locales. packaging-release.md updated.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Trim the wordy "This release on the website changelog:" lead-in to a concise "Full changelog:" — the language links and the deep-link anchor already carry the rest of the meaning. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
docs(release): reshape release notes for 0.10+
Post-0.10.0 development marker: bump apps/desktop to the next patch's -dev prerelease (next release is expected to be a small maintenance version) and sync the lockfile. Not tagged / not released; a new CHANGELOG [Unreleased] section is created on the next development-phase change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The zoom-preview close button sat at top: 16px, under the frameless window's native controls (top-right on Windows/Linux, drawn above web content). Drop it below the 36px title-bar zone, and replace the `×` text glyph with the shared CloseIcon SVG so it centers cleanly instead of sitting off-center from the font metrics. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The default code_suggestion_layout missed the outer square brackets, so the linked "AI suggestion" label + model prefix rendered unbracketed. Change the default to [[<TITLE>](<HOME>) (<MODEL>)] and sync both the English and Chinese config-reference guides. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Inline draft comments passed candidates={[]} to MentionTextarea, so the
@mention menu never opened there (only the activity/reply composers had
it). Extract collectMentionCandidates into a shared util, and thread a
candidate set (loaded comment authors + the PR author) from DiffView
through useDraftZones → DraftZoneList → DraftZone into the editor.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
pr-agent emits the security verdict in many surface forms (a terse "否" / "No", the English template phrase, or a localized "未发现安全风险"), so the card sometimes read as a bare, ambiguous "安全 · 否". Normalize any no-concern verdict at parse time to pr-agent's canonical English phrase, which the renderer's label dictionary maps to one unambiguous localized string per language. A real concern (descriptive body) is left untouched. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bitbucket Server resolves a mention only when a username containing characters like a dot is double-quoted (@"first.last"); the bare form rendered as plain text with no notification. Centralize the mention syntax in a shared formatMention helper (Bitbucket quotes non-simple usernames, GitHub/GitLab stay bare) and thread the active platform into the comment, reply, and inline-draft editors so autocomplete inserts the platform-correct token. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Opening a commented file from the tree could render the inline comment box at the wrong width (spilling past the editor) until a manual window resize. The width was computed from getBoundingClientRect arithmetic that mixed the editor's DOM rect with the zone's scrolled position — unreliable during init / a file switch. Derive it instead from Monaco's authoritative getLayoutInfo() (width - contentLeft - verticalScrollbarWidth), which is correct as soon as the editor has laid out. A self-terminating rAF settle loop plus the layout/resize/diff observers re-apply the formula until the geometry stabilizes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix: a batch of small review-UI and inline-comment bug fixes
…resent pr-agent renders a single-line file change (VERSION 1.5.2 -> 1.5.3, a hash/checksum file, any hunk whose old side is exactly one line) so the review model sees the old value as a still-present unchanged line, then wrongly reports the file contains both the old and new value. Root cause: git omits the hunk line-count when it is 1 (`@@ -1 +1 @@`), and pr-agent's extract_hunk_headers coerces the omitted size to 0 instead of 1; process_patch_lines' trailing-context slice then re-reads the changed line itself and appends it as a phantom unchanged line into __new hunk__. Add a version-guarded, self-disabling shim patch that defaults an omitted hunk size to 1 (an explicit 0, e.g. the new-file @@ -0,0 +1 @@ case, is left untouched). The shim probes the live function and no-ops if upstream ever fixes it; a maintenance note documents the removal/upgrade checklist. Verified against the vendored runtime: the phantom line is gone and normal multi-line hunks are unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(pragent): stop single-line hunks showing the old value as still present
…t it After rotating a Bitbucket PAT, syncing an existing repo mirror failed with `fatal: Authentication failed` until the cache dir was cleared: the token was baked into remote.origin.url at clone time, and every later `git fetch origin` reused that stale token. getCloneUrl (fresh token) was consulted only for a brand-new clone. Re-assemble the authenticated URL fresh from configured inputs for each remote op and fetch by explicit URL instead of the stored origin (syncMirror + fetchRefspecs), so a rotated token applies immediately. Store only a credential-free origin URL (new stripGitCredentials helper) — never persist the token in .git/config, and strip it from historical mirrors best-effort. Existing token-baked mirrors keep working without a re-clone. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(repo-mirror): re-auth git mirror with a fresh token, never persist it
Add an Unreleased section (EN canonical + ZH mirror) covering the fixes merged after 0.10.0: @mention in inline drafts, Bitbucket mention quoting, unambiguous no-security-concern verdict, single-line hunk misread, inline comment width on tree-open, image-preview close button, stale-token mirror fetch, and the default suggestion-layout brackets. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…0-dev Bump the pinned pr-agent from 0.36.0 to 0.39.0 (runtime manifest + _EXPECTED_PRAGENT_VERSION in lockstep so the version-guarded shims stay active). All five shim patches remain compatible and none are removable: the patched functions are unchanged (git_patch_processing, load_yaml) or only touched in orthogonal ways (local_git_provider write_output; litellm Databricks/GPT-5 routing), and the underlying gaps are still present upstream (single-line-hunk size, new-Claude temperature, community-edition describe assessment). Verified against the freshly assembled runtime: all shims apply and behave correctly. Also switch dev to 0.11.0-dev (the engine upgrade warrants a minor over a patch) and record the change in the CHANGELOG (EN + ZH). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chore(pragent): upgrade embedded runtime to 0.39.0, bump dev to 0.11.0-dev
…nt format
Displayed timestamps were inconsistent — some hardcoded 24h numeric, others
via toLocaleString() with no locale arg, which followed the OS locale rather
than the app language (so a Japanese UI on a Chinese OS showed Chinese-format
times, and formats differed between machines).
Standardize on one house format: 24-hour, ISO-ordered yyyy-mm-dd HH:mm:ss,
with same-day timestamps showing only HH:mm:ss (the date is redundant for
"today"); exact-time hover tooltips always include the date. Relative time
("3 minutes ago") for recent items is preserved. This is unambiguous and
sortable regardless of language/OS — the right fit for an engineering tool
(mirrors GitHub's relative-first + neutral-absolute approach, without their
locale-driven absolute that many users can't override).
The pure formatters (formatTimestamp/formatDate) live in @meebox/shared so
they are unit-tested (the desktop app has no test target); the renderer
re-exports them and every display site is migrated off toLocale*.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(desktop): standardize displayed timestamps to a locale-independent format
Record the maintenance rule: resolve a Dependabot / npm audit advisory only by upgrading the real direct/parent dependency, never with npm overrides. When no clean parent upgrade exists (a transitive vuln pinned by a parent with no patched release), prefer leaving it unpatched and filing a tracking issue for runtime deps worth following; dev-server-only tool-chain advisories that never reach the shipped artifact may be left with no issue. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The @mention autocomplete only offered this PR's already-loaded participants, so users could not mention people outside the PR without knowing the exact username. Add a per-platform remote user-search fallback and make every comment editor behave identically. - shared: new `userSearch` capability + `connection.searchUsers(query, repo)` - adapters: Bitbucket `/users?permission=LICENSED_USER&filter=` (the native web mention-picker endpoint, callable by any authenticated user); GitHub repo `collaborators` with `/search/users` fallback on 401/403; GitLab `/projects/:id/users?search=` (project members) - ipc: `mentions:search` channel + best-effort controller (warn-log then degrade to local candidates on any failure, min query length 2) - renderer: debounced (250ms) remote fallback in MentionTextarea with sequence race guard + in-flight cancellation; thread the flag through comment composer, reply editor, and draft editor - unify: the inline diff comment reply editor was missing mention candidates / platform / user search entirely; wire the same props through useCommentZones -> InlineCommentZone so inline and comments-page reply share one CommentReplyEditor with identical behavior - docs: capability + comment-interactions design; record the "comment interactions identical across all surfaces" philosophy in AGENTS.md Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(review): remote @mention user search across all comment editors
Add an Added entry (EN + zh-CN) for the new remote @mention user search that lets you mention users beyond the PR's participants across all comment editors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bump apps/desktop to 0.11.0 (sync package-lock.json) and cut the [0.11.0] CHANGELOG section from Unreleased in both locales (EN canonical + zh-CN mirror), with release highlights. 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.0 — merges
devintomaster.Release prerequisites (per docs/development/packaging-release.md)
apps/desktop/package.json→0.11.0(lockfile synced).[Unreleased]cut to[0.11.0] - 2026-07-07in bothCHANGELOG.md(EN canonical) andCHANGELOG.zh-CN.md(mirror), with a highlights intro block and the[0.11.0]compare link.[0.11.0]section covers Added / Changed / Fixed merged intodevsince0.10.0, both locales in sync.Highlights
@mention: autocomplete now searches users beyond the PR's participants on the code platform, and mentioning behaves identically across every comment editor (activity, replies, inline diff comments, review drafts).yyyy-mm-dd HH:mm:ssdisplay, locale-independent.After merge
Tag
v0.11.0onmasterto trigger release.yml (Windows / macOS installers + CLI binaries + GitHub Release). The tag name must equal the package.json version.🤖 Generated with Claude Code