Summary
Found during fine-grained code-quality review (second pass) at commit 14fbf3e (develop). Severity: medium — bug. Editor component defects:
- Folder creation unreachable —
FileTree.tsx:315-326,385: handleStartCreate and the empty-state button only ever set isCreating with type: "file", so the type === "folder" branch in handleConfirmCreate (line 333) and the onCreateFolder prop can never execute. SkillDetailPage.tsx:276 passes onCreateFolder={handleCreateFolder} which is therefore dead — owners have no way to create a folder despite the fully wired handler. The onRename prop is also accepted but silently dropped (_onRename).
- Line-number gutter desyncs on wrapped lines —
CodeEditor.tsx:193-226: the gutter renders one h-6 row per logical line but the textarea soft-wraps, so any long line shifts all subsequent line numbers out of alignment. Fix: disable wrapping (whiteSpace: "pre" + horizontal scroll) or compute wrapped heights.
Suggested fix
Add a "new folder" affordance (or remove the dead props); fix gutter alignment per above.
Summary
Found during fine-grained code-quality review (second pass) at commit
14fbf3e(develop). Severity: medium — bug. Editor component defects:FileTree.tsx:315-326,385:handleStartCreateand the empty-state button only ever setisCreatingwithtype: "file", so thetype === "folder"branch inhandleConfirmCreate(line 333) and theonCreateFolderprop can never execute.SkillDetailPage.tsx:276passesonCreateFolder={handleCreateFolder}which is therefore dead — owners have no way to create a folder despite the fully wired handler. TheonRenameprop is also accepted but silently dropped (_onRename).CodeEditor.tsx:193-226: the gutter renders oneh-6row per logical line but the textarea soft-wraps, so any long line shifts all subsequent line numbers out of alignment. Fix: disable wrapping (whiteSpace: "pre"+ horizontal scroll) or compute wrapped heights.Suggested fix
Add a "new folder" affordance (or remove the dead props); fix gutter alignment per above.