Skip to content

0.3.11 - #1343

Merged
XingYu-Zhong merged 350 commits into
masterfrom
develop
Sep 27, 2026
Merged

0.3.11#1343
XingYu-Zhong merged 350 commits into
masterfrom
develop

Conversation

@XingYu-Zhong

Copy link
Copy Markdown
Collaborator

No description provided.

XingYu-Zhong and others added 30 commits September 19, 2026 15:31
Room steps deliver their result through a scoped submission tool such as
submit_room_plan, submit_room_review, declare_room_checks, or
send_room_message. Once that tool result is accepted, some providers (for
example the Codex responses endpoint) finish the follow-up round with only
a reasoning item and no visible output. That stream decodes to nothing and
previously tripped the model_empty_response safety net, failing the whole
room request even though the plan was already durably accepted.

Skip the empty-response failure when the turn is a room step that already
recorded an accepted scoped submission, so the room runner can consume the
structured result normally.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
A scoped room submission (submit_room_plan, submit_room_review) is durable
once its tool result reports accepted:true. A turn that then ends failed —
for example a transport error or provider failure on the final synthesis
round — previously discarded the submission and failed the whole request or
review. The coordination and review runners now recover a schema-valid
accepted submission from a non-completed turn instead of failing, matching
the loop-level rule that an empty post-submission stream is a normal stop.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- Introduced remote access settings in the application, allowing users to enable remote access to the workbench.
- Added new localization files for remote access in English, Hindi, Japanese, Korean, Russian, Thai, and Chinese.
- Implemented normalization and merging functions for remote access settings.
- Updated app settings types to include remote access configurations.
- Created tests for remote access settings to ensure proper functionality and defaults.
- Enhanced the GUI API surface to support remote access operations.
…isibility toggle

- Added QR code generation for remote access URLs.
- Implemented password visibility toggle in the password input fields.
- Improved UI components for better accessibility and user experience.
- Updated translations for new features in multiple languages.
- Enhanced file upload handling for remote web mode.
…sized devices

- Added support for a mobile layout in the remote web environment, allowing for a more user-friendly experience on narrow viewports.
- Introduced a bottom sheet presentation for the right panel, enhancing accessibility and interaction on mobile devices.
- Updated various components (e.g., WorkbenchTopBar, WorkbenchSideRail, WorkbenchLeftSidebar) to accommodate mobile-specific behaviors and styles.
- Implemented responsive CSS rules to ensure proper display and functionality on mobile devices.
- Enhanced localization files to include new terms related to the mobile layout.
Let new Rooms Agents be defined in a chat interview or a profile form, and let the form take over mid-interview without mixing setup prompts into the stable system prefix.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the remote-web phone layout on a single-row topbar (compact session
title, icon-only affordances, no wrap), balance the empty-state hero so it
stops orphaning characters, and make the composer a rounded card with
single-line horizontally scrolling control rows and a 16px iOS-zoom-safe
textarea. The expand-workspace toggle is hidden on remote mobile because
the "..." bottom sheet already covers right-panel access.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
The Remote panel can now probe the host for a Tailscale install and, when
the tailnet is up, surface the device tailnet address as a ready-to-copy
access URL — giving users a documented path for reaching Kun from outside
the LAN through their own VPN instead of a public relay.

The probe is host-only: remote tailscale detect is intentionally left out
of the remote invoke allowlist so browser clients cannot trigger host-side
process checks.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
GUI projects can keep extra writable roots beside the primary workspace, sync them onto Code threads, and show them in the file tree without creating a second sidebar project.

Co-authored-by: Cursor <cursoragent@cursor.com>
Zero the 5.25rem desktop side-rail reserve and switch the centering
clamp to a fixed 12px page gutter so the timeline and composer span the
full phone width. Tighten the user bubble (88% max width, 18px radius,
smaller padding) and drop the composer inner-glow ring on small screens.
…sualization

- Introduced `ChartSvg`, `CartesianMarks`, and `RadialMarks` components for rendering various chart types.
- Implemented `ChartTooltip` for displaying hover information on charts.
- Updated `deriveTurnSections` to manage completed and pending chart blocks effectively.
- Enhanced `ConversationTurn` to include loading states for pending charts using `ChartSkeleton`.
- Refactored localization strings to rename "Conversation visualization" to "Session display optimization" across multiple languages.
- Updated settings type definitions to reflect changes in visualization features.
Keep the composer mention menu above timeline text with an opaque popover, and show each candidate's room avatar.

