@taylorwong/ichartjs 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.4 - 2026-09-18
4
+
5
+ - Synchronized current Agent documentation, scoped package paths, GitHub fallback instructions, Skill links, Playground links, and release status.
6
+ - Corrected Runtime and Playground version displays to `2.0.4`.
7
+ - Marked the original `2.0.0` release-readiness document as historical and added stronger documentation consistency checks.
8
+
9
+ ## 2.0.3 - 2026-09-17
10
+
11
+ - Completed Iteration 8 acceptance documentation and added the author-only release SOP.
12
+ - Added README and official Skill release guardrails for the scoped npm package and controlled publishing workflow.
13
+
14
+ ## 2.0.2 - 2026-09-17
15
+
16
+ - Fixed Line and Area rendering so `fill: 'none'` does not create an unintended filled area.
17
+
18
+ ## 2.0.1 - 2026-09-17
19
+
20
+ - Added dual-engine raster export, branding signature support, and synchronized documentation and TypeScript declarations.
21
+
3
22
  ## 2.0.0 - 2026-09-16
4
23
 
5
24
  - Added Iteration 9's lightweight visual style system with adaptive modes, semantic presets and palettes, live switching, contrast diagnostics, Agent recommendations, bilingual guidance, and Theme Gallery while retaining version `2.0.0`.
package/README.md CHANGED
@@ -20,9 +20,9 @@ getCapabilities
20
20
 
21
21
  | Need | Entry point |
22
22
  | --- | --- |
23
- | Runtime and Agent planning APIs | `ichartjs` |
24
- | Machine-readable capability manifest | `ichartjs/capabilities.json` |
25
- | Intent and chart recipes | `ichartjs/recipes/*` |
23
+ | Runtime and Agent planning APIs | `@taylorwong/ichartjs` |
24
+ | Machine-readable capability manifest | `@taylorwong/ichartjs/capabilities.json` |
25
+ | Intent and chart recipes | `@taylorwong/ichartjs/recipes/*` |
26
26
  | Agent quickstart | [`docs/agent/quickstart.md`](docs/agent/quickstart.md) |
27
27
  | Chinese quickstart | [`docs/agent/zh-CN/quickstart.md`](docs/agent/zh-CN/quickstart.md) |
28
28
  | Coding Agent integration | [`docs/agent/coding-agent-integration.md`](docs/agent/coding-agent-integration.md) |
@@ -36,7 +36,7 @@ getCapabilities
36
36
  npm install @taylorwong/ichartjs@^2
37
37
  ```
38
38
 
39
- As a fallback for environments without npm access, install directly from GitHub: `npm install github:wanghetommy/ichartjs#v2.0.1`.
39
+ As a fallback for environments without npm access, install directly from GitHub: `npm install github:wanghetommy/ichartjs#v2.0.4`.
40
40
 
41
41
  ### Optional Agent Skill
42
42
 
@@ -52,7 +52,7 @@ From a repository checkout, install it into Codex with:
52
52
  cp -R skills/ichartjs "${CODEX_HOME:-$HOME/.codex}/skills/"
53
53
  ```
54
54
 
55
- WorkBuddy users can import or register the same `skills/ichartjs` folder through the host's Skill interface. Package consumers can copy it from `node_modules/ichartjs/skills/ichartjs` into their Agent host's Skill directory. After installation, invoke it as `$ichartjs` when the host supports named Skill invocation, or select the `ichartjs` Skill in the host UI.
55
+ WorkBuddy users can import or register the same `skills/ichartjs` folder through the host's Skill interface. Package consumers can copy it from `node_modules/@taylorwong/ichartjs/skills/ichartjs` into their Agent host's Skill directory. After installation, invoke it as `$ichartjs` when the host supports named Skill invocation, or select the `ichartjs` Skill in the host UI.
56
56
 
57
57
  ### Agent workflow
58
58
 
@@ -140,9 +140,14 @@ npm run playground
140
140
  - Playground Home: `http://localhost:3000/playground/index.html`
141
141
  - Agent Workbench: `http://localhost:3000/playground/agent-workbench.html`
142
142
  - Complete Gallery: `http://localhost:3000/playground/project-gallery.html`
143
+ - Foundational Gallery: `http://localhost:3000/playground/foundational-gallery.html`
143
144
  - Theme Gallery: `http://localhost:3000/playground/theme-gallery.html`
145
+ - Business Editing: `http://localhost:3000/playground/editing.html`
144
146
  - Project Intelligence: `http://localhost:3000/playground/project-intelligence.html`
145
147
  - Diagram Editor: `http://localhost:3000/playground/diagram-editor.html`
