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 }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Maintainer ruling (2026-08-17, recorded by PM session session_01DbRmJD3iPhXjKr6vhd4Qkv). The maintainer reviewed the four-card decision-inbox analysis in PM chat and approved its recommendations, verbatim: 「同意」.
Ruled: option (b) for the @object-ui/types half — turn declarationMap off at the source, then shrink files to dist-only.
Rationale on record:
types is a pure-types package built by bare tsc — its .d.ts output is near-isomorphic to its source, so go-to-source degrading to the .d.ts is a cosmetic loss with near-zero pull.
Option (c) inlineSources is refused: it saves nothing and adds a third emitter shape.
Implementation notes for dispatch:
⛔ Never remove src from files while published maps still point at it — the one forbidden state (broken-link maps) stays excluded; the order is: flip declarationMap off (and confirm no other map emission), clean-rebuild, verify dist has zero .map / sourceMappingURL / ../src references, then trim files per finding: @object-ui/data-objectstack 的 files 含 src,38 个测试源码文件随包发布 #4847's four-point checklist with a pack-list before/after comparison.
The check-phantom-dependencies.mjs header paragraph updates in the same PR (the last of the three examples retires).
Claim: PM loop round 1
Session: session_01DbRmJD3iPhXjKr6vhd4Qkv
Branch: claude/issue-4851-types-dist-only
Worktree: objectui-issue-4851
Domain: repo:objectui
File surface: packages/types/tsconfig.json + packages/types/package.json (files array) + the scripts/check-phantom-dependencies.mjs header paragraph (stop on breach; explain in the report)
Container & model: S mechanical, mode:subagent, model: sonnet
Serial constraints cleared: the fields half (#4856 / PR #4861) is no longer in the open-PR list — its script-header serial note resolves by branching from current main (dev verifies the header's current text before editing); in-flight #4003 / #4884 / #4308 are disjoint; no open dev PR touches packages/types (checked this round).
{
"issue": 4851,
"status": "done",
"branch": "claude/issue-4851-types-dist-only",
"pr": "https://github.com/objectstack-ai/objectui/pull/4897",
"premise_still_valid": true,
"summary": "Implemented the @object-ui/types half of the src-in-files finding per the maintainer's option (b) ruling: flipped declarationMap:false in packages/types/tsconfig.json, clean-rebuilt, verified dist has zero .map/.sourceMappingURL/../src references (positive control against the pre-flip build showed 54 of each), then trimmed files to dist-only (matching #4847's shape). Updated the check-phantom-dependencies.mjs header to retire the last of the three originally-recorded packages. npm pack: 203 -> 112 entries, 91 src files leave, dist unchanged.",
"tests": "HEAD 903f47f. pnpm exec vitest run --root . scripts/__tests__/package-files-exist.test.ts: 18/18 passed. pnpm exec vitest run packages/types/ --maxWorkers=2: 36 files / 428 tests passed. node scripts/check-phantom-dependencies.mjs: pass (re-run at HEAD). cd packages/types && npm run type-check (tsc --noEmit + tsconfig.examples.json + tsconfig.test.json): clean. node scripts/check-control-bytes.mjs: pass. node scripts/check-package-self-import.mjs: pass. node scripts/check-changeset-presence.mjs / check-changeset-no-major.mjs: pass (re-run at HEAD). node scripts/check-published-dist-tooling.mjs: not run locally (costs a full monorepo build per objectui#4846, not implicated by this diff, deferred to CI). Positive control: pre-flip clean build showed 54 .d.ts.map files / 54 sourceMappingURL hits / 54 ../src references; post-flip clean build showed 0/0/0.",
"open_questions": [],
"out_of_scope_findings": ["filed as #4896: @object-ui/types exports[\".\"].require points at dist/index.cjs, which its bare-tsc build never emits (confirmed pre-existing on main, scope note that ~22 other packages declare the same require condition but were not individually verified)"]
}
os-dev-report (correction — the previous comment's marker was HTML-escaped by a mistake on my part and did not survive as literal text; this comment supersedes it as the canonical report)
{
"issue": 4851,
"status": "done",
"branch": "claude/issue-4851-types-dist-only",
"pr": "https://github.com/objectstack-ai/objectui/pull/4897",
"premise_still_valid": true,
"summary": "Implemented the @object-ui/types half of the src-in-files finding per the maintainer's option (b) ruling: flipped declarationMap:false in packages/types/tsconfig.json, clean-rebuilt, verified dist has zero .map/.sourceMappingURL/../src references (positive control against the pre-flip build showed 54 of each), then trimmed files to dist-only (matching #4847's shape). Updated the check-phantom-dependencies.mjs header to retire the last of the three originally-recorded packages. npm pack: 203 -> 112 entries, 91 src files leave, dist unchanged.",
"tests": "HEAD 903f47f. pnpm exec vitest run --root . scripts/__tests__/package-files-exist.test.ts: 18/18 passed. pnpm exec vitest run packages/types/ --maxWorkers=2: 36 files / 428 tests passed. node scripts/check-phantom-dependencies.mjs: pass (re-run at HEAD). cd packages/types && npm run type-check (tsc --noEmit + tsconfig.examples.json + tsconfig.test.json): clean. node scripts/check-control-bytes.mjs: pass. node scripts/check-package-self-import.mjs: pass. node scripts/check-changeset-presence.mjs / check-changeset-no-major.mjs: pass (re-run at HEAD). node scripts/check-published-dist-tooling.mjs: not run locally (costs a full monorepo build per objectui#4846, not implicated by this diff, deferred to CI). Positive control: pre-flip clean build showed 54 .d.ts.map files / 54 sourceMappingURL hits / 54 ../src references; post-flip clean build showed 0/0/0.",
"open_questions": [],
"out_of_scope_findings": ["filed as #4896: @object-ui/types exports[\".\"].require points at dist/index.cjs, which its bare-tsc build never emits (confirmed pre-existing on main, scope note that ~22 other packages declare the same require condition but were not individually verified)"]
}
ACCEPT — PR #4897 (reviewer of record: PM session session_01DbRmJD3iPhXjKr6vhd4Qkv; all readings taken on GitHub at head 903f47f, not from the report).
Scope (from changed files, 4): packages/types/tsconfig.json (declarationMap flip), packages/types/package.json (files trim to the finding: @object-ui/data-objectstack 的 files 含 src,38 个测试源码文件随包发布 #4847 shape), scripts/check-phantom-dependencies.mjs (header paragraph — the last of the three recorded examples retires), and a real-frontmatter patch changeset for @object-ui/types (correct: published artifact contents change; not a tests-only diff). Exactly the claimed file surface; no content/docs/releases/, no ADR/skills paths (normal landing path applies); in-flight siblings' files untouched.
Ruling compliance: the mandated order was followed — emission off first, clean rebuild, zero-map verification, only then the files trim. The zero claims carry a positive control (pre-flip baseline: 54 .d.ts.map / 54 sourceMappingURL / 54 ../src; post-flip: 0/0/0), and the pack-list before/after (203 → 112 entries, 91 src files leave, dist payload unchanged) is in the PR body. One premise correction, properly documented rather than glossed: the card said tsconfig.base.json supplies sourceMap: true, but packages/types extends the repo-root tsconfig.json (verified via tsc --showConfig), so the build only ever emitted .d.ts.map — the correction narrows the risk, doesn't change the ruling.
Gates at head 903f47f: Changeset Declaration ✅ · Bump Policy ✅ · Fixed Group ✅ · Control Byte Scan ✅ · Build & E2E ✅ · Build Docs ✅ · Skill Guide Path Check ✅; Lint / Type Check / Test shards 1–4 in progress at review time. Ready-flip + auto-merge happens only after those six report success at this head — a pointed check is armed.
Maintainer ruling (2026-08-17, recorded by PM session session_01NYgmGheCzM6NrHZN436Cxf). The maintainer reviewed the decision-inbox report's six new cards and accepted the recommendations in full, verbatim: 「新进卡六张 同意你的建议」. For this card:
Ruled, two halves:
@object-ui/fields — measure first (clean rebuild; does dist carry .maps, and where do their sources point), then if the shape matches data-objectstack (no maps, or maps carrying their own content), the mechanical finding: @object-ui/data-objectstack 的 files 含 src,38 个测试源码文件随包发布 #4847 treatment: drop src from files, with the pack-list before/after comparison.
@object-ui/types — disable declarationMap and drop src from files. The go-to-source degradation to .d.ts is the accepted cost: shipping the whole source tree (tests included) in every tarball for a niche editor nicety fails the scope-discipline test, and a dangling map (src removed, declarationMap kept) is the one forbidden end-state. inlineSources is rejected (buys no size).
The check-phantom-dependencies.mjs header prose updates in the same batch (third revision, as the card predicted).
Activity
yinlianghui commentedon Aug 16, 2026
【PM 分诊】objectui 分片 PM(session_01GTRjn8xBqp75dk7kFupVRt):本卡两半判定不同,拆开处置 ——
files去src(#4851 的 fields 半)—— 先实测 dist map 形态,同形则照 #4847 机械删,异形停手 #4856 晋级实施(批次 12 补位):条件机械 —— 先干净重建实测 vite-plugin-dts 的 map 形态,同形(无 map / map 自带内容)照 finding: @object-ui/data-objectstack 的 files 含 src,38 个测试源码文件随包发布 #4847 删,异形(map 指回../src)停手回传归入下一条。needs-user-decision:declarationMap: true+ mapsources指../src且无sourcesContent是实测在案的承重 —— 待裁的取舍是「发布的 declaration map 要不要能跳回源码」:(a) 保留src于files(map 的消费者是正当的,今天的状态即答案,关卡即可);(b) 产出侧关declarationMap(瘦身,go-to-source 退化到.d.ts);(c) 开inlineSources(不省体积,仅消除断链风险)。⛔ 只删files里的src留断链 map 不是选项。机制化的门已由 finding: 「已发布 dist 不得含 tooling 产物」今天没有任何门看得见 —— 判据必须是产物级的,而 CI 没有全仓 build #4846 裁定(release 时产物级)覆盖,不在本卡重复。Generated by Claude Code
yinlianghui commentedon Aug 16, 2026
fields 半的 map 读数(本卡说「没有量」的那一项,现已实测)
本卡正文写着「
@object-ui/fields的 emitter 是第三种(vite-plugin-dts),它的 dts 是否产.d.ts.map、产的 map 指哪里,得单独干净重建后实测,本卡没有量」。#4856 量了,读数如下,补进这里以便 types 半取舍时手上是三种 emitter 的完整对照。干净重建
@object-ui/fields(删dist与tsconfig.tsbuildinfo,先建依赖再建本体;build是tsc && vite build && node scripts/build-css.mjs):dist/文件总数.d.ts+index.js+index.cjs+index.css).d.ts.map.js.map.mapsourceMappingURL的文件../src的文件没有 map,所以没有
sources指向、也没有sourcesContent可读 —— 与types的承重形态相反。原因可查而不只是巧合:packages/fields/tsconfig.json继承的是根tsconfig.json,而根tsconfig.json是noEmit: true且不设declarationMap/sourceMap;设这两项的是tsconfig.base.json,它不在 fields 的继承链上(fields 那条注释也说了:tsc在这里只做检查,dist由 vite-plugin-dts 写出)。vite.config.ts也没开build.sourcemap。三种 emitter 的完整对照,补齐本卡的表:
src是否承重@object-ui/data-objectstacktsup(sourcemap: false)@object-ui/fieldstsc && vite build && build-css@object-ui/typestsc(declarationMap: true)sources=["../src/*.ts"]、sourcesContent=falsefields侧的 pack 对照:条目 255 -> 82,unpacked 2265557 -> 841772 B,tarball 629843 -> 252364 B;消失 173(97 个测试 + 76 个实现源码),新增 0,src/以外零条目移动。一个在 fields 上命中、在
data-objectstack上没命中的前置核查项#4847 的前置核查 ③(「全仓与文档是否教过
srcdeep-path」)在 fields 上命中了,但命中的不是 map,也不是 fields 专有问题:三份 skill 指南给消费者的 Tailwind 样板里有@source "../node_modules/@object-ui/fields/src/**/*.tsx";。追下去发现同一段样板对components/layout/react写了同样的三行,而那三个包的files只有dist—— 四条 glob 里三条今天就已经匹配 0 个文件,且那三份文件从不教 #4059 之后的正路style.css。仓内两处维护中的答案(packages/components/README.md:64明确禁止这条@source;CLI scaffold 扫的是node_modules/@object-ui/*/dist/**/*.js)说的正相反。已另立 #4858 记录,PR #4861 未修它。这一条对 types 半也有影响:如果将来 types 的取舍倾向「保留
src以免断链」,那份指南同样不构成保留理由 —— 它对 types 根本没写@source行,types 的真实消费者只有 declaration map 一个。Generated by Claude Code
os-steve commentedon Aug 17, 2026
Maintainer ruling (2026-08-17, recorded by PM session
session_01DbRmJD3iPhXjKr6vhd4Qkv). The maintainer reviewed the four-card decision-inbox analysis in PM chat and approved its recommendations, verbatim: 「同意」.Ruled: option (b) for the
@object-ui/typeshalf — turndeclarationMapoff at the source, then shrinkfilesto dist-only.Rationale on record:
typesis a pure-types package built by baretsc— its.d.tsoutput is near-isomorphic to its source, so go-to-source degrading to the.d.tsis a cosmetic loss with near-zero pull.data-objectstackfinding: @object-ui/data-objectstack 的 files 含 src,38 个测试源码文件随包发布 #4847 / PR chore(data-objectstack): files 不再列 src —— 43 个源码文件(38 个测试)退出发布物 (#4847) #4852,fields[fields]files去src(#4851 的 fields 半)—— 先实测 dist map 形态,同形则照 #4847 机械删,异形停手 #4856 / PR chore(fields): files 不再列 src —— 173 个源码文件(97 个测试)退出发布物 (#4856) #4861), and keeping one per-package exception costs a permanently maintained caveat in thecheck-phantom-dependencies.mjsheader — every special case is a sentence someone maintains forever.inlineSourcesis refused: it saves nothing and adds a third emitter shape.Implementation notes for dispatch:
srcfromfileswhile published maps still point at it — the one forbidden state (broken-link maps) stays excluded; the order is: flipdeclarationMapoff (and confirm no other map emission), clean-rebuild, verifydisthas zero.map/sourceMappingURL/../srcreferences, then trimfilesper finding: @object-ui/data-objectstack 的 files 含 src,38 个测试源码文件随包发布 #4847's four-point checklist with a pack-list before/after comparison.check-phantom-dependencies.mjsheader paragraph updates in the same PR (the last of the three examples retires).files去src(#4851 的 fields 半)—— 先实测 dist map 形态,同形则照 #4847 机械删,异形停手 #4856, fields half, draft) may touch the same script header — serialize behind it or rebase after it lands.Label flipped
needs-user-decision→pm:queuein the same stroke.Generated by Claude Code
os-steve commentedon Aug 17, 2026
Claim: PM loop round 1
Session:
session_01DbRmJD3iPhXjKr6vhd4QkvBranch:
claude/issue-4851-types-dist-onlyWorktree:
objectui-issue-4851Domain:
repo:objectuiFile surface:
packages/types/tsconfig.json+packages/types/package.json(filesarray) + thescripts/check-phantom-dependencies.mjsheader paragraph (stop on breach; explain in the report)Container & model: S mechanical,
mode:subagent,model: sonnetSerial constraints cleared: the fields half (#4856 / PR #4861) is no longer in the open-PR list — its script-header serial note resolves by branching from current main (dev verifies the header's current text before editing); in-flight #4003 / #4884 / #4308 are disjoint; no open dev PR touches
packages/types(checked this round).Generated by Claude Code
fix(types): drop declarationMap and src from published files
os-steve commentedon Aug 17, 2026
<!-- os-dev-report -->
{ "issue": 4851, "status": "done", "branch": "claude/issue-4851-types-dist-only", "pr": "https://github.com/objectstack-ai/objectui/pull/4897", "premise_still_valid": true, "summary": "Implemented the @object-ui/types half of the src-in-files finding per the maintainer's option (b) ruling: flipped declarationMap:false in packages/types/tsconfig.json, clean-rebuilt, verified dist has zero .map/.sourceMappingURL/../src references (positive control against the pre-flip build showed 54 of each), then trimmed files to dist-only (matching #4847's shape). Updated the check-phantom-dependencies.mjs header to retire the last of the three originally-recorded packages. npm pack: 203 -> 112 entries, 91 src files leave, dist unchanged.", "tests": "HEAD 903f47f. pnpm exec vitest run --root . scripts/__tests__/package-files-exist.test.ts: 18/18 passed. pnpm exec vitest run packages/types/ --maxWorkers=2: 36 files / 428 tests passed. node scripts/check-phantom-dependencies.mjs: pass (re-run at HEAD). cd packages/types && npm run type-check (tsc --noEmit + tsconfig.examples.json + tsconfig.test.json): clean. node scripts/check-control-bytes.mjs: pass. node scripts/check-package-self-import.mjs: pass. node scripts/check-changeset-presence.mjs / check-changeset-no-major.mjs: pass (re-run at HEAD). node scripts/check-published-dist-tooling.mjs: not run locally (costs a full monorepo build per objectui#4846, not implicated by this diff, deferred to CI). Positive control: pre-flip clean build showed 54 .d.ts.map files / 54 sourceMappingURL hits / 54 ../src references; post-flip clean build showed 0/0/0.", "open_questions": [], "out_of_scope_findings": ["filed as #4896: @object-ui/types exports[\".\"].require points at dist/index.cjs, which its bare-tsc build never emits (confirmed pre-existing on main, scope note that ~22 other packages declare the same require condition but were not individually verified)"] }Generated by Claude Code
Generated by Claude Code
os-steve commentedon Aug 17, 2026
os-dev-report (correction — the previous comment's marker was HTML-escaped by a mistake on my part and did not survive as literal text; this comment supersedes it as the canonical report)
{ "issue": 4851, "status": "done", "branch": "claude/issue-4851-types-dist-only", "pr": "https://github.com/objectstack-ai/objectui/pull/4897", "premise_still_valid": true, "summary": "Implemented the @object-ui/types half of the src-in-files finding per the maintainer's option (b) ruling: flipped declarationMap:false in packages/types/tsconfig.json, clean-rebuilt, verified dist has zero .map/.sourceMappingURL/../src references (positive control against the pre-flip build showed 54 of each), then trimmed files to dist-only (matching #4847's shape). Updated the check-phantom-dependencies.mjs header to retire the last of the three originally-recorded packages. npm pack: 203 -> 112 entries, 91 src files leave, dist unchanged.", "tests": "HEAD 903f47f. pnpm exec vitest run --root . scripts/__tests__/package-files-exist.test.ts: 18/18 passed. pnpm exec vitest run packages/types/ --maxWorkers=2: 36 files / 428 tests passed. node scripts/check-phantom-dependencies.mjs: pass (re-run at HEAD). cd packages/types && npm run type-check (tsc --noEmit + tsconfig.examples.json + tsconfig.test.json): clean. node scripts/check-control-bytes.mjs: pass. node scripts/check-package-self-import.mjs: pass. node scripts/check-changeset-presence.mjs / check-changeset-no-major.mjs: pass (re-run at HEAD). node scripts/check-published-dist-tooling.mjs: not run locally (costs a full monorepo build per objectui#4846, not implicated by this diff, deferred to CI). Positive control: pre-flip clean build showed 54 .d.ts.map files / 54 sourceMappingURL hits / 54 ../src references; post-flip clean build showed 0/0/0.", "open_questions": [], "out_of_scope_findings": ["filed as #4896: @object-ui/types exports[\".\"].require points at dist/index.cjs, which its bare-tsc build never emits (confirmed pre-existing on main, scope note that ~22 other packages declare the same require condition but were not individually verified)"] }Generated by Claude Code
Generated by Claude Code
os-steve commentedon Aug 17, 2026
ACCEPT — PR #4897 (reviewer of record: PM session
session_01DbRmJD3iPhXjKr6vhd4Qkv; all readings taken on GitHub at head903f47f, not from the report).main, first lineFixes #4851— correct: the fields half already closed via [fields]files去src(#4851 的 fields 半)—— 先实测 dist map 形态,同形则照 #4847 机械删,异形停手 #4856/PR chore(fields): files 不再列 src —— 173 个源码文件(97 个测试)退出发布物 (#4856) #4861, so this types half completes the card and the merge should close it. No closure keywords next to other open card numbers.packages/types/tsconfig.json(declarationMap flip),packages/types/package.json(filestrim to the finding: @object-ui/data-objectstack 的 files 含 src,38 个测试源码文件随包发布 #4847 shape),scripts/check-phantom-dependencies.mjs(header paragraph — the last of the three recorded examples retires), and a real-frontmatter patch changeset for@object-ui/types(correct: published artifact contents change; not a tests-only diff). Exactly the claimed file surface; nocontent/docs/releases/, no ADR/skills paths (normal landing path applies); in-flight siblings' files untouched.filestrim. The zero claims carry a positive control (pre-flip baseline: 54.d.ts.map/ 54sourceMappingURL/ 54../src; post-flip: 0/0/0), and the pack-list before/after (203 → 112 entries, 91srcfiles leave,distpayload unchanged) is in the PR body. One premise correction, properly documented rather than glossed: the card saidtsconfig.base.jsonsuppliessourceMap: true, butpackages/typesextends the repo-roottsconfig.json(verified viatsc --showConfig), so the build only ever emitted.d.ts.map— the correction narrows the risk, doesn't change the ruling.903f47f: Changeset Declaration ✅ · Bump Policy ✅ · Fixed Group ✅ · Control Byte Scan ✅ · Build & E2E ✅ · Build Docs ✅ · Skill Guide Path Check ✅; Lint / Type Check / Test shards 1–4 in progress at review time. Ready-flip + auto-merge happens only after those six reportsuccessat this head — a pointed check is armed.exports["."].require→dist/index.cjsthat a bare-tscbuild never emits; confirmed pre-existing onorigin/main; 22 sibling packages flagged unverified, scoped honestly). Correctly filed unassigned as observation-class; first-touch grading belongs to the triage seat.Generated by Claude Code
os-zhuang commentedon Aug 17, 2026
Maintainer ruling (2026-08-17, recorded by PM session
session_01NYgmGheCzM6NrHZN436Cxf). The maintainer reviewed the decision-inbox report's six new cards and accepted the recommendations in full, verbatim: 「新进卡六张 同意你的建议」. For this card:Ruled, two halves:
@object-ui/fields— measure first (clean rebuild; does dist carry.maps, and where do theirsourcespoint), then if the shape matchesdata-objectstack(no maps, or maps carrying their own content), the mechanical finding: @object-ui/data-objectstack 的 files 含 src,38 个测试源码文件随包发布 #4847 treatment: dropsrcfromfiles, with the pack-list before/after comparison.@object-ui/types— disabledeclarationMapand dropsrcfromfiles. The go-to-source degradation to.d.tsis the accepted cost: shipping the whole source tree (tests included) in every tarball for a niche editor nicety fails the scope-discipline test, and a dangling map (src removed,declarationMapkept) is the one forbidden end-state.inlineSourcesis rejected (buys no size).check-phantom-dependencies.mjsheader prose updates in the same batch (third revision, as the card predicted).First-touch grading completes: label flipped
needs-user-decision→pm:queuein the same stroke.Generated by Claude Code
fix(types): drop declarationMap and src from published files (objects…