chatroom-cli 1.95.0 → 1.96.0
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/dist/index.js +32 -88
- package/dist/index.js.map +5 -5
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -79075,84 +79075,22 @@ function renderWebappUxHandoffReference() {
|
|
|
79075
79075
|
"### UX review checklist",
|
|
79076
79076
|
'Complete the optional **UX** section in your output when the planner proposes UI changes. Write exactly "Not Applicable." for non-UI tasks. Put code snippets in **Suggested edits** only.',
|
|
79077
79077
|
"",
|
|
79078
|
-
"1. **Flows** — primary
|
|
79079
|
-
"2. **Patterns** —
|
|
79080
|
-
"3. **Layout** —
|
|
79081
|
-
"4. **Shortcuts** —
|
|
79082
|
-
"5. **States** — loading
|
|
79083
|
-
"6. **Error boundaries** —
|
|
79084
|
-
"7. **
|
|
79085
|
-
|
|
79086
|
-
"9. **Destructive actions** —
|
|
79087
|
-
"10. **Bulk actions** —
|
|
79078
|
+
"1. **Flows** — is the primary path straightforward? simpler alternatives exist?",
|
|
79079
|
+
"2. **Patterns** — consistent with existing project components and conventions? recommend one when multiple exist.",
|
|
79080
|
+
"3. **Layout** — unnecessary complexity or wrappers? layout stable across loading/empty/error transitions (no layout shift when async content arrives or state changes)?",
|
|
79081
|
+
"4. **Shortcuts** — aligned with the project keyboard/shortcut conventions? gaps or conflicts?",
|
|
79082
|
+
"5. **States** — loading, error, and empty states explicitly handled for async surfaces (no blank panels, silent failures, or missing retry affordances)?",
|
|
79083
|
+
"6. **Error boundaries** — failures scoped so one subtree does not crash the whole app?",
|
|
79084
|
+
"7. **Feedback** — timely response for async user actions?",
|
|
79085
|
+
"8. **Interaction affordance** — clickable/interactive elements use pointer cursor (or the project's established equivalent) where applicable?",
|
|
79086
|
+
"9. **Destructive actions** — irreversible or high-impact single actions gated by confirmation?",
|
|
79087
|
+
"10. **Bulk actions** — batch/multi-item operations confirmed with scope or impact summary?",
|
|
79088
79088
|
"",
|
|
79089
|
-
"###
|
|
79090
|
-
"-
|
|
79091
|
-
"-
|
|
79092
|
-
"-
|
|
79093
|
-
"-
|
|
79094
|
-
"",
|
|
79095
|
-
"### Presentation & responsive patterns",
|
|
79096
|
-
"- Reuse existing design-system components and established UI patterns before introducing new abstractions",
|
|
79097
|
-
"- Match badge/button styling from similar surfaces in the app",
|
|
79098
|
-
"- When multiple valid patterns exist, recommend one and explain tradeoff",
|
|
79099
|
-
"- Use the project's standard breakpoint(s) for mobile vs desktop",
|
|
79100
|
-
"- **Hide/show:** responsive utility classes or equivalent for alternate chrome per viewport",
|
|
79101
|
-
"- **Mobile overlay:** full-screen or sheet overlay with backdrop when desktop uses persistent panels",
|
|
79102
|
-
"- **Separate mobile UI:** dedicated mobile modal/picker when desktop uses side panel or split view",
|
|
79103
|
-
"- **Shared responsive density:** same component with size/density variants per breakpoint",
|
|
79104
|
-
"- **Command/search dialogs:** match existing modal/dialog styling; sensible max-width on small screens",
|
|
79105
|
-
"",
|
|
79106
|
-
"### Layout simplification",
|
|
79107
|
-
"- Review card/section layouts for unnecessary rows, nested wrappers, or misaligned actions",
|
|
79108
|
-
"- Prefer compact rows: title and overflow menu on one line via flex/grid",
|
|
79109
|
-
"- Description on the next line; primary CTA on a trailing row aligned end",
|
|
79110
|
-
"- Canonical simplified card pattern:",
|
|
79111
|
-
" ```",
|
|
79112
|
-
" <title> <overflow-menu>",
|
|
79113
|
-
" <description>",
|
|
79114
|
-
" <primary-cta aligned end>",
|
|
79115
|
-
" ```",
|
|
79116
|
-
"- Use header + action grid or equivalent flex `justify-between`",
|
|
79117
|
-
"- Flag multi-row chrome that could collapse (menu on its own row, CTA misaligned vs similar cards)",
|
|
79118
|
-
"",
|
|
79119
|
-
"### Error & loading states",
|
|
79120
|
-
"- Initial fetch: centered loader or skeleton for the content area",
|
|
79121
|
-
"- Pagination/infinite scroll: inline loader at scroll edge",
|
|
79122
|
-
"- Save/submit mutations: inline success/error feedback beside the trigger control",
|
|
79123
|
-
"- Never leave blank panels on fetch failure — show error message or retry affordance",
|
|
79124
|
-
"- Disable interactive controls while loading or pending",
|
|
79125
|
-
"",
|
|
79126
|
-
"### Error boundaries",
|
|
79127
|
-
"- Wrap data-dependent or third-party subtrees with error boundaries so a single failure does not unmount the whole app",
|
|
79128
|
-
"- Scope boundaries to the failing panel/section, not the entire shell",
|
|
79129
|
-
"- Provide fallback UI with a recovery action (retry, reload, or navigate away)",
|
|
79130
|
-
"",
|
|
79131
|
-
"### Alignment & component hierarchy",
|
|
79132
|
-
"- Before styling a leaf component, trace parent flex/grid context",
|
|
79133
|
-
"- Match sibling heights and vertical rhythm",
|
|
79134
|
-
"- Flag absolute positioning or fixed heights that fight parent layout",
|
|
79135
|
-
"- When hierarchy is unclear, inspect the rendered component tree (e.g. DOM inspector or component test snapshot) before deciding leaf styles",
|
|
79136
|
-
"",
|
|
79137
|
-
"### Fast user feedback",
|
|
79138
|
-
"- Async actions triggered by keyboard shortcut or click must show **immediate** UI response",
|
|
79139
|
-
'- Canonical pattern: pending local state → button label changes (e.g. "Saving..."), control disabled while in flight',
|
|
79140
|
-
"- Show inline error on failure; brief success confirmation optional",
|
|
79141
|
-
"- Pair shortcut hints with pending state only when the action shows pending feedback",
|
|
79142
|
-
"",
|
|
79143
|
-
"### Destructive & bulk action safeguards",
|
|
79144
|
-
"- **Destructive actions** (delete, remove, archive, reset, clear, disable) require an explicit confirmation step — never fire immediately from a menu item or button without a dialog",
|
|
79145
|
-
"- Use the project's standard confirmation dialog/modal pattern",
|
|
79146
|
-
"- Confirmation includes clear title + description of what will happen; primary action styled as destructive when appropriate",
|
|
79147
|
-
"- **Bulk actions** (multi-select delete, batch disable, clear-all) require confirmation before execution — show how many items are affected",
|
|
79148
|
-
'- Bulk confirm should summarize scope (e.g. "Delete 12 items?") and list material impact when non-obvious',
|
|
79149
|
-
"- Flag plans that wire bulk/destructive handlers directly to mutations/API calls without a confirm gate",
|
|
79150
|
-
"",
|
|
79151
|
-
"### Keyboard shortcuts",
|
|
79152
|
-
"- Align proposed shortcuts with the project's existing shortcut catalog and platform conventions (⌘ on macOS, Ctrl on Windows/Linux)",
|
|
79153
|
-
"- Avoid conflicting bindings; document new shortcuts when introducing them",
|
|
79154
|
-
"- Common patterns: modifier+letter for global commands, Enter to confirm in dialogs, Escape to cancel/close, Shift+Enter for multiline input where applicable",
|
|
79155
|
-
"- Flag plans that add shortcuts without checking for conflicts or omit keyboard access for primary actions"
|
|
79089
|
+
"### Review principles",
|
|
79090
|
+
"- Ground feedback in the planner check-in and the project codebase — cite existing patterns rather than inventing generic UI preferences.",
|
|
79091
|
+
"- Flag missing states, layout-shift risk, and missing interaction affordances when the plan omits them; recommend consistency with established project conventions.",
|
|
79092
|
+
"- Do **not** prescribe style choices the project has not adopted (e.g. specific flex layouts, canonical card chrome, responsive utility patterns, button label copy).",
|
|
79093
|
+
"- When multiple valid patterns exist in the codebase, recommend one and explain the tradeoff."
|
|
79156
79094
|
].join(`
|
|
79157
79095
|
`);
|
|
79158
79096
|
}
|
|
@@ -79182,16 +79120,16 @@ function getEnhancerFeedbackTemplateBody() {
|
|
|
79182
79120
|
<handoff-ux>
|
|
79183
79121
|
<!-- Optional — write exactly "Not Applicable." when no UI changes are proposed -->
|
|
79184
79122
|
<!-- When UI is proposed: specific findings tied to the planner's proposal. No code blocks (use Suggested edits). -->
|
|
79185
|
-
- **Flows:** <
|
|
79186
|
-
- **Patterns:** <
|
|
79187
|
-
- **Layout:** <
|
|
79123
|
+
- **Flows:** <click count, nested modals, simpler alternatives>
|
|
79124
|
+
- **Patterns:** <consistency with existing project components; recommend one when multiple>
|
|
79125
|
+
- **Layout:** <complexity, wrappers, layout stable across state transitions — no layout shift>
|
|
79188
79126
|
- **Shortcuts:** <alignment with catalog; gaps or conflicts>
|
|
79189
|
-
- **States:** <loading/error/empty
|
|
79127
|
+
- **States:** <loading/error/empty explicitly handled; no blank panels or silent failures>
|
|
79190
79128
|
- **Error boundaries:** <error boundary placement; failure isolated from the whole app>
|
|
79191
|
-
- **
|
|
79192
|
-
- **
|
|
79193
|
-
- **Destructive safeguards:** <
|
|
79194
|
-
- **Bulk safeguards:** <
|
|
79129
|
+
- **Feedback:** <timely response for async actions>
|
|
79130
|
+
- **Interaction affordance:** <pointer cursor or project equivalent on clickable elements where applicable>
|
|
79131
|
+
- **Destructive safeguards:** <confirmation before irreversible/high-impact actions>
|
|
79132
|
+
- **Bulk safeguards:** <confirmation with scope summary for batch operations>
|
|
79195
79133
|
</handoff-ux>
|
|
79196
79134
|
|
|
79197
79135
|
<handoff-defragmentation>
|
|
@@ -127723,8 +127661,14 @@ async function startLocalWebServer(config4, deps = {}) {
|
|
|
127723
127661
|
streamHub,
|
|
127724
127662
|
stop() {
|
|
127725
127663
|
return new Promise((resolve8, reject) => {
|
|
127726
|
-
io2.close()
|
|
127727
|
-
|
|
127664
|
+
io2.close((err) => {
|
|
127665
|
+
if (err) {
|
|
127666
|
+
reject(err);
|
|
127667
|
+
return;
|
|
127668
|
+
}
|
|
127669
|
+
resolve8();
|
|
127670
|
+
});
|
|
127671
|
+
server2.closeAllConnections();
|
|
127728
127672
|
});
|
|
127729
127673
|
}
|
|
127730
127674
|
};
|
|
@@ -129025,4 +128969,4 @@ program2.hook("preAction", async (_thisCommand, actionCommand) => {
|
|
|
129025
128969
|
});
|
|
129026
128970
|
program2.parse();
|
|
129027
128971
|
|
|
129028
|
-
//# debugId=
|
|
128972
|
+
//# debugId=2445D97C1319365564756E2164756E21
|