148
+ - Interaction Lab: `http://localhost:3000/playground/interaction-lab.html`
149
+ - Accessibility Lab: `http://localhost:3000/playground/accessibility-lab.html`
150
+ - Performance Lab: `http://localhost:3000/playground/performance-lab.html`
146
151
 
147
152
  ## For Developers
148
153
 
@@ -184,11 +189,24 @@ The public package includes ESM exports, TypeScript declarations, Agent document
184
189
 
185
190
  ## Development
186
191
 
192
+ Checks + playground (for all contributors):
193
+
187
194
  ```bash
188
195
  npm run agent:check
189
196
  npm run playground
190
197
  ```
191
198
 
199
+ ### Release (AUTHOR ONLY)
200
+
201
+ Publishing to npm (`@taylorwong/ichartjs`) and merging `develop → master` are restricted to the package author (GitHub + npm account `taylorwong`) due to 2FA and access control.
202
+
203
+ Contributors should:
204
+ 1. Open PRs / commit only to `develop`
205
+ 2. Ensure `npm run agent:check` and `npm test` are green
206
+
207
+ Full author-only release SOP (preconditions, release sequence, must-not rules, and rollback procedure):
208
+ 👉 [`docs/agent/development/release-sop.md`](docs/agent/development/release-sop.md)
209
+
192
210
  Start with [`docs/agent/quickstart.md`](docs/agent/quickstart.md). Detailed runtime, charting, project, diagram, and editing contracts live in [`docs/agent/`](docs/agent/).
193
211
 
194
212
  Contribution requirements are in [`CONTRIBUTING.md`](CONTRIBUTING.md). Report vulnerabilities privately according to [`SECURITY.md`](SECURITY.md).
@@ -21,7 +21,7 @@ This is the user-facing Agent entry point for iChart.js 2.0. Read this file firs
21
21
  - [Editing Contract](editing-contract.md): schemas, commands, preview, commit, and undo/redo.
22
22
  - Machine-readable capability manifests are in `docs/manifests/` and should be loaded on demand.
23
23
 
24
- The 2.0 API is Spec-first. Import from `ichartjs`, inspect data, plan a chart, create a JSON-friendly Spec, validate it, render it, and self-check the explanation and runtime state.
24
+ The 2.0 API is Spec-first. Import from `@taylorwong/ichartjs`, inspect data, plan a chart, create a JSON-friendly Spec, validate it, render it, and self-check the explanation and runtime state.
25
25
 
26
26
  ## Recommended flow
27
27
 
@@ -4,7 +4,7 @@ Use this guide with Codex, WorkBuddy, and similar Agents that can read a reposit
4
4
 
5
5
  ## Responsibility Boundary
6
6
 
7
- iChart.js is a JavaScript UI component library. The coding Agent writes or updates the host application and calls the public `ichartjs` ESM API. The optional Skill provides workflow guidance only; it does not introduce a second runtime or service.
7
+ iChart.js is a JavaScript UI component library. The coding Agent writes or updates the host application and calls the public `@taylorwong/ichartjs` ESM API. The optional Skill provides workflow guidance only; it does not introduce a second runtime or service.
8
8
 
9
9
  Do not add a CLI, MCP server, HTTP API, or Python adapter to complete an ordinary charting task.
10
10
 
@@ -16,7 +16,7 @@ Inside a consumer project:
16
16
  npm install @taylorwong/ichartjs@^2
17
17
  ```
18
18
 
19
- Do not install the unscoped npm registry package named `ichartjs`; it is currently an npm security holding package. Use the GitHub source until the project publishes under a confirmed npm scope.
19
+ Do not install the unscoped npm registry package named `ichartjs`; it is an npm security holding package and is not this project. The published package is `@taylorwong/ichartjs`.
20
20
 
21
21
  Inside this repository:
22
22
 
@@ -46,7 +46,7 @@ If the host supports named Skill invocation, the request may start with `Use $ic
46
46
  ## Required Workflow
47
47
 
48
48
  1. Inspect existing application structure and local instructions.
49
- 2. Import public APIs from `ichartjs`.
49
+ 2. Import public APIs from `@taylorwong/ichartjs`.
50
50
  3. Call `getCapabilities()`, `inspectData()`, and `planChart()`.
51
51
  4. Stop or ask for input when required fields are missing.
52
52
  5. Build a JSON-friendly Spec and call `validateSpec()`.
@@ -80,7 +80,7 @@ Use `examples/agent-workflow.mjs` for the full executable lifecycle.
80
80
 
81
81
  ## Acceptance
82
82
 
83
- - The application imports only `ichartjs`, not source internals.
83
+ - The application imports only `@taylorwong/ichartjs`, not source internals.
84
84
  - The chosen chart exists in capabilities.
85
85
  - Validation passes before rendering.
86
86
  - Warnings and assumptions remain visible.
@@ -1,5 +1,7 @@
1
1
  # iChart.js 2.0 Final Release Readiness
2
2
 
3
+ > Historical record. This document describes the original `2.0.0` source-release decision and is superseded by the published `2.0.x` release line. Use `release-sop.md` for current releases.
4
+
3
5
  Date: 2026-09-16
4
6
 
5
7
  ## Decision
@@ -6,7 +6,7 @@ Turn the existing chart catalog into a dependable, commonly complete, and Agent-
6
6
 
7
7
  ## Current Delivery
8
8
 
9
- Iteration 8A–8D is complete. The runtime exposes per-chart capability profiles, deterministic Agent planning and explanation, richer data inspection and diagnostics, common chart presentation behavior, corrected chart geometry, dedicated interaction/accessibility/performance labs, and a maintained full Gallery. Automated, Chromium, Firefox, WebKit, native Safari, 390 px responsive, lifecycle, and local performance acceptance passed. Physical iOS/Android checks remain a recorded host/device follow-up. See `docs/agent/development/iteration-8-acceptance.md`.
9
+ Iteration 8A–8D is complete. The runtime exposes per-chart capability profiles, deterministic Agent planning and explanation, richer data inspection and diagnostics, common chart presentation behavior, corrected chart geometry, dedicated interaction/accessibility/performance labs, and a maintained full Gallery. Automated, Chromium, Firefox, WebKit, native Safari, 390 px responsive, lifecycle, and local performance acceptance passed. Physical iOS/Android checks remain a recorded host/device follow-up. Acceptance record is captured below in **§ Acceptance Record**.
10
10
 
11
11
  ## Scope Policy
12
12
 
@@ -114,3 +114,57 @@ Iteration 8A–8D is complete. The runtime exposes per-chart capability profiles
114
114
  ## Completion Definition
115
115
 
116
116
  Iteration 8 is complete when all existing chart types provide their applicable common features reliably; unsupported behavior is explicitly discoverable; an Agent can select, configure, validate, render, explain, and verify charts without reading source code; SVG and Canvas semantics are consistent; browser, mobile, accessibility, performance, lifecycle, packaging, and preview gates are recorded; and the repository is ready for a final iChart.js 2.0 release decision without adding new chart types.
117
+
118
+ ## Acceptance Record
119
+
120
+ Date: 2026-09-16
121
+
122
+ ### Result
123
+
124
+ Iteration 8A–8D is implemented and accepted for the repository runtime, public Agent contracts, maintained Playground pages, responsive browser viewport, lifecycle checks, and repeatable performance fixtures. Chromium, Firefox 144, WebKit 26, and native Safari 26.6.2 checks pass. Physical iOS/Android checks remain a separately recorded host/device follow-up.
125
+
126
+ ### Automated Evidence
127
+
128
+ - `npm run agent:check`: passed.
129
+ - `git diff --check`: passed.
130
+ - Core tests: 51 passed, 0 failed.
131
+ - Agent documentation check: 16 charts, 24 commands, and 7 schemas.
132
+ - Syntax check: every `src/*.mjs` file passed `node --check`.
133
+ - Node.js 18.20.8, 20.20.2, and 22.22.2: Agent checks and the executable Agent workflow passed.
134
+ - Package-consumer coverage: public ESM imports, capability discovery, planning, validation, explanation, chart creation, lifecycle, and active Playground entry files are covered by the core suite.
135
+
136
+ ### Browser Evidence
137
+
138
+ - Environments: Codex in-app Chromium, Playwright Firefox 144, and Playwright WebKit 26 against `npm run playground` on `127.0.0.1:3000`.
139
+ - Full Gallery: all 16 public chart types rendered; 0 error cards and no uncaught page errors.
140
+ - Renderer switch: all Gallery cases rendered with SVG when forced; default mixed SVG/Canvas cases also passed.
141
+ - Responsive checks: desktop and a true 390 x 844 viewport completed without body overflow.
142
+ - Agent Workbench: `id` remained a stable identifier, `month` was selected as the dimension, validation passed, record IDs were preserved, and the expected missing-value warning remained visible.
143
+ - Interaction Lab: zoom in, zoom out to the full window, pan, reset, selection clearing, keyboard behavior, and Canvas switching passed.
144
+ - Accessibility Lab: Line, Pie, Heatmap, Radar, Gantt, and Flow exposed role, accessible label, focusability, and family-specific semantic output.
145
+ - Regression pages: Foundational Gallery, Project Intelligence, Business Editing, and Diagram Editor loaded with ready states and no uncaught page errors.
146
+ - Lifecycle fixture: 25 create/destroy cycles left 0 chart children and 0 tooltips.
147
+ - Firefox/WebKit matrix: 22/22 desktop and 390 x 844 touch-viewport page scenarios passed after fixing Project Intelligence grid shrink behavior and redundant ResizeObserver rendering.
148
+ - Native Safari 26.6.2: 11/11 desktop and 390 x 844 page scenarios passed without horizontal overflow.
149
+
150
+ ### Performance Sample
151
+
152
+ These are local acceptance samples, not universal device budgets.
153
+
154
+ | Scenario | Renderer | Create | Resize | JSON export |
155
+ | --- | --- | ---: | ---: | ---: |
156
+ | Line, 100 rows | Canvas | 1.7 ms | 0.6 ms | 0.1 ms |
157
+ | Line, 1,000 rows | Canvas | 6.3 ms | 4.9 ms | 0.3 ms |
158
+ | Line, 5,000 rows, Firefox | Canvas | 110 ms | 96 ms | 3 ms |
159
+ | Line, 5,000 rows, WebKit | Canvas | 81 ms | 75 ms | 2 ms |
160
+ | Heatmap, 5,000 rows, Firefox | Canvas | 19 ms | 15 ms | 2 ms |
161
+ | Heatmap, 5,000 rows, WebKit | Canvas | 15 ms | 10 ms | 2 ms |
162
+
163
+ The Performance Lab also includes repeatable 5,000-row Line, Heatmap, Gantt, and Diagram scenarios for release-host measurements.
164
+
165
+ ### Post-release Host/Device Follow-up
166
+
167
+ - Physical-device touch acceptance on iOS and Android.
168
+ - Release-host performance budgets across representative low-end and high-end devices.
169
+
170
+ These checks remain important integration evidence, but the three-engine browser matrix, native Safari run, responsive touch viewport, and deterministic local performance fixtures are sufficient for the 2.0 source release.
@@ -0,0 +1,73 @@
1
+ # Release SOP — @taylorwong/ichartjs (AUTHOR ONLY)
2
+
3
+ > **Scope / Permissions:** Release actions (npm publish + develop→master merge + git tag push)
4
+ > are **exclusively for the package author**. Requires:
5
+ > - GitHub write access to `wanghetommy/ichartjs` (master + develop + tags)
6
+ > - npm login session as `taylorwong` (2FA or PAT with bypass-2fa enabled)
7
+ > - No contributor / secondary account should run these steps.
8
+ >
9
+ > **Agent Policy:** An Agent MUST NOT initiate any step in this SOP on its own.
10
+ > It MAY execute the sequence **only when explicitly instructed** by the author
11
+ > (e.g. "publish v2.0.4", "commit and release patch", or equivalent intent).
12
+
13
+ ## 0. Preconditions (MUST ALL be green)
14
+
15
+ 0. `git status -sb` → on `develop`, working tree clean
16
+ 1. `npm run check` → exit 0
17
+ 2. `npm test` → exit 0 (60/60)
18
+ 3. `npm run docs:check` → exit 0
19
+ 4. `npm run agent:check` → exit 0
20
+ 5. `npm whoami` → output = `taylorwong`
21
+ 6. `npm config get registry` → output = `https://registry.npmjs.org/`
22
+
23
+ ## 1. Develop bump & commit
24
+
25
+ 7. Edit `package.json` version → semver:
26
+ - **patch** (x.y.Z): pure bug fix w/o API change
27
+ - **minor** (x.Y.0): backward-compatible new feature(s)
28
+ - **major** (X.0.0): breaking API change
29
+ 8. `git add -A`
30
+ 9. `git commit -m "<prefix>: <one short English sentence>"`
31
+ - allowed `<prefix>`: `fix | feat | chore | docs | refactor | perf | test`
32
+ - ❌ no Chinese, ❌ no multi-line body, ❌ no long run-on sentences
33
+
34
+ ## 2. Tag + push develop
35
+
36
+ 10. `git tag vX.Y.Z` matching `package.json#version` exactly
37
+ 11. `git push origin develop --tags`
38
+
39
+ ## 3. NPM publish
40
+
41
+ 12. `npm publish` (package.json already declares `publishConfig.access=public` + npmjs registry)
42
+ - If 2FA challenged: `npm publish --otp=<6-digit OTP or PAT>`
43
+ - Successful stdout MUST include: `+ @taylorwong/ichartjs@X.Y.Z`
44
+ 13. Verify availability (CDN may take 1–2 min; failure to query immediately is OK as long as publish exited 0):
45
+ ```bash
46
+ npm view @taylorwong/ichartjs versions --json # should include X.Y.Z within ~2 min
47
+ curl -sfI https://unpkg.com/@taylorwong/ichartjs@X.Y.Z/src/index.mjs # HTTP 200
48
+ ```
49
+
50
+ ## 4. Merge develop → master
51
+
52
+ 14. `git checkout master && git pull --rebase origin master`
53
+ 15. `git merge --no-ff develop -m "Merge develop into master (vX.Y.Z: <one short English summary>)"`
54
+ - MUST use `--no-ff` so release rollback can target a single merge commit
55
+ 16. `git push origin master`
56
+
57
+ ## 5. Final state
58
+
59
+ 17. `git status -sb` → `## master...origin/master` clean, no ahead/behind
60
+ 18. `git branch -a` → `master` and `develop` both present; if desired, `git checkout develop` to resume default branch
61
+
62
+ ## MUST NOT
63
+
64
+ - ❌ Never publish **before** pushing tag / develop commit (npm version is immutable)
65
+ - ❌ Never use `git merge --ff-only develop` into `master` (lose merge commit)
66
+ - ❌ Never commit release with Chinese text, emoji, or commit message body > 1 line
67
+ - ❌ Never initiate publishing without the author's explicit instruction (Agent rule)
68
+
69
+ ## Rollback (if required)
70
+
71
+ - Within 72h of publish: `npm unpublish @taylorwong/ichartjs@X.Y.Z` (follow npm ToS)
72
+ - After 72h: `npm deprecate @taylorwong/ichartjs@X.Y.Z "message"` and release next patch
73
+ - Git: `git revert <merge-commit-hash>` on master, then push; **do not force-push master**
@@ -1,6 +1,6 @@
1
1
  # iChart.js 2.0 Roadmap
