Bump version to v0.3.2#115
Conversation
v0.3.2 is a deploy release (not tag-only) because #114 adds a backend ImageModule that requires IMAGE_STORAGE_* env vars at runtime. Plan covers AWS provisioning (wafflebase bucket + IAM user), wafflebase repo bump/tag/release, and devops repo PR. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
📝 WalkthroughWalkthroughAdds a release-runbook for coordinated v0.3.2 deployment (AWS provisioning, wafflebase release workflow, devops/Kubernetes updates) and bumps package versions to 0.3.2 across root and seven workspace packages. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Phase 1 (AWS provisioning) fully complete. Phase 2 complete through PR creation; tag, release, and docker publish still pending PR merge. Notes the flow change from direct-to-main to PR-based landing.
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
docs/tasks/active/20260411-release-v0.3.2-todo.md (1)
68-78: Consider adding the task-archive completion step to the checklist.To keep release-task hygiene consistent, add a final checkbox to run
pnpm tasks:archive && pnpm tasks:indexafter release completion.Based on learnings: “Before marking a task done: (1) Update
docs/design/if architecture changed, (2) Runpnpm verify:fastand confirm pass, (3) Archive withpnpm tasks:archive && pnpm tasks:index”.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/tasks/active/20260411-release-v0.3.2-todo.md` around lines 68 - 78, Add a final checklist item to the release TODO that runs the task-archive step after release completion: append a new unchecked line in the list reading something like "- [ ] Run `pnpm tasks:archive && pnpm tasks:index`" immediately after the confirmation steps (after the "Confirm docker-publish workflow run succeeds" item) so the checklist ensures the repository task archive/indexing commands are executed; reference the existing checklist block in this document and the exact command `pnpm tasks:archive && pnpm tasks:index` when adding the item.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/tasks/active/20260411-release-v0.3.2-todo.md`:
- Around line 1-171: The todo plan file 20260411-release-v0.3.2-todo.md lacks
the required paired lessons artifact; add
docs/tasks/active/20260411-release-v0.3.2-lessons.md alongside it containing a
short post-mortem: summary of what was done, exact commands run (or deviations),
captured AWS/permission gotchas, any failures and their resolutions,
verification results for Phase 2/3 (docker publish, ArgoCD sync, rollout status,
smoke tests), and action items/notes for future releases; ensure the filename
matches the todo slug and include links or references to the commits/tags
(v0.3.2) and the ImageModule/IMAGE_STORAGE_* env var decision.
- Around line 117-127: Replace the indented code block that triggers MD046 with
a fenced code block: locate the markdown segment containing the indented release
notes (the paragraph starting "Bump up Wafflebase to v0.3.2" through "directly
to v0.3.2."), remove the leading-space indentation and wrap the entire block
with triple backticks (use ```text as suggested) so the block becomes a fenced
code block consistent with the linter and the proposed fix.
---
Nitpick comments:
In `@docs/tasks/active/20260411-release-v0.3.2-todo.md`:
- Around line 68-78: Add a final checklist item to the release TODO that runs
the task-archive step after release completion: append a new unchecked line in
the list reading something like "- [ ] Run `pnpm tasks:archive && pnpm
tasks:index`" immediately after the confirmation steps (after the "Confirm
docker-publish workflow run succeeds" item) so the checklist ensures the
repository task archive/indexing commands are executed; reference the existing
checklist block in this document and the exact command `pnpm tasks:archive &&
pnpm tasks:index` when adding the item.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: f1b60201-48f7-4565-b1a7-359d70b26fa0
📒 Files selected for processing (8)
docs/tasks/active/20260411-release-v0.3.2-todo.mdpackage.jsonpackages/backend/package.jsonpackages/cli/package.jsonpackages/docs/package.jsonpackages/documentation/package.jsonpackages/frontend/package.jsonpackages/sheets/package.json
| # Release v0.3.2 — todo | ||
|
|
||
| ## Summary | ||
|
|
||
| Cut **v0.3.2** and promote it to the production k8s cluster. v0.3.2 is | ||
| a **deploy release** (not tag-only) because `#114` adds a new backend | ||
| `ImageModule` backed by S3, which requires `IMAGE_STORAGE_*` env vars | ||
| at runtime or the backend will fail fast on startup in production. | ||
|
|
||
| Scope covers three repos: | ||
|
|
||
| 1. **AWS** — provision `wafflebase` S3 bucket + `wafflebase` IAM user | ||
| with a scoped inline policy in the existing `925728882916` | ||
| (yorkie-team) account, `ap-northeast-2`. | ||
| 2. **wafflebase repo** — bump 7 `package.json`s to `0.3.2`, tag, | ||
| publish GitHub release (auto-builds docker image). | ||
| 3. **devops repo** — bump `k8s/wafflebase/deployment.yaml` from | ||
| `v0.3.0` to `v0.3.2` (v0.3.1 was an intentional tag-only | ||
| checkpoint) and wire the AWS credentials as env vars. | ||
|
|
||
| ## Commits on `origin/main` since `v0.3.1` | ||
|
|
||
| - `#107` Organize design docs into `sheets/` and `docs/` subdirectories | ||
| - `#108` Move peer-cursor-labels to `sheets/` | ||
| - `efc55353` Archive arrow pixel accuracy plan | ||
| - `#109` Add manual page break (Phase 4.2) | ||
| - `#110` Add editable header/footer with page number (Phase 4.1) | ||
| - `#111` Add header/footer-specific toolbar with page number button | ||
| - `#112` Add test coverage reporting with Codecov | ||
| - `#114` Add DOCX import and export for the docs editor | ||
|
|
||
| ## Phase 1 — AWS provisioning | ||
|
|
||
| All commands run via `aws` CLI (identity | ||
| `arn:aws:iam::925728882916:user/hackerwins`). Each destructive step is | ||
| confirmed with the user before execution. | ||
|
|
||
| - [ ] Verify bucket name `wafflebase` is not already taken | ||
| (`aws s3api head-bucket --bucket wafflebase`) | ||
| - [ ] Create S3 bucket `wafflebase` in `ap-northeast-2` | ||
| - [ ] Block all public access on the bucket | ||
| - [ ] Create IAM user `wafflebase` | ||
| - [ ] Attach inline policy `wafflebase-s3` scoped to | ||
| `arn:aws:s3:::wafflebase` / `arn:aws:s3:::wafflebase/*` with | ||
| `s3:ListBucket`, `s3:GetObject`, `s3:PutObject`, `s3:DeleteObject` | ||
| - [ ] Create access key pair for `wafflebase` user, capture | ||
| `AccessKeyId` + `SecretAccessKey` (secret shown once) | ||
| - [ ] Record both values for Phase 3 (do not paste into this file) | ||
|
|
||
| ## Phase 2 — wafflebase repo release | ||
|
|
||
| All git commands run in **`/Users/hackerwins/Development/wafflebase/waffledocs`** | ||
| (main checkout, not the worktree at | ||
| `.claude/worktrees/feature+header-footer`). | ||
|
|
||
| - [ ] `git checkout main && git fetch --all --tags && git pull --ff-only origin main` | ||
| - [ ] Confirm working tree clean and `v0.3.2` tag does not yet exist | ||
| - [ ] Confirm `git log --oneline v0.3.1..HEAD` matches the 8 commits above | ||
| - [ ] Bump version → `0.3.2` in 7 files: | ||
| - [ ] `package.json` (0.3.1 → 0.3.2) | ||
| - [ ] `packages/backend/package.json` (0.3.1 → 0.3.2) | ||
| - [ ] `packages/cli/package.json` (0.3.0 → 0.3.2) | ||
| - [ ] `packages/docs/package.json` (0.3.1 → 0.3.2) | ||
| - [ ] `packages/documentation/package.json` (0.3.0 → 0.3.2) | ||
| - [ ] `packages/frontend/package.json` (0.3.1 → 0.3.2) | ||
| - [ ] `packages/sheets/package.json` (0.3.1 → 0.3.2) | ||
| - [ ] `pnpm install` — include `pnpm-lock.yaml` in the commit if changed | ||
| - [ ] `pnpm verify:fast` passes | ||
| - [ ] Commit: `Bump version to v0.3.2` (subject only, matches v0.3.1 precedent) | ||
| - [ ] `git tag v0.3.2` (lightweight, matches precedent) | ||
| - [ ] `git push origin main && git push origin v0.3.2` | ||
| - [ ] Create GitHub Release via `gh release create v0.3.2` | ||
| (see notes below) — this triggers | ||
| `.github/workflows/docker-publish.yml` which publishes | ||
| `yorkieteam/wafflebase:v0.3.2` and `:latest` for | ||
| `linux/amd64,linux/arm64` | ||
| - [ ] Confirm docker-publish workflow run succeeds on Docker Hub | ||
|
|
||
| ### Release notes draft | ||
|
|
||
| ```markdown | ||
| ## Highlights | ||
|
|
||
| ### Docs (word processor) | ||
| - Editable header/footer with page numbers (Phase 4.1) — double-click | ||
| the margin to edit; `{pageNumber}` inline renders per page (#110, #111) | ||
| - Manual page break (Phase 4.2) — insert explicit page breaks (#109) | ||
| - **DOCX import/export** — open and save `.docx` files including | ||
| inline images, styled runs, tables with cell merge, page setup, | ||
| and headers/footers (#114) | ||
| - Inline image support with S3-backed storage (#114) | ||
|
|
||
| ### Infrastructure | ||
| - Test coverage reporting via Codecov (#112) | ||
| - MinIO in docker-compose for local image dev (#114) | ||
|
|
||
| ### Housekeeping | ||
| - Reorganized design docs into `sheets/` and `docs/` subdirectories | ||
| (#107, #108) | ||
| ``` | ||
|
|
||
| ## Phase 3 — devops repo PR | ||
|
|
||
| All git commands run in `/Users/hackerwins/Development/yorkie-team/devops`. | ||
| Do not start Phase 3 until Phase 2 confirms the docker image is | ||
| published. | ||
|
|
||
| - [ ] `git checkout main && git pull --ff-only origin main` | ||
| - [ ] `git checkout -b bump-wafflebase-v0.3.2` | ||
| - [ ] Edit `k8s/wafflebase/deployment.yaml`: | ||
| - [ ] Replace all 6 occurrences of `0.3.0` / `v0.3.0` with `0.3.2` / `v0.3.2` | ||
| (labels at L10, L14, L26, L27 + image tags at L38, L46) | ||
| - [ ] Append `IMAGE_STORAGE_*` env vars to the main container `env:` | ||
| block (5 entries: endpoint, bucket, region, access key, secret key) | ||
| using inline values (matches existing secret pattern in this file) | ||
| - [ ] Commit: | ||
| ``` | ||
| Bump up Wafflebase to v0.3.2 | ||
|
|
||
| v0.3.2 adds DOCX import/export which adds a backend ImageModule | ||
| backed by S3. The service fails fast in production without the | ||
| IMAGE_STORAGE_* env vars, so provision the `wafflebase` bucket | ||
| in ap-northeast-2 and wire credentials into the deployment. | ||
|
|
||
| v0.3.1 was an intentional tag-only checkpoint (no server | ||
| changes), so this bump jumps from v0.3.0 directly to v0.3.2. | ||
| ``` | ||
| - [ ] `git push -u origin bump-wafflebase-v0.3.2` | ||
| - [ ] Open PR against `yorkie-team/devops#main` and request review | ||
| - [ ] After merge, confirm ArgoCD syncs the `wafflebase` app | ||
| - [ ] `kubectl -n wafflebase rollout status deploy/wafflebase` | ||
| - [ ] `kubectl -n wafflebase logs deploy/wafflebase` — confirm | ||
| `ImageService` init does not warn on `HeadBucket`/`CreateBucket` | ||
| - [ ] Smoke test on https://wafflebase.io: | ||
| - [ ] `/auth/me` still works | ||
| - [ ] Import a `.docx` with inline images via document list | ||
| - [ ] Export a document as `.docx` with inline images | ||
| - [ ] Round-trip a doc through import → export → re-import | ||
|
|
||
| ## Risks | ||
|
|
||
| 1. **Destructive AWS operations.** Bucket + IAM user + policy + access | ||
| key are all irreversible (or require manual cleanup). Confirm | ||
| each `aws` command with the user before running it. | ||
| 2. **Plaintext AWS credentials in git.** Existing `deployment.yaml` | ||
| pattern inlines all secrets (DB password, JWT secret, GitHub OAuth | ||
| secret). We follow the pattern for consistency. Migrating to k8s | ||
| `Secret` resources is out of scope for this release. | ||
| 3. **Image tag jump v0.3.0 → v0.3.2.** Rollback target is v0.3.0, | ||
| not v0.3.1. If rollback is needed, revert the devops commit and | ||
| re-sync ArgoCD; no schema changes require a database rollback. | ||
| 4. **ImageService soft-init failure.** On startup, `HeadBucketCommand` | ||
| failure falls through to `CreateBucketCommand`, and even that | ||
| failure is logged as a warning and the module continues to boot. | ||
| A misconfigured credential will only surface on the first upload | ||
| or retrieval attempt — smoke-test upload/download **must** run | ||
| before declaring the deploy successful. | ||
| 5. **Worktree confusion.** Phase 2 commands must run in the main | ||
| checkout (`/Users/hackerwins/Development/wafflebase/waffledocs`), | ||
| not the `feature+header-footer` worktree (which is stale and | ||
| diverged from `origin/main`). | ||
|
|
||
| ## Out of scope | ||
|
|
||
| - Migrating existing plaintext secrets in `deployment.yaml` to k8s | ||
| `Secret` resources. | ||
| - CloudFront / CDN in front of the image bucket (backend proxies | ||
| reads through `/images/:id`, so direct browser access is not | ||
| needed). | ||
| - CORS configuration on the `wafflebase` bucket (same reason). | ||
| - Cleanup of the stale `feature+header-footer` worktree. |
There was a problem hiding this comment.
Add the paired lessons file for this non-trivial task.
This task plan is substantial, but only the -todo.md file is present. Please add docs/tasks/active/20260411-release-v0.3.2-lessons.md as the paired artifact.
As per coding guidelines: “For non-trivial tasks, use paired files in docs/tasks/active/: YYYYMMDD-<slug>-todo.md and YYYYMMDD-<slug>-lessons.md”.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~73-~73: The official name of this software platform is spelled with a capital “H”.
Context: ... (see notes below) — this triggers .github/workflows/docker-publish.yml which pub...
(GITHUB)
🪛 markdownlint-cli2 (0.22.0)
[warning] 120-120: Code block style
Expected: fenced; Actual: indented
(MD046, code-block-style)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/tasks/active/20260411-release-v0.3.2-todo.md` around lines 1 - 171, The
todo plan file 20260411-release-v0.3.2-todo.md lacks the required paired lessons
artifact; add docs/tasks/active/20260411-release-v0.3.2-lessons.md alongside it
containing a short post-mortem: summary of what was done, exact commands run (or
deviations), captured AWS/permission gotchas, any failures and their
resolutions, verification results for Phase 2/3 (docker publish, ArgoCD sync,
rollout status, smoke tests), and action items/notes for future releases; ensure
the filename matches the todo slug and include links or references to the
commits/tags (v0.3.2) and the ImageModule/IMAGE_STORAGE_* env var decision.
| ``` | ||
| Bump up Wafflebase to v0.3.2 | ||
|
|
||
| v0.3.2 adds DOCX import/export which adds a backend ImageModule | ||
| backed by S3. The service fails fast in production without the | ||
| IMAGE_STORAGE_* env vars, so provision the `wafflebase` bucket | ||
| in ap-northeast-2 and wire credentials into the deployment. | ||
|
|
||
| v0.3.1 was an intentional tag-only checkpoint (no server | ||
| changes), so this bump jumps from v0.3.0 directly to v0.3.2. | ||
| ``` |
There was a problem hiding this comment.
Switch indented block to fenced code block style.
This segment triggers MD046 (code-block-style). Use fenced markdown for consistency/lint cleanliness.
Proposed fix
- [ ] Commit:
- ```
- Bump up Wafflebase to v0.3.2
-
- v0.3.2 adds DOCX import/export which adds a backend ImageModule
- backed by S3. The service fails fast in production without the
- IMAGE_STORAGE_* env vars, so provision the `wafflebase` bucket
- in ap-northeast-2 and wire credentials into the deployment.
-
- v0.3.1 was an intentional tag-only checkpoint (no server
- changes), so this bump jumps from v0.3.0 directly to v0.3.2.
- ```
+ ```text
+ Bump up Wafflebase to v0.3.2
+
+ v0.3.2 adds DOCX import/export which adds a backend ImageModule
+ backed by S3. The service fails fast in production without the
+ IMAGE_STORAGE_* env vars, so provision the `wafflebase` bucket
+ in ap-northeast-2 and wire credentials into the deployment.
+
+ v0.3.1 was an intentional tag-only checkpoint (no server
+ changes), so this bump jumps from v0.3.0 directly to v0.3.2.
+ ```📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ``` | |
| Bump up Wafflebase to v0.3.2 | |
| v0.3.2 adds DOCX import/export which adds a backend ImageModule | |
| backed by S3. The service fails fast in production without the | |
| IMAGE_STORAGE_* env vars, so provision the `wafflebase` bucket | |
| in ap-northeast-2 and wire credentials into the deployment. | |
| v0.3.1 was an intentional tag-only checkpoint (no server | |
| changes), so this bump jumps from v0.3.0 directly to v0.3.2. | |
| ``` |
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)
[warning] 120-120: Code block style
Expected: fenced; Actual: indented
(MD046, code-block-style)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/tasks/active/20260411-release-v0.3.2-todo.md` around lines 117 - 127,
Replace the indented code block that triggers MD046 with a fenced code block:
locate the markdown segment containing the indented release notes (the paragraph
starting "Bump up Wafflebase to v0.3.2" through "directly to v0.3.2."), remove
the leading-space indentation and wrap the entire block with triple backticks
(use ```text as suggested) so the block becomes a fenced code block consistent
with the linter and the proposed fix.
Verification: verify:selfResult: ✅ PASS in 116.0s
Verification: verify:integrationResult: ✅ PASS |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
♻️ Duplicate comments (2)
docs/tasks/active/20260411-release-v0.3.2-todo.md (2)
129-139:⚠️ Potential issue | 🟡 MinorSwitch indented block to fenced code block style.
The indented code block triggers
MD046. Use fenced markdown for consistency and lint compliance.📝 Proposed fix
- [ ] Commit: - ``` - Bump up Wafflebase to v0.3.2 - - v0.3.2 adds DOCX import/export which adds a backend ImageModule - backed by S3. The service fails fast in production without the - IMAGE_STORAGE_* env vars, so provision the `wafflebase` bucket - in ap-northeast-2 and wire credentials into the deployment. - - v0.3.1 was an intentional tag-only checkpoint (no server - changes), so this bump jumps from v0.3.0 directly to v0.3.2. - ``` + ```text + Bump up Wafflebase to v0.3.2 + + v0.3.2 adds DOCX import/export which adds a backend ImageModule + backed by S3. The service fails fast in production without the + IMAGE_STORAGE_* env vars, so provision the `wafflebase` bucket + in ap-northeast-2 and wire credentials into the deployment. + + v0.3.1 was an intentional tag-only checkpoint (no server + changes), so this bump jumps from v0.3.0 directly to v0.3.2. + ```🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/tasks/active/20260411-release-v0.3.2-todo.md` around lines 129 - 139, The indented code block triggers MD046; replace the indented block with a fenced code block (use ```text ... ```), preserving the exact block content and blank lines; update the section that currently contains the indented snippet (the block beginning "Bump up Wafflebase to v0.3.2" and ending with the trailing backticks) to use a fenced code block so linting passes and formatting remains unchanged.
1-183:⚠️ Potential issue | 🟠 MajorAdd the paired lessons file for this non-trivial task.
This substantial release runbook requires a paired
-lessons.mdfile. Please adddocs/tasks/active/20260411-release-v0.3.2-lessons.mdalongside this todo file.As per coding guidelines: "For non-trivial tasks, use paired files in
docs/tasks/active/:YYYYMMDD-<slug>-todo.mdandYYYYMMDD-<slug>-lessons.md".🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/tasks/active/20260411-release-v0.3.2-todo.md` around lines 1 - 183, The todo runbook lacks its required paired lessons file; add docs/tasks/active/20260411-release-v0.3.2-lessons.md next to the existing YYYYMMDD-release-v0.3.2-todo.md and commit it; populate it with a short summary of what happened, key decisions (e.g., S3 bucket/ IAM user creation, inline secrets pattern), notable gotchas (HeadBucket/CreateBucket soft-init behaviour, worktree confusion, plaintext creds risk), links to PR `#115` and devops changes, and any follow-up actions or remediation steps so future operators can learn from this release.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In `@docs/tasks/active/20260411-release-v0.3.2-todo.md`:
- Around line 129-139: The indented code block triggers MD046; replace the
indented block with a fenced code block (use ```text ... ```), preserving the
exact block content and blank lines; update the section that currently contains
the indented snippet (the block beginning "Bump up Wafflebase to v0.3.2" and
ending with the trailing backticks) to use a fenced code block so linting passes
and formatting remains unchanged.
- Around line 1-183: The todo runbook lacks its required paired lessons file;
add docs/tasks/active/20260411-release-v0.3.2-lessons.md next to the existing
YYYYMMDD-release-v0.3.2-todo.md and commit it; populate it with a short summary
of what happened, key decisions (e.g., S3 bucket/ IAM user creation, inline
secrets pattern), notable gotchas (HeadBucket/CreateBucket soft-init behaviour,
worktree confusion, plaintext creds risk), links to PR `#115` and devops changes,
and any follow-up actions or remediation steps so future operators can learn
from this release.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 64f9b42d-7059-4df3-9af9-6f47330b5810
📒 Files selected for processing (1)
docs/tasks/active/20260411-release-v0.3.2-todo.md
The v0.3.2 release is live on production (PR #115, tag v0.3.2, devops PR #278, ArgoCD sync, rollout clean). End-to-end DOCX import/export against `form.docx` works — the new S3-backed image pipeline is verified from upload through proxy render. Browser smoke test surfaced two preexisting DOCX importer bugs that were masked by lack of real-world test input: `w:val="0"` is treated as ON for bold/italic/strikethrough, and `tbl.getElementsByTagNameNS('w:gridCol')` is recursive and leaks nested-table column counts into the outer table. Both are import-only bugs (no server/schema/infra impact), so v0.3.2 is kept as released and the fixes will ship in v0.3.3. Follow-up task file will be added in a separate commit. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
The v0.3.2 release is live on production (PR #115, tag v0.3.2, devops PR #278, ArgoCD sync, rollout clean). End-to-end DOCX import/export against `form.docx` works — the new S3-backed image pipeline is verified from upload through proxy render. Browser smoke test surfaced two preexisting DOCX importer bugs that were masked by lack of real-world test input: `w:val="0"` is treated as ON for bold/italic/strikethrough, and `tbl.getElementsByTagNameNS('w:gridCol')` is recursive and leaks nested-table column counts into the outer table. Both are import-only bugs (no server/schema/infra impact), so v0.3.2 is kept as released and the fixes will ship in v0.3.3. Follow-up task file will be added in a separate commit. Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
Summary
Cut v0.3.2 release. All 7
package.jsons bumped to0.3.2.Also commits the release plan at
docs/tasks/active/20260411-release-v0.3.2-todo.mdcovering AWSprovisioning, this bump, and the follow-up devops repo PR.
Commits since v0.3.1
sheets/anddocs/subdirectories (Organize design docs into sheets/ and docs/ subdirectories #107)sheets/subdirectory (Move peer-cursor-labels to sheets/ subdirectory #108)Deploy notes
v0.3.2 is a deploy release (not tag-only) because #114 adds a
backend
ImageModulethat fails fast in production withoutIMAGE_STORAGE_*env vars. ThewafflebaseS3 bucket and IAM userhave been provisioned in
ap-northeast-2already; the devops repoPR will wire the credentials into
k8s/wafflebase/deployment.yamlafter this PR merges and the docker image is published.
Test plan
pnpm verify:fastpasses locallypnpm verify:selfpasses via pre-push hook (6 lanes, 64.9s)v0.3.2on the merge commit and publishGitHub release (triggers
docker-publish.yml)🤖 Generated with Claude Code
Summary by CodeRabbit