Use string IDs for pipeline detail APIs (JS safe integer)
- posApi: getOrder, getMortgageApplication, getEngagementById, getBooking accept number | string, URL uses String(id) - Detail pages: pass route id (string) to ...
将 POS DSO uid 序列化为 JSON 中的字符串用于 JSON 安全整数
- 零售订单DTO.uid, \ \ \ \ \ \ \ 详情DTO.id/linkId, 抵押贷款AppDTO.uid - 使用@JsonSerialize( using = ToStringSerializer. class)来避免在ID超过2^53时出现精度损失. 1个 - 在从清单中点击订单/业务约定/申请时修...
Apply same null referrer fix to link tracking route
The same bug exists in the link route (q/[slug]) where request.headers.get("referer") returns null for requests without a Referer header, causing silent Zod val...
Restore form controls on settings member tabs - fix flex layout collapse
- TabPanel: keep overflow-y auto for scroll, use overflowX hidden - SettingsView: move scroll to parent Box, motion.div uses display block to size to content - ...
Handle null referrer in pixel tracking route
request.headers.get("referer") returns null when the header is absent (e.g. email clients). The Zod schema uses .optional() which accepts undefined but rejects ...
Restore vertical scrollbar and fix collapsed panes on settings pages
- TabPanel: change overflow from hidden to auto for tab content scrolling - SettingsView: enable overflow-y auto on tab content Box and motion.div - ProfileTab:...
Force light mode - prevent OS/browser dark mode from affecting site
- Add force-light-mode-styles.ts with override rules - Inject override in DynamicMetaLoader after external theme CSS loads - Add server-rendered fallback style ...
Null-safe API response handling + shared layout for sub pages
- posApi: add null checks for getOrder, getMortgageApplication, getEngagementById, getBooking, getProduct, getRentalAsset, getRentalRequest, getAgreement, g...
Use relative import for StatsManager to resolve module resolution in build
Pipeline datagrids collapsed, restructure to match leads layout
- SettingsView: tab content container now uses display:flex, overflow:hidden so flex chain passes height to grids (fixes collapsed grids in POS settings) - Pi...
Enable commerce JPA repos for POSController/CommerceService
SecurityService POSController depends on CommerceService which uses engagement, order, intent, etc. repositories. These live in com.kamo.z.shared.commerce.* but...
使用 Uid 代替 Id 处理 Basenity 衍生关系
- 执行命令存储器: findBy Source承诺Id - > findBy Source承诺Uid (承诺使用uid) - 交易仓库:找到ByOrderId - > 找到ByOrderUid(命令使用uid) - 为 Kamo Initializer 服务启动修复 Spring Data JPA 查询创建
Resolve Map type inference in POS controllers for CI compilation
- Use explicit Map<String, Object> in ResponseEntity Map.of() calls - Fixes 'incompatible types: inference variable V has incompatible bounds' when mixing DTO...
数据Loader IO 排除导入并模拟主任务 FK 错误
- 加上缺的java.io. 复制 JavaEnums ToNextJS 的例外导入 - 使用已保存的“主机”,而不是为模拟数据保存“主机” FK 制约性违法行为(指定 by id/指定 to id) - 删除未使用的铅分配 导入类型
稳定连接线物理和鼠标相近性
- 只在鼠标移动后应用鼠标近距离力(避免影响负载行数的0,0) - 使用前用数字.isFinite保护鼠标位置 - 控制点速度达到400,以防止出走的物理学 - 使所有物理点同位素/速度具有安全性:如果NaN/无限重设为目标 - 防止线路在价值爆炸时飞出或断裂
Unify section title underline and grid for lower sections
- Use var(--color-primary) for CRM, E-Mail, Phone section underlines - Use 3-column grid on lg for E-Mail and Phone (3 cards) for consistent layout
New answer field maintains focus while typing
- Added local state for new answer input (newAnswerValue) - Input no longer triggers array update on each keystroke - Answer is added on blur or when pressing E...
Restore task item selection while keeping line clicks
- SVG container back to pointer-events-none (allows clicks to pass through) - Hit area paths use pointer-events: stroke (only the line itself is clickable) - Vi...
Position logo between background color and grid lines
- Removed duplicate backgroundColor from canvas-container - Background color is on scroll container, logo is fixed above it - Grid lines overlay on top of logo ...