Files
nexu-io__open-design/docs/plans/manual-edit-mode-implementation.md
Joey-nexu f1a0b60c6c chore: unify product name display to OpenDesign repo-wide (#6998)
* chore: unify product name display to OpenDesign repo-wide

Rename the user-facing product name from "Open Design" to "OpenDesign"
across documentation, web/desktop UI strings, i18n locales, prompts,
plugin/skill/design-system content, changelogs, and specs, matching the
landing-page rename already in flight.

Deliberately excluded so installed-app identity stays untouched:
- packages/release PRODUCT_NAME and everything derived from it
  (app bundle names, installer/registry identity, updater feeds)
- tools/pack, tools/release, apps/packaged, landing page (PR #6983)
- mocks/ recorded traces and LICENSE
- test fixtures and comments that encode real on-disk install paths
  (Open Design.app, Program Files\Open Design, AppData paths)

Validated with pnpm guard, pnpm typecheck, and targeted web/desktop/host
test runs over the renamed strings.

* fix(web): keep two-letter author monogram for CamelCase brand names

authorInitials split words on whitespace only, so the renamed single-token
author name "OpenDesign" produced a one-letter monogram. Treat lower-to-upper
CamelCase boundaries as word breaks so the avatar fallback stays "OD".

* fix(release): restore spaced Windows source artifact names in win.ps1

tools/pack still derives builder outputs from the unchanged PRODUCT_NAME
("Open Design"), so the asset script must look for the spaced filenames.
Matches the mac/mac-intel/linux asset scripts, which were already kept on
the original names.

---------

Co-authored-by: Joey <236967869+joeylee12629-star@users.noreply.github.com>
2026-08-18 07:09:45 +00:00

1.9 KiB

Manual Edit Mode Implementation Plan

Source requirement: specs/current/manual-edit-mode-requirements.md.

Base branch: origin/main at 72edd4fc6090a3fda4ed175bd35dca76099a82f2.

Implementation branch: codex/manual-edit-mode.

Goal

Migrate the accepted manual edit-mode prototype into the production OpenDesign web app.

The product boundary is fixed:

  • Edit is manual HTML/CSS editing.
  • Comment remains the AI-assisted scoped edit path.
  • Tweaks is for global/token parameters.
  • Draw is annotation input and does not mutate HTML/CSS in v1.

Implementation Steps

  1. Add apps/web/src/edit-mode/ with typed targets, patches, history, iframe bridge, and source patch helpers.
  2. Integrate manual edit state into the HTML branch of FileViewer.
  3. Enable the existing Edit toolbar button only for HTML/deck-HTML artifacts.
  4. Keep comment mode and edit mode mutually independent; do not send manual edits to chat or daemon agent runs.
  5. Save manual patches through the existing project file write provider, then refresh preview source.
  6. Add the accepted layout: layers rail, canvas-first preview, right edit modal, and changes panel.
  7. Add English i18n keys plus conservative fallback locale entries.
  8. Add focused tests for patch helpers and the main browser smoke path.

Acceptance Criteria

  • Manual edit mode starts from latest origin/main.
  • User can select a preview element or a layer row.
  • Content, style, attributes, selected HTML, and full source edits are source-backed.
  • Undo and redo work during the session.
  • Attribute edits do not delete unrelated attributes or prior style edits.
  • Comment mode still works as the AI edit path.
  • Share/export and deck navigation still work after the edit-mode changes.

Verification Commands

pnpm --filter @open-design/web typecheck
pnpm --filter @open-design/web test
pnpm --filter @open-design/e2e test:ui -- --grep "manual edit"
pnpm typecheck
pnpm test
pnpm check:residual-js