audit: PR #260 (ui-014 DOM test environment) - Grade B#268
Closed
vertz-tech-lead[bot] wants to merge 10 commits intomainfrom
Closed
audit: PR #260 (ui-014 DOM test environment) - Grade B#268vertz-tech-lead[bot] wants to merge 10 commits intomainfrom
vertz-tech-lead[bot] wants to merge 10 commits intomainfrom
Conversation
- Move DOM shim from task-manager example into @vertz/ui-server/dom-shim - Add SSRNode, SSRElement, SSRTextNode, SSRDocumentFragment classes - Add installDomShim(), removeDomShim(), toVNode() utilities - Add server-side JSX runtime to @vertz/ui-server/jsx-runtime - Support VNode generation for SSR without DOM - Add comprehensive tests for DOM shim and JSX runtime - Export both as subpaths in package.json Part of zero-config SSR milestone (issue #265)
- Add jsx(), jsxs(), jsxDEV(), Fragment() for DOM-based rendering - Export as @vertz/ui/jsx-runtime subpath - Add comprehensive tests with happy-dom environment - Supports event handlers, attributes, children, and components Part of zero-config SSR milestone (issue #265)
- Add ssr: boolean | SSROptions to plugin options - Implement configureServer hook that intercepts HTML requests - Auto-generate virtual SSR entry module (\0vertz:ssr-entry) - Install DOM shim and render app server-side - Inject SSR'd HTML into index.html template - Add JSX runtime alias swap for SSR builds (@vertz/ui → @vertz/ui-server) - Support auto-detection of entry from index.html - Support <!--ssr-outlet--> or <div id="app"> injection Part of zero-config SSR milestone (issue #265)
- Auto-detect SSR context (globalThis.__SSR_URL__) - Use __SSR_URL__ instead of window.location in SSR - Skip popstate listener setup in SSR - Skip history.pushState/replaceState in SSR - Make initialUrl parameter optional (auto-detect from context) - All router tests still pass Part of zero-config SSR milestone (issue #265)
Delete ~500 lines of SSR boilerplate: - src/dom-shim.ts (SSRElement, installDomShim — now in @vertz/ui-server/dom-shim) - src/jsx-runtime-server.ts (server JSX — now in @vertz/ui-server/jsx-runtime) - src/jsx-dev-runtime-server.ts (dev re-export) - src/entry-server.ts (SSR entry — now auto-generated by vertz plugin) - src/entry-client.ts (client entry — merged into index.ts) - src/server.ts (custom Vite middleware server — no longer needed) - src/jsx-runtime.ts (client JSX — now in @vertz/ui/jsx-runtime) - src/__tests__/dom-shim.test.ts (moved to ui-server) - src/__tests__/jsx-runtime-server.test.ts (moved to ui-server) Update config: - vite.config.ts: add ssr: true to vertzPlugin() - tsconfig.json: jsxImportSource → @vertz/ui - package.json: remove jsx-runtime/jsx-dev-runtime exports Update src/index.ts: - Export App as default for SSR auto-detection - Skip client-only init during SSR - Handle SSR→client remount Add @vertz/ui jsx-dev-runtime subpath (aliases to jsx-runtime) Part of zero-config SSR milestone (issue #265)
- Test SSR option parsing (true, options object) - Test virtual SSR entry module resolution and generation - Test configureServer hook behavior (enabled/disabled) - Test JSX runtime alias swap for SSR builds - 12 new tests, all passing Part of zero-config SSR milestone (issue #265)
- Add type assertion in @vertz/ui-server/jsx-runtime line 34 (VNode | RawHtml) - Update return type in @vertz/ui/jsx-runtime to Node | Node[] | null - Create globals.d.ts to declare __SSR_URL__ global for SSR context Addresses Nora's review comments on PR #267. All packages now pass typecheck.
Contributor
Author
|
Closing due to worktree pollution. This PR was created from a dirty worktree and contains 10 commits of SSR implementation (36 files changed) that belong to PR #267, not an audit document. The branch was created while uncommitted SSR work was present in the working tree, causing it to include the entire SSR feature instead of just an audit document. If an audit document for PR #260 is needed, it should be recreated from a clean main branch with only the audit markdown file. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Audit Summary
PR Audited: #260 - feat(ui-014): Configure bun test with happy-dom environment for task-manager
Agent: vertz-dev-dx[bot]
Grade: B
Merged: 2026-02-14T00:58:21Z
Key Findings
✅ Strengths:
Recommendations
Files Added
plans/audits/2026-02-14-pr260-dx.md— Human-readable reportplans/audits/data/2026-02-14-pr260-dx.json— Machine-readable structured dataFull report: See markdown file for detailed evidence and recommendations.
Auditor: agent:auditor (subagent)
Timestamp: 2026-02-14T14:06:00Z