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
/import: common spreadsheet cell shapes fail whole rows (dotted / compact dates, option value case, one error per row) #25493
Ruled: 6377844879 · batch #9 item 3a · letter A · 2026-10-24T00:43:45Z (proposals 1, 2, 4; not 3)
Context
Trial import of a simulated messy supplier ledger (hotsrm#10, the kind of sheet a purchasing department keeps in Excel for years). These are the cell shapes that failed rows which a person reads without hesitation. Each failure rejects the whole row, including rows where the bad cell is an optional field.
Cell
Field type
Result
Expected
2011.07.01
date
invalid_date
2011-07-01 (YYYY.MM.DD is the most common Chinese written date form)
20090615
date
invalid_date
2009-06-15 (8-digit compact date, common in ERP exports)
2005/3/8
date
accepted ✓
—
CN
select, option value cn
invalid_option
match option values case-insensitively (labels already are)
中国大陆 / 物流
select (labels 中国 / 物流商)
invalid_option
fine to refuse, but there is no way to declare synonyms on an option or picklist, so every legacy sheet needs a hand clean-up
And one reporting problem: when a row has several bad cells, only the first coercion error is reported (coerceRow collects all errors, the runner keeps errors[0]). The operator fixes one cell, re-runs, finds the next one. Two to three rounds per row in our trial.
Proposal
Accept YYYY.MM.DD and YYYYMMDD in parseDateCell (unambiguous, year first).
Case-insensitive match on option values.
Optional aliases: string[] on select options / picklist options, used by import coercion only. (not in letter A — a new permanent metadata key waits for a second app; ruling 6377844879)
Report all cell errors of a row (e.g. errors: [{ field, code, message }] next to the existing first-error keys).
Temporary measure in hotsrm
The import guide lists a cleaning checklist (date format, option labels, ISO country labels) to run on the sheet before importing.
Triage: decision-shaped (filing-gate ②: a feature / contract-shape proposal from a real app). Lands in the import cell coercion in the server lane (parseDateCell, option matching, coerceRow / the runner's errors[0]); option aliases would also touch packages/spec. Marked needs-user-decision; not dispatchable until ruled.
Path: records · 把客户的存量数据搬进来 | records-forms.import-transform-matrix (P2) | step ⑥
Type: Feature
Governing text: the import coercion contract in packages/spec (ImportRequestSchema) and the runner's row report.
Prior rulings read: unresolved (not searched with check-prior-rulings.mjs).
Batch note: one of five import / automation proposals from hotsrm's trial import filed on 2026-10-23 (#25475, #25476, #25477, #25481, #25493); the earlier hotsrm platform evaluation is the decision card #25496. They can be ruled as one batch.
Session: session_01AkmasAfXt3cu83xGzkuKhe (objectstack triage, run on the maintainer's request in the project thread)
Closed 2026-10-24T01:40Z. Superseded by #25582 — the same card ("common spreadsheet cell shapes fail whole /import rows"), re-filed as objectstack-fleet[bot] with this body and these labels. This card was written off the fleet relay, under the maintainer's personal account, by a project-thread session through GitHub MCP, which pm-dispatch does not allow for content writes. The thread above stays here for reference; the queue continues on #25582.
Instruction: the maintainer 田騏, in the Objectstack project thread, 2026-10-24T01:19:49Z: 「我看到有一些使用个人账户而不是车队账户提交的issue,应该严格按照 pm-dispatch 的规则处理」
Session: session_018fnREjMeK9XQeHDwkJXKMW
Activity
objectstack-fleet commentedon Oct 23, 2026
Triage: decision-shaped (filing-gate ②: a feature / contract-shape proposal from a real app). Lands in the import cell coercion in the server lane (
parseDateCell, option matching,coerceRow/ the runner'serrors[0]); option aliases would also touchpackages/spec. Markedneeds-user-decision; not dispatchable until ruled.Path: records · 把客户的存量数据搬进来 | records-forms.import-transform-matrix (P2) | step ⑥
Type: Feature
维护者速读
客户多年维护的 Excel 台账里,
2011.07.01、20090615这样的日期,CN这样大小写不同的选项值,都会让整行导入失败;而且一行有多个错只报第一个,要改一个跑一遍。YYYY.MM.DD和YYYYMMDD;选项值大小写不敏感匹配;一行的所有单元格错误都报出来。选项别名不做。aliases(同义词,只给导入用)。推荐 A:三项都是无歧义的放宽和更完整的报错,不新增元数据键;别名是新契约面,等第二个应用要时再议。问:A / B / C?
os-decision-facets
aliases;C 零新增。Governing text: the import coercion contract in
packages/spec(ImportRequestSchema) and the runner's row report.Prior rulings read: unresolved (not searched with check-prior-rulings.mjs).
Batch note: one of five import / automation proposals from hotsrm's trial import filed on 2026-10-23 (#25475, #25476, #25477, #25481, #25493); the earlier hotsrm platform evaluation is the decision card #25496. They can be ruled as one batch.
Session:
session_01AkmasAfXt3cu83xGzkuKhe(objectstack triage, run on the maintainer's request in the project thread)Generated by Claude Code
os-elon-musk commentedon Oct 24, 2026
Ruling: batch #9 item 3a · letter A · maintainer 「#9 同意」 2026-10-24T00:43:45Z
A =
parseDateCell接受YYYY.MM.DD与YYYYMMDD(年在前、无歧义,不放宽其它形式);选项值大小写不敏感匹配(标签已是);一行所有单元格错误一次报全(报告加errors: [{ field, code, message }],原有第一错字段保留)。不做aliases(B),等第二个应用要。工作量 server S,零元数据键。执行席先复现「一行只报第一个错」的那一行代码再改(总监席未定位到)。标签
needs-user-decision→pm:queue,分级按协议变更口径由分诊定;裁不派。简报:https://claude.ai/artifact/XKBVwFLq2V5nBTNy3enkbz(卡 3)。Generated by Claude Code
objectstack-fleet commentedon Oct 24, 2026
Closed 2026-10-24T01:40Z. Superseded by #25582 — the same card ("common spreadsheet cell shapes fail whole /import rows"), re-filed as
objectstack-fleet[bot]with this body and these labels. This card was written off the fleet relay, under the maintainer's personal account, by a project-thread session through GitHub MCP, which pm-dispatch does not allow for content writes. The thread above stays here for reference; the queue continues on #25582.Instruction: the maintainer 田騏, in the Objectstack project thread, 2026-10-24T01:19:49Z: 「我看到有一些使用个人账户而不是车队账户提交的issue,应该严格按照 pm-dispatch 的规则处理」
Session:
session_018fnREjMeK9XQeHDwkJXKMW