2
2
 
3
- > Roadmap baseline: 2026-09-14. Geographic charts and 3D rendering remain out of scope until explicitly reintroduced.
3
+ > Roadmap baseline: 2026-09-14. Current release status: `v2.0.3` is published and `v2.0.4` is the documentation/version-consistency patch release. Geographic charts and 3D rendering remain out of scope until explicitly reintroduced.
4
4
 
5
5
  ## Current Status
6
6
 
@@ -11,8 +11,8 @@
11
11
  - Iteration 6 project intelligence local runtime and browser acceptance are complete.
12
12
  - Iteration 7 local runtime and browser acceptance are complete for foundational composition, Heatmap, and Radar; physical-device checks remain host integration evidence.
13
13
  - Iteration 8A–8D is complete and accepted in automated tests, Chromium, Firefox 144, WebKit 26, native Safari 26.6.2, and a 390 px touch viewport. Physical iOS/Android and representative release-host measurements remain post-release host/device follow-up. No new public chart type was introduced.
14
- - Iteration 9A–9D implements the lightweight visual style system, adaptive theme planning, runtime switching, renderer integration, and bilingual Agent guidance without adding a chart type or changing version `2.0.0`.
15
- - Final `2.0.0` readiness is tracked in `docs/agent/development/2.0-release-readiness.md`; strict TypeScript, Node.js 18/20/22, GitHub Actions, package-consumer, browser, performance, and lifecycle checks pass. Only the final commit, `master` cutover, tag, and GitHub Release remain. npm publication is tracked separately.
14
+ - Iteration 9A–9D implemented the lightweight visual style system, adaptive theme planning, runtime switching, renderer integration, and bilingual Agent guidance without adding a chart type; these capabilities remain in the `2.0.x` line.
15
+ - The original `2.0.0` readiness record is historical and superseded by the published `2.0.x` releases. Current release checks are defined by `docs/agent/development/release-sop.md`.
16
16
 
17
17
  ## Iteration 4 — Agent Data Contract and Business Editing
18
18
 
@@ -8,7 +8,7 @@ Use iChart.js as an ordinary JavaScript UI component inside a browser applicatio
8
8
  npm install @taylorwong/ichartjs@^2
9
9
  ```
10
10
 
11
- For environments without npm registry access, install from GitHub as a fallback: `npm install github:wanghetommy/ichartjs#v2.0.1`.
11
+ For environments without npm registry access, install from GitHub as a fallback: `npm install github:wanghetommy/ichartjs#v2.0.4`.
12
12
 
13
13
  Use the package through a bundler or another environment that resolves npm ESM imports:
14
14
 
@@ -15,14 +15,14 @@ import {
15
15
  } from '@taylorwong/ichartjs';