Co-authored-by: Cursor <cursoragent@cursor.com>
Empty discussion workspaces were clamped to delegated '.' scopes, so
members could not inspect a named project. Keep writes and commands
read-only while allowing host file reads and Fast Context inheritance.

Co-authored-by: Cursor <cursoragent@cursor.com>
Let Work, Design, and Code boards pick Excalidraw per board without converting scenes, while PPT and HTML/SVG drafts stay on the Kun canvas.

Co-authored-by: Cursor <cursoragent@cursor.com>
GUI-launched Electron often misses the Tailscale CLI on PATH, so the
panel reported installed-but-disconnected even when utun already had a
100.64/10 address. Scan interfaces first, keep CLI as a fallback, and
auto-detect when the remote panel opens.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use locale-aware auto voice and SHA-verified WASM/weights so first Chinese playback caches about 10MB, and drop onnxruntime-node plus phonemizer from the packaged app.

Co-authored-by: Cursor <cursoragent@cursor.com>
XingYu-Zhong and others added 29 commits September 25, 2026 18:49
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Author provider-management translations for ja, ko, ru, hi, and th, and add the missing gateway exposure keys to each locale's model-routes resource so locale completeness tests pass and the UI stops falling back to English. Also correct the failover group strategy comment: the value is only nominal for the synthesized pool since orderGroupMembers already decides member order.
Members may opt into 'mentions' attention so ordinary peer discussion fan-out no longer reaches them; explicit @-mentions and structured invitations still arrive, the default member stays designated on mention-less requests, and task notices reach the owner plus all-attention members. Members without the field behave as 'all'.

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
RoomRuntime.tick now reports whether the pass found live work (pending or\nrunning requests, unfinished tasks, in-flight integrations, peer topics with\nlive or deferred member work, in-progress participation triages, memory jobs,\nand unfinished handoffs). Active runtimes keep the one-second cadence; idle\nones wait min(15s, time to the nearest scheduled reminder), with a one-second\nfloor for past-due reminder retries.\n\nExplicit wake() calls stay immediate: a pending backoff timer is cancelled and\nreplaced with a zero-delay tick, and a wake arriving mid-pass is queued and\ndrains as soon as the current pass ends.\n\nWake coverage was extended to every durable work-producing mutation that\npreviously relied on the unconditional rescan: proposal resolution, reminder\ncancellation, room PATCH, task recovery, integration prepare/action, private\nworkspace epoch bumps, and the reminder agent tools.
Route every room-facing prompt builder and tool description through a new room-ax-surfaces registry: peer and legacy discussion prompts, participation-check instructions, the private-agent system prompt and turn input, reminder wake input, handoff prompt, history-summary and rule-compression prompts, poll invitations, collaboration guidance, playbook index and bodies, and all 18 room tool descriptions. Each surface carries a description and example inputs; a Vitest suite snapshots every rendered example and asserts the advertised tool descriptions match the registry. scripts/render-room-ax-surfaces.mjs renders the registry to dist/room-ax-surfaces.md for review.
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Rooms bot-mode improvements adopted from the raft-source comparison:
collaboration guidance, read_room_playbook, send-time freshness hold,
proposal cards, private-chat reminders, busy-turn steering, member
attention mode, idle tick backoff, and AX surface registry.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…and interpretation features

- Removed the existing work-paper-reading-plan.zh-CN.md file.
- Developed a comprehensive plan for integrating paper reading functionalities into the Work platform.
- Introduced features for importing papers from arXiv and papers.cool, generating structured notes, and creating visual interpretations using Excalidraw.
- Established a clear directory structure for paper units, including metadata, notes, and figures.
- Defined key decisions regarding data handling, user interactions, and system architecture to ensure efficient processing and user experience.
- Updated @tiptap packages to version 3.31.3 for improved features and bug fixes.
- Upgraded dompurify to version 3.4.15 for security enhancements.
- Updated mermaid to version 11.17.2 for new functionalities.
- Enhanced regex for invalid file name characters to include control characters.
Turn the papers surface into a focused three-column research workspace:
- library and discover sources (arXiv/feeds/venue) live as virtual editor
  tabs, with the library tab pinned and restored from persisted layouts
