feat: Monaco editor, split-pane, streaming output (issue #22)#37
feat: Monaco editor, split-pane, streaming output (issue #22)#37andrewhopper wants to merge 2 commits intomasterfrom
Conversation
…ssue #22) Priority 1: - Replace highlight.js pre/code with Monaco Editor (readOnly: true) via CDN AMD loader — adds line numbers, code folding, minimap, Ctrl+F search - Split-pane CSS Grid layout: Monaco left, Preview/Output tabs right with draggable resize handle (20-80% range) - Stream Python stdout/stderr line-by-line via Socket.IO runPython event instead of buffering until process close Priority 2: - Capture console.log/warn/error/info from preview iframe via postMessage and display in Output panel - VSCode-style status bar: language name, cursor position, line count - Inline error markers: parse Python traceback for File ..., line N and call monaco.editor.setModelMarkers() to highlight the offending line Co-authored-by: Andrew Hopper <andrewhopper@users.noreply.github.com>
|
@claude resolve the conflicts |
|
Claude finished @andrewhopper's task in 10m 38s —— View job Resolving Merge Conflicts
|
- Accept package.json rename: name=clawdview, author=Andrew Hopper (from master) - Merge server.js: integrate streaming runPython Socket.IO handler into master's modular class structure (src/services, src/routes) - Keep Monaco editor app.js, split-pane index.html/style.css (our PR) Co-authored-by: Andrew Hopper <andrewhopper@users.noreply.github.com>
|
@claude resolve the conflicts |
|
Claude finished @andrewhopper's task in 3m 9s —— View job Merge Conflict Analysis
|
| Branch | State |
|---|---|
claude/issue-22-20260303-1622 (this PR) |
Old JS + Monaco editor, split-pane, streaming |
origin/master |
Completely rewritten to TypeScript + React + Vite (PR #53) |
There is no shared merge base between the two branches — git merge-base HEAD origin/master returns nothing. Master was rebuilt from scratch with a new architecture (src/client/, src/server/, TypeScript, shadcn/ui).
The previous Claude run resolved package.json and server.js conflicts, but:
app.jswas left unresolved (it no longer exists in master — replaced bysrc/client/App.tsx)- Since then, master advanced further with PR chore: set up TypeScript, Vite, Tailwind v4, and shadcn infrastructure #53 (full TypeScript rewrite)
Resolution Options
Option A — Keep this PR's Monaco JS version (quickest)
Run locally:
git fetch origin
git merge origin/master --allow-unrelated-histories -X ours
git push origin HEADThis brings in all new TypeScript infrastructure files from master while keeping our JS Monaco files. The PR will be mergeable, but you'll have two parallel implementations coexisting.
Option B — Port Monaco features into the TypeScript rewrite (recommended)
The Monaco editor features (read-only viewer, split-pane, streaming output, status bar, error markers) should be ported to the new src/client/App.tsx React architecture. This is the cleanest path but requires significant development work.
Option C — Close this PR
Since the TypeScript rewrite (PR #53) already landed on master with a new architecture, this PR's changes are superseded. Close it and open a new PR targeting the TypeScript version.
I was unable to run git merge directly as it requires user approval in the current permission settings. To enable automatic merges in future, add git merge to your allowed tools in the workflow.
| Branch
|
@claude resolve the conflicts here |
|
Claude finished @andrewhopper's task in 2m 36s —— View job Resolving Merge Conflicts
AnalysisThe situation is more complex than a standard merge conflict:
What needs to happenTo mark the PR as mergeable, a merge commit needs to be created that joins the two unrelated histories while keeping our Monaco editor files. This requires running: git merge -s ours --allow-unrelated-histories origin/master -m "Merge origin/master: keep Monaco editor version (JS)"
git push origin claude/issue-22-20260303-1622The
|
Implements Priority 1 & 2 patterns from the VSCode web patterns investigation.
Priority 1:
<pre><code>— line numbers, folding, minimap, Ctrl+FPriority 2:
Closes #22
Generated with Claude Code