16
16
  ```
17
17
 
18
- Agents and developers use the same `ichartjs` ESM entry. Agent behavior comes from the public planning APIs and optional Skill, not from a second runtime.
18
+ Agents and developers use the same `@taylorwong/ichartjs` ESM entry. Agent behavior comes from the public planning APIs and optional Skill, not from a second runtime.
19
19
 
20
20
  Additional package resources:
21
21
 
22
- - `ichartjs/capabilities.json`: machine-readable catalog, including per-chart exports, branding, and interaction declarations.
23
- - `ichartjs/recipes/foundational-analysis`: foundational chart recipes.
24
- - `ichartjs/recipes/project-management`: project intelligence recipes.
25
- - `ichartjs/recipes/diagrams/workflow`: diagram editing recipe.
22
+ - `@taylorwong/ichartjs/capabilities.json`: machine-readable catalog, including per-chart exports, branding, and interaction declarations.
23
+ - `@taylorwong/ichartjs/recipes/foundational-analysis`: foundational chart recipes.
24
+ - `@taylorwong/ichartjs/recipes/project-management`: project intelligence recipes.
25
+ - `@taylorwong/ichartjs/recipes/diagrams/workflow`: diagram editing recipe.
26
26
  - `skills/ichartjs/SKILL.md`: optional workflow adapter for Codex, WorkBuddy, and other Agent Skills-compatible hosts.
27
27
 
28
28
  The Skill is not the runtime. Install or register it only when the Agent host supports Skills; it must still call the package's public APIs and capability contract.
@@ -14,7 +14,7 @@ iChart.js 是 JavaScript UI 图表组件库。编码 Agent 负责修改宿主前
14
14
  npm install @taylorwong/ichartjs@^2
15
15
  ```
16
16
 
17
- npm Registry 中无作用域的 `ichartjs` 当前是安全占位包,并非本项目。正式 npm scope 确认前请从 GitHub 安装。
17
+ npm Registry 中无作用域的 `ichartjs` 是安全占位包,并非本项目。正式包名是 `@taylorwong/ichartjs`,优先从 npm 安装。
18
18
 
19
19
  Codex、WorkBuddy 和其他兼容 Agent Skills 的宿主可共同使用 `skills/ichartjs`。从仓库检出目录安装到 Codex:
20
20
 
@@ -9,13 +9,13 @@
9
9
 
10
10
  ## 当前能力
11
11
 
12
- 已支持节点、边、泳道、Group、Port、四种布局、三种路由、节点拖动、多选、对齐、网格吸附、键盘移动和 Undo/Redo。
12
+ 已支持节点、边、泳道、Group、Port、四种布局、三种路由、节点拖动、多选、对齐、网格吸附、键盘移动、Copy/Paste、Group 折叠展开、Port 键盘连线和 Undo/Redo。
13
13
 
14
14
  当前限制:
15
15
 
16
16
  - Group 只支持平级 Group,不支持嵌套。
17
- - Port 可显示并参与路由,但 Port 拖拽连线尚未完成。
18
- - Copy/Paste 和 Group 折叠展开尚未完成。
17
+ - Group bounds 由成员几何和 `group.padding` 推导;`resizeGroup` 会缩放成员位置和尺寸,不持久化第二个 Group 矩形。
18
+ - Canvas 提供基础无障碍文本,SVG 提供更丰富的 Diagram 语义。
19
19
 
20
20
  ## Agent 流程
21
21
 
@@ -6,7 +6,7 @@ iChart.js 应作为普通 JavaScript UI 组件运行在浏览器应用中。数
6
6
  npm install @taylorwong/ichartjs@^2
7
7
  ```
8
8
 
9
- 无法访问 npm Registry 的环境请用 GitHub 源作为后备:`npm install github:wanghetommy/ichartjs#v2.0.1`。
9
+ 无法访问 npm Registry 的环境请用 GitHub 源作为后备:`npm install github:wanghetommy/ichartjs#v2.0.4`。
10
10
 
11
11
  ```js
12
12
  import { createChart } from '@taylorwong/ichartjs';
@@ -15,9 +15,9 @@ import {
15
15
  } from '@taylorwong/ichartjs';
16
16
  ```
17
17
 
18
- - `ichartjs`:统一的 Agent 规划与 Runtime API。
19
- - `ichartjs/capabilities.json`:机器可读能力清单,包含逐图表导出、署名和交互声明。
20
- - `ichartjs/recipes/*`:基础分析、项目管理和 Diagram Recipes。
18
+ - `@taylorwong/ichartjs`:统一的 Agent 规划与 Runtime API。
19
+ - `@taylorwong/ichartjs/capabilities.json`:机器可读能力清单,包含逐图表导出、署名和交互声明。
20
+ - `@taylorwong/ichartjs/recipes/*`:基础分析、项目管理和 Diagram Recipes。
21
21
  - `skills/ichartjs/SKILL.md`:适用于 Codex、WorkBuddy 等 Agent Skills 兼容宿主的可选编排层。
22
22
 