- reader drops fixed toolbar/bottom bar for floating navigation, zoom,
  page, search, tone, translate, and drawer capsules
- selection menu gains translate card, quick-ask popover, comment gutter,
  and add-to-conversation actions
- sidebar adds paper tree, metadata info panel, library switcher, and
  status/tag/group filters
- assistant shows paper-aware suggestions and a paper context chip via a
  composer bridge
- floating task ring aggregates paper jobs with stage display and cancel
- library rows switch to compact status dots; discover cards refreshed

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
The sidebar library switcher dropdown and info panel used bg-ds-panel,
which is not a defined color token, so both rendered transparent and
overlapping content bled through. Same for ds-accent/ds-active/
ds-surface-subtle across the paper reader and sidebar — icons, buttons,
active states, and input fills silently lost their styling. Map them to
the real tokens (accent, ds-hover, ds-subtle, ds-card) and surface the
library-empty hint that was unreachable behind an early return.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
The floating translate button dead-ended on "paper.md missing" when the
unit had not been preprocessed. Mirror interpretPaper: run preprocessing
on demand (automatically when autoPreprocess is enabled, otherwise after
a confirm), then continue into the translate confirmation.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…dfReader

- Introduced PaperTranslateSettingsDialog for configuring translation settings.
- Refactored translation logic in PaperPdfReader to utilize usePaperReaderTranslate hook.
- Enhanced error handling for translation requests, allowing users to configure settings on failure.
- Updated UI components to reflect new translation features, including a floating translate card and notices.
- Added localization strings for new translation features in multiple languages.
The 0.3.11 renderer bundle (11.4k modules) pushed peak old-space past the
~4 GiB default heap on the 16 GB Linux CI runners, aborting the x64
packaging job with a V8 OOM during "rendering chunks". Route
`electron-vite build` through scripts/run-electron-vite-build.cjs, which
applies --max-old-space-size=6144 unless NODE_OPTIONS already pins a cap,
so the macOS jobs keep their deliberate 4096. Also disable per-chunk gzip
size reporting in all three electron-vite targets: it costs heap on large
builds and the desktop package never consumes the numbers.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…earch tools

R0: split the PDF reader monolith into PaperUnitPdfReader plus focused
hooks (selection, position, translate card, immersive, page translate)
and a PaperPageStack render layer.

R1: reader layout presets (⌥1/2/3, persisted), immersive mode (F,
data-immersive, fullscreen sync), 250ms-stable auto selection translation
with a collapsible card, comment gutter connector lines with anti-overlap
layout and <900px dot mode, info-panel external links, and tree-row
actions/status dots.

R2: pure pdf text-block extraction, per-page translation overlays with
batched IPC + cache + stop, optional side-by-side translated mirror with
scroll/zoom sync, ⌘. region visual marks with PNG capture and composer
attach, and link/citation hover cards.

R3: reading heat bar driven by a cached reading-activity IPC, copyable
page-deep-linked citations from gutter/drawer/visual cards, and a
citation-neighbor graph in the references drawer.

New IPC follows schema -> trusted handler -> preload -> shared contract;
translations reuse paper-translate-service; seven locales updated.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Give the agent read-only memory_search/memory_list tools (no approval) so
it can enumerate and recall long-term memories, and add authority=directive
for user-approved standing rules that are injected every turn across the
native loop, Agent SDK, and Cursor SDK paths. Ordinary memories stay
untrusted reference evidence; directive creation/update always requires an
explicit human decision, imports and distillation can never produce
directives, and the GUI gains authority filters, rule promotion, directive
diagnostics, chat chips, and approval hints.

Refs #1344

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- Create memory_records_authority_idx only after the authority column exists
  so existing V1 SQLite indexes upgrade instead of failing and pinning the
  store to filesystem fallback.
- Pass the caller's live memory policy through listDirectives so the shared
  manager repository honors directive enablement and budgets per request.
- Require authority=directive (forced user decision) for memory_update calls
  that re-enable, re-time, or rewrite an existing directive.
