Skip to content

feat(nav): open Marketing and Insights on load; Reports stays collapsed (#2295) - #2305

Merged
objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-2295-sidebar-groups-expanded
Oct 26, 2026
Merged

objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-2295-sidebar-groups-expanded

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Requested by Leehom · project thread

Fixes #2295

Clause-②: no
Metadata-protocol: none

What changes

The seat chose route A (ruling: comment 6410069046).

  • src/sales/apps/crm.app.ts: group_marketing and group_insights now set expanded: true. Before, they had no key, and GroupNavItemSchema.expanded defaults to false in @objectstack/spec 18.1.0, so both rendered closed. group_reports stays expanded: false. Two comments were stale and now say what the console does: "The console has no report index or picker" (18.1.0 has a report index at the app's reports route, and the console links it as its own All reports row after the navigation tree), and "Collapsed on load, like Marketing and Insights" (Reports is now the only collapsed group). The group_marketing anchor comment is unchanged, so the group is still the contribution anchor that Slim the nav: one exemplar per nav-item type, view variants return to in-page tabs (7 groups / 31 items → 6 / ~24) #1259 ruled must exist.
  • test/docs-quick-tour-navigation.test.ts: two source pins move. COLLAPSED is now ['Reports'], EXPANDED gains Marketing and Insights, and Insights is pinned open. test/app-navigation-shape.test.ts: only a stale "no report index" comment changes. Its group_reports expanded: false pin still holds. I did not add a second copy of the group-state pin there, because the quick-tour file already holds it and the shape file's header asks for one pin per fact.
  • Docs (en, zh-Hans, zh-Hant): Quick tour, Analytics, Marketing and Revenue no longer call Marketing or Insights collapsed. The pages that say Reports is collapsed (Pipeline management, Reports) are still true and are not touched.
  • .changeset/2295-sidebar-groups-expanded.md.

Measured in a browser (headless Chromium, 1440×900, zh-CN, objectstack dev on this branch at bdf36c0, after pnpm demo:staff)

Sidebar rows by top–bottom px on first open, no clicks:

市场营销 / 营销活动 数据洞察 / CRM 总览 / 销售预测 报表 全部报表
admin@objectos.ai (lands on Executive Overview) open 1092 / 1124–1160 open 1176 / 1208–1244 / 1248–1284 collapsed 1300 1348–1384
na.rep@objectos.ai (lands on Sales Home) open 932 / 964–1000 open 1016 / 1048–1084 / 1088–1124 collapsed 1140 1188–1224

Before this change (same box, main 382ba4b): 市场营销, 数据洞察 and 报表 were all aria-expanded=false, and opening 报表 listed ten rows for the admin and seven for the rep. So the ten-row reason for keeping Reports collapsed still holds. 全部报表 is not a child of 报表: it is the console's sidebar-report-index row.

The seat amended the Done-when (comment 6410069046): at 1440×900 the admin's viewport ends inside 我的工作 (about 872 px) and the rep's inside 互动, so these entries are reached by scrolling, not on the first screen. They are all visible without a click for both personas.

Verification record

Acceptance notes

  • Extra fix (declared): the Marketing guide said the Marketing group "contains two items", Campaigns and Products. Products' entry is under Sales (it is contributed by the revenue module), and the browser shows only 营销活动 under 市场营销. That claim sat in the section this PR rewrites, so it is corrected in all three locales instead of being left false next to the new sentence.
  • Side finding, not fixed here: the console's report index lists English report labels under zh-CN. The index (AppReportIndexView) labels each entry through reportLabel, which looks up the translation key reports.NAME.label (console dist/assets/i18n-runtime-DS6Dh9ZK.js, byte 10568 for the key builder and byte 11771 for reportLabel; appReportIndex-qVZKRoBI.js byte 1475). But @objectstack/spec 18.1.0 has no reports translation group: TRANSLATION_KEY_GUIDANCE.reports says "reports have no translation group, omit them" (spec/dist/system/index.js:18322), and the top-level slots of the translation data schema do not include it. So HotCRM has nowhere legal to put the key. This belongs on the platform (spec plus console), not in a HotCRM pack, and is handed to the seat.

Generated by Claude Code

Marketing and Insights had no `expanded` key, and the spec defaults it
to false, so Campaigns, CRM Overview and Forecasts sat behind a click.
Both groups now open on load. Reports stays collapsed: opened it lists
one row per report, and the console's own All reports row reaches every
report without a click (measured on the 18.1.0 console). The stale
"no report index" and "collapsed like Marketing and Insights" comments
now say what the console does. Docs that called these groups collapsed
are updated in three locales; the Marketing guide stops listing Products.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016AYFEQGMzwZqJxBYr2AKWr
@vercel

vercel Bot commented Oct 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
hotcrm Ignored Ignored Oct 26, 2026 7:13am UTC

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation ci/cd CI plumbing and the verification pipeline metadata Declarative metadata — schema, security posture, UI surfaces labels Oct 26, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对

Verdict: ACCEPT · repo:hotcrm seat 1 · os-project-manager · session session_016AYFEQGMzwZqJxBYr2AKWr · 2026-10-26 · head bdf36c0
Implemented-by: os-dev subagent, branch claude/issue-2295-sidebar-groups-expanded · Reviewed-by: the seat, against GitHub (diff via REST, check-runs pinned to bdf36c0)

  1. Route as ruled (comment 6410069046, option A): group_marketing and group_insights get expanded: true; group_reports keeps expanded: false. The group_marketing contribution-anchor comment is kept; the two stale comments ("console has no report index", "collapsed like Marketing and Insights") now say what 18.1.0 does.
  2. Done-when as amended, measured in a browser at 1440×900 for the admin and na.rep: 营销活动, CRM 总览, 销售预测 and 全部报表 are in the sidebar with no click (below the fold, which the ruling accepted because the already-open groups fill the first 900 px).
  3. Docs read in en / zh-Hans / zh-Hant (quick-tour, analytics, marketing, revenue): each now says Reports is the only collapsed group. Accepted extra fix: the marketing guide claimed the group holds Campaigns and Products; read on main, nav_product is contributed by src/revenue/index.ts into group_sales (the Slim the nav: one exemplar per nav-item type, view variants return to in-page tabs (7 groups / 31 items → 6 / ~24) #1259 ruling), so the corrected sentence is true and sat in the paragraph being rewritten.
  4. Pins: test/docs-quick-tour-navigation.test.ts moves to Reports-only collapsed and Insights open; test/app-navigation-shape.test.ts keeps its group_reports pin, only a stale comment changes. No duplicate pin, per that file's one-pin-per-fact header.
  5. Out of scope: the report index shows English labels in zh-CN because spec 18.1.0 has no reports translation group; feat(spec,cli): reports are translatable — reports in the translation bundle objectstack#25826 adds it (merged, unreleased). Filed for HotCRM as a blocked card in the same stroke as this review. The expanded ?? true fallback being dead code under the spec default is an observation only.
  6. Gates: landing waits for every check at bdf36c0 to finish green; dev's pnpm verify at bdf36c0 under the lock: exit 0, 223 files / 4374 tests. Landing: not governed, under 3000 lines, so ready + auto-merge once every check is green.

Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cd CI plumbing and the verification pipeline documentation Improvements or additions to documentation metadata Declarative metadata — schema, security posture, UI surfaces

Projects

None yet

2 participants