Repository navigation
feat(desktop): integrate Sept 27 client acceptance - #523
Conversation
Technical review — layout regression blocks mergeCI on this PR is not green, and the failures are all in one place: layout.
Concrete errors from the macOS These line up directly with the layout-touching parts of this commit: context-grouped navigation, the now-stable employee header, bounded editor scrolling, and the memory page's sidebar-to-tabs change. The most serious signal is The green ubuntu job does not contradict this: layout parity and the staging layout smoke are cross-platform checks and are the ones that run the packaged app, so they are the authority here. Not merging. Requested follow-up before this can move:
Local note (informational only): the renderer suite on my machine reports 636 passed / 5 failed, but that environment is missing the pinned design-system package ( |
- Live markdown editing (Vditor IR) with full editor shortcuts and a cheatsheet - Turn timeout as inactivity window; reports reload the selected conversation - Context-grouped navigation, stable employee header, bounded editor scrolling - Consolidated document toolbar; simplified collaboration chrome - Memory page: source sidebar replaced by top tabs, compact file list and frontmatter
16cee40 to
3114747
Compare
Update — rebased onto current main and the layout regression is fixedTwo things happened since the review comment above. 1. Rebase. 2. Root cause of the layout failures — found and fixed. The packaged layout smoke (#127 AC-004) does not navigate: it launches the real renderer and measures the two-column org workspace from its first paint. This branch moves the entry module to the new That single cause produced all three red jobs (macOS Fix ( One correction to my earlier comment: the CI re-running on head |
3114747 to
04be66d
Compare
Correction — the layout failures are structural, and my previous fix was a misdiagnosisHead What #127 AC-004 measures. document.querySelector(".owb-org-module__left")
document.querySelector(".owb-org-module__pane--right > .owb-turn-panel")Those elements no longer exist on this branch. On <OrgWorkspaceSplit left={<div className="owb-org-module__left"> … PositionCard … } />On this branch
and the conversation side has moved into its own module ( The entry-module change (conversation instead of org) makes it worse but is not the cause: even with the org module opened, the two measured selectors are gone. My Also correcting my earlier comment: the This is now an AC-004 contract question, not a bug I can patch unilaterally. Three ways forward, and they are a product/acceptance decision rather than a review call:
I have left the branch at the rebase ( |
#523 replaces the org module's left column plus turn panel with a structure directory / relationship graph and moves the conversation into its own module, so the AC-004 selectors .owb-org-module__left .owb-org-module__pane--right > .owb-turn-panel match nothing. The packaged layout smoke measures its first paint without navigating, so it measured null and failed on macOS arm64 and Windows x64: Error: .../mac.json: layout is null - the two-column org module did not render Point the measurement at the pair that now carries that geometry: the collaboration sidebar (.ui-app-shell__sidebar) beside the conversation turn panel (.owb-employee-conversation .owb-turn-panel). The conversation module is the entry module, so the first paint still offers both columns. The comparison itself is unchanged: two columns that end together, of equal height, with platform-stable widths and platform-stable chrome overhead. Updates the hard-coded selectors in packaged-smoke.test.cjs and the "two-column org workspace" wording in the checker and harness to match. Refs #127
First attempt measured the sidebar against the conversation turn panel. On both platforms the panel came back 127px shorter (mac 641 vs 514, win 680 vs 553) with a 14px bottom delta, because the panel starts below the context header - that compares the header against the sidebar, not one column against the other. Measure the shell's main region instead: it is the other column of the pair, shares the shell's grid row with the sidebar, and is what 'two columns that end together' means here. Refs #127
…ot to zero The two columns used to be siblings inside the org module and had to be the same height. Since #523 they are the shell sidebar and the shell main region, and the main region starts below the context header, so a real difference exists by design: 48px on both runners (mac 641 vs 593, win 680 vs 632), with the bottoms aligned. Requiring |leftHeight - rightHeight| <= 2px now fails on a layout that is working, so compare the difference across platforms instead: it must agree within 8px, which still catches the case it was written for - one runner laying the pair out differently - while accepting a header that exists on both. bottomDelta, widths and chrome overhead are unchanged. Updates the #190 per-platform height case to pin the new cross-platform rule. Refs #127
Bindy-lbb
left a comment
There was a problem hiding this comment.
Review outcome: I cannot approve this head yet because the current required checks are 10/11, not 11/11. Node 24 / macos-14 failed after the layout checks completed successfully.
The failing assertion is renderer/test/project-board.test.tsx → clamps schedule bar calculations…: it expects the bar for Partially invalid date task (whose only valid date is hard-coded as 2026-09-22). On the macOS run dated 2026-09-28, the 28-day schedule window begins on 2026-09-28, so that task is correctly rendered as outside the window and no bar exists. The test needs a date relative to the test window (or must navigate the window) before CI can be green.
On the requested AC-004 point: the final selector pair is sidebar + shell main, not the nested turn panel. That matches the restructured first-paint conversation layout; bottom alignment remains enforced and comparing the cross-platform 48px height offset is appropriate. Minor follow-up: update check-layout-parity.mjs comments/error wording that still call the main region a “turn panel.”
0ccddf1 to
5fcc024
Compare
Bindy-lbb
left a comment
There was a problem hiding this comment.
已按当前 head 5fcc024 复核。AC-004 的实际测量目标(协作侧栏 + shell main)与高度差跨平台稳定性规则都正确,布局 smoke 也通过。\n\n但本轮 verify 的两个 Node 24 job 仍失败,不能 approve: 的排期用例把部分无效日期任务的唯一有效日期固定为 。运行日为 2026-09-28 时,它已落在 28 天窗口之外,故没有可断言的 schedule bar(CI 报 )。请将该日期锚定到测试窗口/固定系统时间,或在用例中导航窗口;重跑绿灯后我会立即复核批准。
|
更正上一条 review 的文字渲染:阻塞项位于 renderer/test/project-board.test.tsx。排期测试把部分无效日期任务的唯一有效日期写死为 2026-09-22;在 2026-09-28 运行时它位于 28 天窗口之外,CI 因此找不到 Partially invalid date task 的 schedule bar。将日期锚定到测试窗口或固定系统时间(或显式导航窗口)后,两个 Node 24 job 应可恢复通过。 |
The schedule view renders a 28-day window anchored at the current week's Monday, so fixtures hard-coding 2026-09-22 drifted outside the window once the run date passed it and their bars disappeared (failing Node 24 / macos-14 since 2026-09-28). Window-sensitive fixtures now derive dates from today, keeping the assertions calendar-independent without pinning system time.
|
Fixed the date-dependent failure Bindy flagged in Changes (commit 56be576):
Verified locally: |
….owb-rgraph__object-navigation in the label-layering contract
Preflight
16cee40; parent ismain@15ad3ab(current head), ancestry clean.Summary
Sept 27 client acceptance pass, delivered as one squashed commit on top of current
main. Five areas of the desktop client move together:docs/LiveMarkdownEditor.tsx) instead of a read-only render plus a separate composer path, with a full shortcut set and an in-app cheatsheet.Change
Renderer (
apps/desktop/renderer)docs/LiveMarkdownEditor.tsx(+378) /.css(+169): new Vditor IR editor surface, shortcuts, cheatsheet.docs/DocsPanel.tsx(+842),DocsModule.tsx,DocViewer.tsx: toolbar consolidation, live editing wired into the docs flow.approvals/ApprovalDetailDrawer.tsx(−446) →approvals/ApprovalDetail.tsx(+378): drawer replaced by a dedicated detail surface;ApprovalQueue.tsxupdated to match.turns/TurnPanel.tsx/TurnThread.tsx,groups/GroupsPanel.tsx,memory/MemoryModule.tsx: navigation grouping, stable header, bounded scrolling, memory tabs.markdown/Markdown.tsx: readable-render adjustments for the new editor.Main process (
apps/desktop/src)docs-ipc.cjs(+131),workspace-ipc.cjs(+23),main.js,preload.js: IPC for live document editing and workspace reload.Server (
apps/server)routes/docs.ts(+452): document read/write surface backing the live editor.engine/driver-cli.ts,turns/store.ts: inactivity-window turn timeout.context-sources.ts,server.ts: wiring.Shared / i18n
packages/shared/src/docs.ts(+53),api.ts,errors.ts;packages/ui/src/locales/{en,zh}.ts(+107/+109).New dependency:
vditor@4.0.0(pinned) inapps/desktop/package.json.Evidence
main@15ad3ab, parent of head16cee40docs-lifecycle.test.tsx(+889),live-markdown-editor.test.tsx(+469),App.test.tsx(+765),approval-enhancements.test.tsx(+387),docs-ipc.test.cjs(+88),server/test/docs.test.ts(+422),reports.test.ts(+75),turn-driver.test.ts(+28)smoke-live-markdown.cjs,smoke-approval-workspace.cjs,smoke-graph-scroll.cjs,smoke-navigation.cjs,smoke-loading-motion.cjsHonest caveat
This commit is an acceptance bundle produced on a machine that cannot push to GitHub directly; it was transported as a signed-off bundle and restored here, so the authorship path is
bundle → fetch → pushrather than a normal local branch. Local build/test verification is being run in parallel; results will be posted as a comment before merge, and merge is gated on green CI plus review.Verification
Acceptance