23
23
  Agent 与开发者使用同一个 ESM 入口。编码 Agent 的完整方式见 [编码 Agent 集成](coding-agent-integration.md),普通应用集成见 [前端项目集成](frontend-integration.md)。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taylorwong/ichartjs",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "description": "Agent-first, renderer-independent charting and project visualization runtime",
5
5
  "type": "module",
6
6
  "main": "./src/index.mjs",
@@ -35,7 +35,7 @@ Do not install the unscoped npm registry package named `ichartjs`; it is current
35
35
  10. Provide an exact preview URL or artifact path and report assumptions, warnings, and deferred checks.
36
36
  11. Prefer `theme: { mode: 'auto', preset, palette }`; preserve explicit user style choices and use `chart.setTheme()` for live switching.
37
37
 
38
- Use `ichartjs` for package imports. Use `examples/agent-workflow.mjs` as the executable baseline when working in the repository.
38
+ Use `@taylorwong/ichartjs` for package imports. Use `examples/agent-workflow.mjs` as the executable baseline when working in the repository.
39
39
 
40
40
  ## Task Routing
41
41
 
@@ -44,6 +44,7 @@ Use `ichartjs` for package imports. Use `examples/agent-workflow.mjs` as the exe
44
44
  - For Flow or Swimlane, preserve node, edge, lane, group, and port IDs; use diagram recipes and validated edit commands.
45
45
  - For business edits, preview first, preserve the preview ID and revision, require confirmation when declared, then commit or reject atomically.
46
46
  - For browser deliverables, start `npm run playground` and return the exact maintained Playground URL.
47
+ - Release workflow (npm publish + develop→master merge) is **AUTHOR ONLY**. Read the release SOP in [`docs/agent/development/release-sop.md`](../../docs/agent/development/release-sop.md). Never initiate any release step unless the author explicitly instructs.
47
48
 
48
49
  ## Guardrails
49
50
 
package/src/index.mjs CHANGED
@@ -559,4 +559,4 @@ export { normalizeProjectCalendar, applyWorkingCalendar, normalizeDependencies,
559
559
  export { normalizeLinkedFilters, normalizeLinkedSelection, filterProjectRows, createLinkedProjectState, linkedRecordId };
560
560
 
561
561
  export { contrastRatio, planStyle, resolveTheme, styleCapabilities, themeModes, themePalettes, themePresets, validateThemeContrast, annotationPlugin, dataZoomPlugin, dataLabelsPlugin, accessibilityPlugin };
562
- export const iChart = { version: '2.0.0', createChart, inspectData, normalizeData, binData, applyTransforms, normalizeSpec, validateSpec, data, getCapabilities, getChartCapability, planChart, recommend, explainChart, contrastRatio, planStyle, resolveTheme, styleCapabilities, themeModes, themePalettes, themePresets, validateThemeContrast, annotationPlugin, dataZoomPlugin, dataLabelsPlugin, accessibilityPlugin, getBusinessSchema, inspectDataSchema, validateData, getEditCapabilities, validateEdit, previewEdit, commitPreview, validateRecipe, normalizeProjectCalendar, applyWorkingCalendar, normalizeDependencies, analyzeSchedule, analyzeBurndownSeries, analyzeCapacity, buildCapacityView, buildCumulativeFlowSeries, buildVelocitySeries, buildReleaseForecast, buildRiskMatrixSeries, buildIssueAgingSeries, normalizeLinkedFilters, normalizeLinkedSelection, filterProjectRows, createLinkedProjectState, linkedRecordId };
562
+ export const iChart = { version: '2.0.4', createChart, inspectData, normalizeData, binData, applyTransforms, normalizeSpec, validateSpec, data, getCapabilities, getChartCapability, planChart, recommend, explainChart, contrastRatio, planStyle, resolveTheme, styleCapabilities, themeModes, themePalettes, themePresets, validateThemeContrast, annotationPlugin, dataZoomPlugin, dataLabelsPlugin, accessibilityPlugin, getBusinessSchema, inspectDataSchema, validateData, getEditCapabilities, validateEdit, previewEdit, commitPreview, validateRecipe, normalizeProjectCalendar, applyWorkingCalendar, normalizeDependencies, analyzeSchedule, analyzeBurndownSeries, analyzeCapacity, buildCapacityView, buildCumulativeFlowSeries, buildVelocitySeries, buildReleaseForecast, buildRiskMatrixSeries, buildIssueAgingSeries, normalizeLinkedFilters, normalizeLinkedSelection, filterProjectRows, createLinkedProjectState, linkedRecordId };
@@ -1,68 +0,0 @@
1
- # Iteration 8 Acceptance Record
2
-
3
- Date: 2026-09-16
4
-
5
- ## Result
6
-
7
- Iteration 8A–8D is implemented and accepted for the repository runtime, public Agent contracts, maintained Playground pages, responsive browser viewport, lifecycle checks, and repeatable performance fixtures. Chromium, Firefox 144, WebKit 26, and native Safari 26.6.2 checks pass. Physical iOS/Android checks remain a separately recorded host/device follow-up.
8
-
9
- ## Automated Evidence
10
-
11
- - `npm run agent:check`: passed.
12
- - `git diff --check`: passed.
13
- - Core tests: 51 passed, 0 failed.
14
- - Agent documentation check: 16 charts, 24 commands, and 7 schemas.
15
- - Syntax check: every `src/*.mjs` file passed `node --check`.
16
- - Node.js 18.20.8, 20.20.2, and 22.22.2: Agent checks and the executable Agent workflow passed.
17
- - Package-consumer coverage: public ESM imports, capability discovery, planning, validation, explanation, chart creation, lifecycle, and active Playground entry files are covered by the core suite.
18
-
19
- ## Browser Evidence
20
-
21
- - Environments: Codex in-app Chromium, Playwright Firefox 144, and Playwright WebKit 26 against `npm run playground` on `127.0.0.1:3000`.
22
- - Full Gallery: all 16 public chart types rendered; 0 error cards and no uncaught page errors.
23
- - Renderer switch: all Gallery cases rendered with SVG when forced; default mixed SVG/Canvas cases also passed.
24
- - Responsive checks: desktop and a true 390 x 844 viewport completed without body overflow.
25
- - Agent Workbench: `id` remained a stable identifier, `month` was selected as the dimension, validation passed, record IDs were preserved, and the expected missing-value warning remained visible.
26
- - Interaction Lab: zoom in, zoom out to the full window, pan, reset, selection clearing, keyboard behavior, and Canvas switching passed.
27
- - Accessibility Lab: Line, Pie, Heatmap, Radar, Gantt, and Flow exposed role, accessible label, focusability, and family-specific semantic output.
28
- - Regression pages: Foundational Gallery, Project Intelligence, Business Editing, and Diagram Editor loaded with ready states and no uncaught page errors.
29
- - Lifecycle fixture: 25 create/destroy cycles left 0 chart children and 0 tooltips.
30
- - Firefox/WebKit matrix: 22/22 desktop and 390 x 844 touch-viewport page scenarios passed after fixing Project Intelligence grid shrink behavior and redundant ResizeObserver rendering.
31
- - Native Safari 26.6.2: 11/11 desktop and 390 x 844 page scenarios passed without horizontal overflow.
32
-
33
- ## Performance Sample
34
-
35
- These are local acceptance samples, not universal device budgets.
36
-
37
- | Scenario | Renderer | Create | Resize | JSON export |
38
- | --- | --- | ---: | ---: | ---: |
39
- | Line, 100 rows | Canvas | 1.7 ms | 0.6 ms | 0.1 ms |
40
- | Line, 1,000 rows | Canvas | 6.3 ms | 4.9 ms | 0.3 ms |
41
- | Line, 5,000 rows, Firefox | Canvas | 110 ms | 96 ms | 3 ms |
42
- | Line, 5,000 rows, WebKit | Canvas | 81 ms | 75 ms | 2 ms |
43
- | Heatmap, 5,000 rows, Firefox | Canvas | 19 ms | 15 ms | 2 ms |
44
- | Heatmap, 5,000 rows, WebKit | Canvas | 15 ms | 10 ms | 2 ms |
45
-
46
- The Performance Lab also includes repeatable 5,000-row Line, Heatmap, Gantt, and Diagram scenarios for release-host measurements.
47
-
48
- ## Preview
49
-
50
- Start the no-cache static server from the repository root:
51
-
52
- ```bash
53
- npm run playground
54
- ```
55
-
56
- - Home: `http://localhost:3000/playground/index.html`
57
- - Full Gallery: `http://localhost:3000/playground/project-gallery.html`
58
- - Agent Workbench: `http://localhost:3000/playground/agent-workbench.html`
59
- - Interaction Lab: `http://localhost:3000/playground/interaction-lab.html`
60
- - Accessibility Lab: `http://localhost:3000/playground/accessibility-lab.html`
61
- - Performance Lab: `http://localhost:3000/playground/performance-lab.html`
62
-
63
- ## Post-release Host/Device Follow-up
64
-
65
- - Physical-device touch acceptance on iOS and Android.
66
- - Release-host performance budgets across representative low-end and high-end devices.
67
-
68
- These checks remain important integration evidence, but the three-engine browser matrix, native Safari run, responsive touch viewport, and deterministic local performance fixtures are sufficient for the 2.0 source release.