Repository navigation
feat(nav): each persona's own work first in navigation and default views (#2367) - #2377
Merged
Merged
Conversation
…ews (#2367) Work in progress: account and opportunity tab order, SLA calendar on live cases, gantt zoom, one forecast grouping, opportunity entries hidden from service staff, Knowledge hidden from reps. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8VVAn7qxFVwU44atutX9R
A rep's Knowledge entry moves into the Sales group as a Published view entry instead of being hidden: the console's search box only searches the objects of the entries a member is shown. Docs site and in-app manual pages describe the changed surfaces in en and zh. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8VVAn7qxFVwU44atutX9R
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
Author
席位核对Verdict: ACCEPT ·
Generated by Claude Code |
This was referenced Oct 29, 2026
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.
Requested by Irene · project thread
Fixes #2367
Clause-②: no
Metadata-protocol: none
维护者速读
visible、视图顺序、过滤、缩放和分组;权限集、岗位、共享都没动,每个角色的落地页不变(测试与浏览器都核对过)。回滚即 revert 本 PR。src/service/index.ts(知识库的两个入口与门控)、src/sales/apps/crm.app.ts(NOT_SERVICE_STAFF)、src/sales/views/forecast.view.ts(orderBy单层分组)。pnpm exec vitest run test/app-navigation-audience.test.ts test/app-navigation-shape.test.ts test/forecast-list-grouping.test.ts,预期全部通过;或以 na.rep 登录,侧边栏应为 Sales Home 之下直接是 Sales,末项为 Knowledge。What changes
Each row of the card, measured first on
origin/main21664f7 with @objectstack 18.2.0, with its verdict:nav_knowledgeasksNOT_A_SALES_REP, and the service module folds a rep's Knowledge into Sales asnav_knowledge_published(the Published view, rep only). Folded, not hidden: the console's search box sendsGET /api/v1/search?objects=…with only the objects of the entries shown, so a rep with no Knowledge entry could not find an article (measured). Moving Sales above Service for everyone else would land the service agent and service manager on Leads instead of Service Overview: the console opens on the first entry shown, 18.2.0 has no landing key (homePageIdis retired), and a contribution only appends to a group. Asked in the project thread; see Acceptance notes.account.view.ts: My Accounts, At-Risk, Enterprise, then cards and map.opportunity.view.ts: My Open Deals right after Open Deals. At 1280px both were in the overflow; now both are on the strip.sla_calendarfiltersstatus not_in [resolved, closed], the cut My Open Cases uses (is_closedalone keeps resolved cases). The agent's calendar went from 23 records to 12.KanbanConfigSchemahas no lane list or hide-empty key, and view filters are AND-only, so "open, or completed recently" cannot be written. Dropping the filter would fill the lane with every completed task ever. Unchanged.campaign_gantt.gantt.viewMode: 'month'; alsocontract_ganttat'quarter'(Revenue S16, same defect). A viewer's saved zoom still wins.gantt.column.taskNamein the console's gantt plugin; no gantt config key sets it.new Date();CalendarConfigSchemahas no initial-date key.{ field: 'period_label', order: 'desc', orderBy: 'period_start' }(orderBy, objectstack#25786, is in 18.2.0). Measured: one heading per period, newest first, Q4 2025 last.NOT_SERVICE_STAFF(position half only; object entries are pruned by read already), as #2268 did for the dashboards. No permission-set change, so theservice_agentdescription is untouched.nameinto a fixed ten-gradient palette (from-pink-500 to-rose-600forcrm_enterprise);branding.primaryColoris not read there.crm_admin_accessin #2329.nav_knowledge_publishedin zh-CN, ja-JP and es-ES (same words asnav_knowledge). No file moved.Tests
test/app-navigation-audience.test.ts: a new Put each persona's own work first in navigation and default views: group order, My Accounts and My Open Deals, SLA calendar and task board, gantt and renewal calendar, forecast grouping, service users' empty deals, app tile colour, manual title #2367 block on the booted stack, persona by persona: service staff read opportunities yet are shown neither deal list, and nothing else changed; a rep is shown no Service group, Sales follows Sales Home and ends with Knowledge; every persona is shown exactly one Knowledge entry; the sales manager, the admin and the marketing user see the sidebar they saw before; every persona lands where it landed. Older blocks updated where they named Knowledge or the deal lists.test/app-navigation-shape.test.ts: the two deal entries carry the position gate.test/forecast-list-grouping.test.ts: one grouping level withorderBy.test/docs-sales-index-navigation.test.ts: the group now has ten entries.Acceptance notes
issue-2367/.Verification
pnpm verify at a6ed925
CI runs coverage and e2e.
Ablations (on the committed tree; exact-anchor replace, anchor count 1 → 0, restored with git checkout HEAD, blob hash equal to HEAD after each)
🤖 Generated with Claude Code
https://claude.ai/code/session_01J8VVAn7qxFVwU44atutX9R