- Respect policy.scopes in directive selection and memory_list.
- Add a V1 -> V2 index migration test and fix the stale schema version
  assertion in the hybrid store test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fold the merge-resolved floating stack (selection menu, ask popover,
translate card + mini chip, notice pill, settings dialog) into
PaperReaderOverlays and the R2.3 mirror render into
PaperTranslatedMirror, keeping PaperUnitPdfReader under the 700-line
gate after the develop merge.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- Removed unused dependencies: @tiptap/extension-mathematics, @tiptap/extension-node-range, @tiptap/suggestion, dompurify, lucide, mermaid, prosemirror-highlight, prosemirror-search.
- Re-added dependencies: @tiptap/extension-mathematics, @tiptap/extension-node-range, @tiptap/suggestion, dompurify, lucide, mermaid, prosemirror-highlight, prosemirror-search in the appropriate sections of package.json.
- Added runner.json for whisper-cli with details for darwin-x64 platform.
- Added whisper-cli binary for darwin-x64.
…bench design

- full-page views (library, discover) take the whole center when focused;
  the NOTES group stays mounted but hidden, and empty split groups fold so
  paper mode never shows the docs start page
- add an alpha-capable `accent-tint` color and replace ~110 var()-token
  opacity classes in paper UI that Tailwind silently dropped (toggle track,
  selected rows, chips and card surfaces were rendering transparent)
- library: real fixed-layout table (min width + horizontal scroll so the
  title never collapses), sticky header, hairline rows, status dots; new
  toolbar with search, status tabs, tag/group filters and actions
- sidebar: library switcher with an import action, compact library and
  expandable discover nodes (arXiv today / conference papers / feeds),
  filters moved into the library toolbar
- info panel: collapsible header with copyable arXiv id, icon rows for
  title/authors/date/venue, inline tag editor, link chips, action grid and
  edit-metadata button; keeps the last focused paper
- reader: neutral gray reading stage with shadowed white pages

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The venue discover tab was an empty page with a bare id input, and its
parser picked up subject links instead of paper titles.

- scrape the papers.cool venue catalog (series, editions, tracks) with a
  12h cache and expose it over `paper-discover:venue-catalog`
- parse venue pages into full cards (authors, abstract, PDF, forum link,
  track, reads) with total count, `group` filter and `skip` paging
- venue pane: series chips, year and track segments, filter over loaded
  papers, load-more paging; opens the newest edition of the first series
  on first visit and falls back to a manual venue id when the catalog fails
- move shared discover card parts into their own module; treat imported
  papers.cool ids as already in the library

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Kun paper-search engine: arXiv, OpenAlex, Semantic Scholar, papers.cool
  (conference proceedings and arXiv), Crossref and Europe PMC queried
  concurrently with per-source timeouts, one retry on 429, and results
  merged on DOI / arXiv id / venue id / normalized title with
  reciprocal-rank fusion
- `paper_search` tool advertised on Work turns so the assistant can run
  iterative literature searches; output is a compact ranked listing with
  ids the user can import
- GUI "Paper search" view (sidebar + tab): source chips, year range, merged
  result cards with per-source status, sort by relevance/citations/year and
  one-click import; "Agent search" hands the question to the paper
  assistant with a multi-round search brief
- the main process runs the same engine through the app proxy

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Implements work-paper-search-plan P1-P5: one multi-source engine serves
both the Work paper search page and agent tools, so results share
provenance, caching, rate limits and degradation state.

- paper_search/report/citations/details tools; structured paper lists
  ride a new model-invisible ToolResult meta sideband into chat cards
- connectors for OpenReview, PubMed, HAL, Zenodo, CORE, DBLP, Europe
  PMC/bioRxiv; result cache, per-source rate limiting and auto-degrade,
  fuzzy title merge for preprint/version duplicates
- settings: per-source toggles, credentials and test-source IPC; API
  keys only travel via env/hot-apply, never kun.config.json
- OA PDF chain (direct link -> arXiv -> Unpaywall -> Europe PMC -> CORE)
  with PDF title verification, 4-way dedupe and batch import
- literature-researcher read-only subagent and Work-mode prompt guidance
- search page: Agent tab, history, filters, bulk import/export/send-to-
  assistant, detail pane, keyboard navigation, saved-search feeds

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
The Work stylesheet contract forbids color-mix over --ds-bg-main (UI plugin
stages may theme it with gradients). Layer the text-tinted wash as a
background-image over an opaque bg-main instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@XingYu-Zhong
XingYu-Zhong merged commit 9e4b90f into master Sep 27, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants