You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Detail page renders Field.address values as raw JSON — the display registry has a location formatter but no address one #5075
On a record detail page, a Field.address value renders as a stringified JSON object instead of a formatted address. The create/edit dialog renders the same field correctly as Street / City / State / ZIP / Country inputs, so this is specific to the detail page's read renderer.
Decisive evidence — same record, same field group
field
type
detail page (read)
billing_address
Field.address
❌ {"street":"中策路 1 号","city":"杭州",…}
office_location
Field.location
✅ 📍 30.2741, 120.1551
Both fields sit in the same contact_info group on the same account record. The detail-page read renderer therefore has a location formatter and lacks an address one, so address falls through to stringifying the object.
This matches the shipped console bundle: the input registry carries both address: and location:; the display registry the detail page uses does not carry address.
The detail page's inline edit mode shows the JSON too.
Reproduce
Declare an address field on any object and give a record a value for it.
Open that record's detail page.
The value renders as raw JSON. Open the create/edit dialog for the same record — it renders correctly.
Scope
Type-level, not object-specific. Confirmed by writing a value to a second object's address field through the API and seeing the same rendering (reverted afterwards).
Why we have no app-side workaround
Changing the field to text destroys the structured value and breaks the flat billing_country projection our territory sharing rules match on — and loses the sub-field inputs that currently work.
A mirrored "display" field puts two addresses on the page that can drift apart.
Authoring detail-page sections changes the value's source, not the renderer that formats it.
So we have recorded it as a known gap rather than papering over it.
Environment
@objectstack/* protocol ^17.0.0-rc.1, console served from @objectstack/console, driver-sql on SQLite, browser locale zh-CN.
Filed from a downstream app (hotcrm-heimao), tracked there as issue #54.
Activity
addressfields as raw JSON — the display registry has alocationformatter but noaddressone #5019os-zhuang commentedon Aug 5, 2026
分诊:关闭为 #5019 的 duplicate——同一缺陷(detail 页 display registry 缺
addressformatter、回退成 stringify JSON),同证据结构、同下游追踪(hotcrm-heimao),#5019 先立(08-03 23:58 vs 本单 08-04 02:20)。本单独有的补充(inline edit 同样显示 JSON、第二对象验证过 type-level 范围)#5019 正文均已等价覆盖。收敛后 #5019 为唯一派发入口,已入pm:queue。本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code