Skip to content

V3 A/B/C: cutover, mutation closure, and full UAT evidence bundle#1

Draft
yangshu2087 wants to merge 19 commits intocodex/design-md-rolloutfrom
codex/v3-abc-pr
Draft

V3 A/B/C: cutover, mutation closure, and full UAT evidence bundle#1
yangshu2087 wants to merge 19 commits intocodex/design-md-rolloutfrom
codex/v3-abc-pr

Conversation

@yangshu2087
Copy link
Copy Markdown
Owner

@yangshu2087 yangshu2087 commented Apr 8, 2026

Summary

This PR is no longer only the original A/B/C bundle. It now packages the full V3 operator-first cutover through four reviewable themes:

  1. A/B/C base slices — cutover wording, mutation closure, and full uat:full evidence
  2. Frontend reset — recenter the product around 一句话生成 instead of a light-backoffice narrative
  3. Result-copy cleanup — remove English / technical / noisy copy from generated result UI
  4. Article flow — make article a truthful X long-form path: generate in X article structure, export through X web, then record the published article URL back into DraftOrbit

What changed

1) Frontend is now centered on one-line generation

  • / is reduced to value + example + start
  • /app is a single-screen generator
  • /connect and /queue are no longer explicit top-level destinations; they are app-internal nextAction task panels
  • Pricing is demoted out of the primary flow

2) Generated-result copy is cleaner

  • user-facing summary chips are normalized into Chinese
  • backend English / technical stage summaries are cleaned before display
  • generated body copy gets lightweight cleanup for casing / duplicate hashtag / leaked run-id noise

3) article now behaves like an X article flow, not a fake tweet flow

  • upstream generation is aligned to X article structure
  • article format no longer tries to enter tweet/thread direct-publish flow
  • /v3/publish/prepare now returns article export guidance instead of pretending direct publish is available
  • /v3/publish/article/complete is added so the user can paste the final article URL back after publishing on X web
  • queue / run state now move article items from review to published with MANUAL_RECORDED
  • result area and task panel now guide the user through:
    • copy article
    • open X web
    • publish there
    • paste the final article URL back into DraftOrbit

Why article publish is implemented this way

As of April 8, 2026, the official X Help Center documents Articles as a web composition flow on x.com (About Articles), while the public X developer docs index surfaces post/tweet APIs but does not surface a public Articles publish endpoint in the current docs navigation (X API docs index, Manage Tweets / Posts docs).

So this PR implements the truthful version:

  • no fake native Articles publisher
  • manual X web publish + tracked completion back into DraftOrbit
  • capability abstraction is added so a future native Articles API can slot in later without rewriting the user flow again

The “no public Articles publish endpoint” part is an inference from current official public docs, not a claim that private/internal capabilities do not exist.

Evidence and reports

Committed report / artifact bundle

  • artifacts/uat-full/uat-article-2026-04-08_23-38-21-483/
  • output/reports/uat-full/UAT-ARTICLE-REPORT-uat-article-2026-04-08_23-38-21-483.md
  • output/reports/uat-full/UAT-EVIDENCE-INDEX-uat-article-2026-04-08_23-38-21-483.md

Fresh local verification for this update

Fresh verification was rerun in a clean PR worktree on 2026-04-08:

# API tests
cd apps/api
./node_modules/.bin/tsx --test test/x-article-capability.test.ts test/v3-service-helpers.test.ts

# Shared/db prep
npx pnpm@10.23.0 --filter @draftorbit/shared build
npx pnpm@10.23.0 --filter @draftorbit/db prisma:generate

# Typecheck / build
npx pnpm@10.23.0 --filter @draftorbit/api typecheck
npx pnpm@10.23.0 --filter @draftorbit/api build
npx pnpm@10.23.0 --filter @draftorbit/web typecheck
npx pnpm@10.23.0 --filter @draftorbit/web build

Browser verification was also rerun against local dev servers on:

  • web: http://127.0.0.1:3100
  • api: http://127.0.0.1:4100

Verified in browser:

  • article result page shows the new export guidance block
  • main CTA is “复制并去 X 发布”
  • saving a valid X article URL returns success
  • /app?nextAction=export_article&highlight=<runId>&published=<runId> shows the saved-state task panel
  • browser console errors observed during this pass: 0

Recent commit slices on this PR branch

  • fe04a9crefactor(v3): recenter frontend around one-line generation flow
  • 5c1655brefactor(v3): polish generated result copy
  • f8727fdrefactor(v3): normalize generated body copy
  • a9bbb11refactor(v3): align article flow with manual x export
  • a0cf42cdocs(uat): add article export evidence bundle
  • 1b86c06refactor(v3): add manual x article publish tracking flow

Notes

  • This PR branch is still based on origin/codex/design-md-rollout
  • The article publisher implemented here is the truthful current path, not a fake direct API publisher
  • If X exposes a public Articles publish endpoint later, the new capability layer is intended to be the seam for upgrading from manual_x_web to a native mode

Article seam follow-up (2026-04-08, implementation plan executed)

This PR now also includes the repo-facing docs and follow-up verification produced during the article publish implementation plan execution:

Newly added repo docs

  • docs/v3-article-publish-phase1.md
  • docs/v3-article-publish-phase2-native-seam.md
  • docs/superpowers/specs/2026-04-08-article-publish-design.md
  • docs/superpowers/plans/2026-04-08-article-publish-implementation-plan.md

Newly added implementation commits on this PR branch

  • 6049c01docs(article): add publish source-of-truth docs
  • 962176drefactor(article): enrich shared publish capability contract
  • 1a10aa5refactor(article): introduce manual publish provider seam
  • 8b59c77refactor(article): normalize v3 publish state contract
  • 5595fc4refactor(article): split publish ui by capability mode
  • b794115docs(article): add implementation plan and refresh verification evidence

Follow-up verification correction / supplement

The earlier PR body mentioned a local browser rerun on port 3100. During the implementation-plan execution, the fresh saved-panel verification was rerun on the corrected local origin pairing:

  • web: http://127.0.0.1:3200
  • api: http://127.0.0.1:4100

This rerun also exposed and fixed an environment mismatch: API had briefly been restarted with APP_URL=http://127.0.0.1:3100 while the web server was actually running on 3200, which caused the app to show 网络连接失败,请检查服务是否启动. After restarting API with APP_URL=http://127.0.0.1:3200, the saved-state article task panel rendered correctly.

Fresh follow-up artifacts now committed on this branch:

  • output/reports/uat-full/UAT-ARTICLE-VERIFY-2026-04-08-ui-split.md
  • output/playwright/article-export-2026-04-08/article-task-panel-saved-fresh.png
  • output/playwright/article-export-2026-04-08/article-task-panel-saved-fresh.json

Fresh browser outcome for the saved article panel:

  • saved-state text detected: true
  • continue-state text detected: true
  • console errors: 0
  • page errors: 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant