Repository navigation
feat(metadata): quote-line subtotal and feedback comment reach their related-list panels (#1199) - #1958
Merged
Conversation
…t panels (#1199) `relatedListColumns` on the two parent lookups, the mechanism a detail-page related list reads first (#944), each a superset of the highlightFields fallback it replaces: - crm_quote_line_item.crm_quote: adds `subtotal` between Sales Price and Total. - crm_article_feedback.crm_knowledge_article: adds `comment` after Verdict and Reader, the author-facing feedback panel. Quote docs (three locales) name the panel's columns; one stale cross-reference in account.object.ts that cited the feedback comment as unconsumed is dropped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X8U3asekbiC7yWoEPWR4Dg
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
os-warren
marked this pull request as ready for review
September 25, 2026 13:06
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.
Part of #1199. This PR gives the last two unshown rows a consumer. One half of the
crm_account.logorow stays open: the platform has no way to draw an image in the record header (details below). Merging this PR should not close the card.What the ruling asked, and what
origin/mainalready hadThe ruling (batch #163 item 1, "enforce every row") names seven placements. I checked each one against
origin/mainatdf49be2dbefore changing anything. Four of the seven were already done by #1831 (PR merged 2026-09-09, commit89874d2c). That PR landed before the ruling, but the ruling was written from the62560210snapshot, which predates it. Two more rows were already shown by the layout the platform builds fromfieldGroups.crm_campaign.descriptionbasicsrc/marketing/views/campaign.view.ts:124crm_contract.descriptionnotessrc/revenue/views/contract.view.ts:146crm_quote_line_item.descriptiongroup: 'basic'(this object has no view file)src/revenue/objects/quote_line_item.object.ts:110Description, and the detail page shows it under Line Itemcrm_quote_line_item.subtotalrelatedListColumnssrc/revenue/objects/quote_line_item.object.ts:96crm_account.logo, formprofile+coverFieldon the account cards viewsrc/sales/views/account.view.ts:228,:106crm_account.logo, detail headercrm_article_feedback.commentrelatedListColumnssrc/service/objects/article_feedback.object.ts:152crm_campaign_member.added_daterelatedListColumnssrc/marketing/objects/campaign_member.object.ts:135The two new placements
Both use
relatedListColumnson the child's parent lookup. That is the first thing a detail page's related list reads (#944, andderiveRelatedLists.tsin objectui). #1831 used the same pattern foradded_date. Each list keeps every column of thehighlightFieldsfallback it replaces and adds one field:Neither field went into
highlightFields. The detail page only hoists the first four entries of that list, and for feedback, adding it would empty thebasicgroup (field-group-shadowed). The object comments explain both reasons.Browser check on a dev server started from this branch, captured from the
thelements:QTE-0004, Related tab:["Product","Quantity","Sales Price","Subtotal","Total","Actions"]["Verdict","Reader","Comment", ...], and the comment text is on screenNot measured: a browser run of the same two panels before this change. The fallback columns come from the
highlightFieldscomments and the #944 note intest/view-references.test.ts, not from a run.crm_account.logoin the detail header: stopped, no workaroundaccount_detail_pageoverrides theheaderslot withpage:header. In@objectstack/spec17.4.0,PageHeaderPropsacceptstitle,subtitle,breadcrumb,actions,recordChrome,showStar,showCopyId,maxVisible,mobileMaxVisibleandaria, and none of them is an image.iconis anever. The record-chrome branch in objectui (containers.tsx) builds only a title chip.I tested this directly: adding
image: '{logo}'to the header props made bothpnpm lintandpnpm validatereportcomponent-props-unknown-key … page:header: \image` is not a prop. I then restored the file and confirmedgit diff HEADwas empty. So the platform needs an image or avatar prop on the header before this half can land. PuttinglogointohighlightFieldswould pushowner_idortype` out of the hoisted strip, and that is the kind of workaround this card says not to use.Other changes
content/docs/sales/quotes{,.zh-Hans,.zh-Hant}.mdx: one sentence naming the line-items panel columns and what Subtotal means.service/knowledge-base.mdxalready says an author can "read the comment they left". That sentence is now true of the panel, so it needs no edit.src/sales/objects/account.object.ts: removed a sentence that citedcrm_article_feedback.commentas a field with no consumer. It is comment-only, and this PR is what made it false. This file is outside the claimed file surface. PR feat(revenue): quotes and contracts follow the account (controlled_by_parent) — #549 #1956 does not touch it; that PR editsaccount.hook.ts..changeset/line-subtotal-and-feedback-comment-reach-their-panels.md.Gates, run on
62a8e93a(the head of this PR)pnpm verify, step by step, under the shared verify lock (VERDICT command-exit 0):validate 0 · typecheck 0 · lint 0 · lint:i18n-gate 0 · hygiene 0 · hygiene:tokens 0 · build 0 · test 0 (172 files, 3687 passed, 1 skipped).
os lintfield-no-consumers: 6 before, 5 after. The warning forcrm_article_feedback.commentis gone. The five left arecrm_account.{incumbent_vendor, annual_purchasing_budget, payment_cycle}(REQ-0003's derived layout, already ruled),crm_forecast.seed_key(#613, kept by design) andcrm_quote_line_item.line_number(#1828). Before this PR, none of the seven rows exceptcommentwas flagged. The rule gives credit for view, form and object-text mentions, and #1831 had already added those for the others.Token ratchet, authored total: revenue ~18,279 to ~18,303 (headroom ~697), service ~21,149 to ~21,164 (headroom ~836). Sales and marketing are unchanged: sales ~99,340 (headroom ~660), marketing ~9,096 (headroom ~904). No ceiling was crossed or raised.
Acceptance notes
850000) next to Sales Price (50,000).Field.formula'sreturnTypeonly acceptsnumber | boolean | date | text, so a currency formula cannot ask to be drawn as currency. This happened before this PR, since Total already had it; the new column shows the same thing. It is listed as a platform finding in the report.crm_quote_line_item.line_numberalso shows on the line item's derived detail page (LINE #), butcrm_opportunity_line_item.line_numberhas no writer, yet the billing hand-off payload ships it on every won deal #1828 owns it.crm_opportunity_line_item.line_numberhas no writer, yet the billing hand-off payload ships it on every won deal #1828 is not addressed here.Generated by Claude Code