fix IDE #5
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_code#5
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
link to lib /Volumes/T7/code0/hero_lib/crates/tools
use fs for now
and /Volumes/T7/code0/hero_lib/crates/os/src/git
depend on it and we can use the libraries
then review our functionality and make sure we use above properly
scan button does not work
editor and IDE is not needed
IDE is what stays and what is not there yet from editor needs to go there
we need following abilities
test all with browser mcp
Implementation Spec — Issue #5: Fix IDE
Objective
Integrate
herolib_toolsandherolib_os/gitas local path dependencies, fix the broken scan button, consolidate Editor→IDE, add full file manager ops (mkdir, upload, download, rename, copy, move, delete), enable running.rhai/.pyfiles from the IDE, add Forgejo repo import with glob pattern search (*org/*repo*), and verify with browser MCP tests.Requirements
herolib_tools(/Volumes/T7/code0/hero_lib/crates/tools) andherolib_os(/Volumes/T7/code0/hero_lib/crates/os) aspathdeps in workspaceherolib_tools::forge::ForgeClientfor glob-based repo search/importcode.coderoot_get, handle errors gracefullyfile.mkdirRPC + "New Folder" in IDE toolbar and directory context menu.rhai/.pyrun button wiring in IDEcode.searchRPC (glob pattern → local + forge API results)code.importRPC (clone by pattern intoCODEROOT/<org>/<repo>)Files to Modify / Create
Rust — Workspace
Cargo.toml— addherolib_toolsandherolib_osworkspace deps (path)crates/hero_code_server/Cargo.toml— reference workspace depsRust — Server
crates/hero_code_server/src/rpc/file.rs— addhandle_mkdircrates/hero_code_server/src/rpc/code.rs— addhandle_search,handle_importcrates/hero_code_server/src/rpc/mod.rs— wire new methodscrates/hero_code_server/openrpc.json— addfile.mkdir,code.search,code.importJavaScript / HTML — UI
crates/hero_code_ui/templates/index.html— remove Editor tab, add mkdir button, update Add Repo modalcrates/hero_code_ui/static/js/code_editor.js— addfmMkdir(), fix scan button, addcodeSearch()/codeImport()crates/hero_code_ui/static/js/code_manage.js— update Add Repo modal logicTests
testcases/ide_browser_test.rhai— browser MCP tests for IDEStep-by-Step Plan
Step 1 — Add
herolib_tools+herolib_ospath depsFiles:
Cargo.toml,crates/hero_code_server/Cargo.tomlAdd workspace path deps; run
cargo checkto verify no version conflicts.Dependencies: none
Step 2 — Add
file.mkdirRPC handlerFiles:
crates/hero_code_server/src/rpc/file.rs,rpc/mod.rsImplement
handle_mkdirusingstd::fs::create_dir_all; wire into dispatch.Dependencies: none (can run in parallel with Step 1)
Step 3 — Add
code.searchandcode.importRPC handlersFiles:
crates/hero_code_server/src/rpc/code.rs,rpc/mod.rsUse
herolib_tools::forge::ForgeClient::new_with(env, coderoot)(sync, from env vars).code.search: local glob walk + Forge API search, merged.code.import: resolve pattern → clone into CODEROOT.Dependencies: Step 1 (needs herolib_tools in scope)
Step 4 — Fix scan button
Files:
crates/hero_code_ui/static/js/code_editor.jsPre-fill root path from
code.coderoot_get; reset select on error; auto-trigger scan on IDE tab activate.Dependencies: none (pure JS)
Step 5 — Remove Editor tab, add mkdir UI
Files:
crates/hero_code_ui/templates/index.html,crates/hero_code_ui/static/js/code_editor.jsRemove
tab-editorpane and nav button; add "New Folder" toolbar button; addfmMkdir()function; add mkdir to directory context menu.Dependencies: Step 2 (file.mkdir RPC must exist)
Step 6 — Enhance Add Repo modal with pattern search
Files:
crates/hero_code_ui/templates/index.html,crates/hero_code_ui/static/js/code_manage.jsTwo-step: search pattern → show results list → import selected. Add
codeSearchRepos()andcodeImportRepo().Dependencies: Step 3
Step 7 — Verify and complete run-script wiring
Files:
crates/hero_code_ui/static/js/code_editor.jsEnsure
ide-run-btnshows only for.rhai/.py; engine auto-detected from extension; output panel wired.Dependencies: none (pure JS verification)
Step 8 — Update OpenRPC spec
Files:
crates/hero_code_server/openrpc.jsonAdd entries for
file.mkdir,code.search,code.import.Dependencies: Steps 2, 3
Step 9 — Browser MCP tests
Files:
testcases/ide_browser_test.rhaiBrowser automation tests for: scan, file tree, mkdir, run script, repo search/import.
Dependencies: Steps 1–8
Acceptance Criteria
cargo checkpasses with herolib_tools/herolib_os path depsfile.mkdircreates directoriescode.searchreturns repos for glob patterns (e.g.*hero*,lhumina_code/*)code.importclones a repo into$CODEROOT/<org>/<repo>.rhaifile from IDE shows output.pyfile from IDE shows outputNotes
ForgeClient::new_with(env, coderoot)(sync) notForgeClient::connect()(async/hero_proc) for server-side handlersForgeClient::list()intokio::task::spawn_blockingherolib_toolsmay bring in version-conflicting transitive deps — runcargo tree -dafter addingCODEROOTmust be set in the server environment forcode.searchlocal walk to workImplementation Complete — Issue #5: Fix IDE
Changes Made
Rust — Dependencies
herolib_toolsandherolib_osas local path deps in workspaceCargo.tomlandhero_code_server/Cargo.tomlRust — New RPC Methods
file.mkdir— create directory (and parents) viastd::fs::create_dir_allcode.search— glob pattern search across local CODEROOT + Forgejo API (usesherolib_tools::forge::ForgeClient)code.import— clone a repo intoCODEROOT/<org>/<repo>by full_name or glob patternrpc/mod.rsand documented inopenrpc.jsonUI — IDE Tab
/Volumes/T7/code0default path; now auto-fills fromcode.coderoot_geton tab activate#ide-mkdir-btn) toolbar button + "New folder here" directory context menu itemfmMkdir()function using existingfmPrompt()modal pattern.rhai/.py, engine auto-detected from extensionUI — Editor Tab Removed
tab-editorpane (~54 lines)editor.jsscript include (editor-tab-only code)UI — Code Management Tab
*hero*,lhumina_code/*code.importcode.adddirectlyOpenRPC Spec
file.mkdir,code.search,code.importmethod entriesBugs Fixed During Testing
fmDelete()incode_editor.js(prevented all IDE JS from loading)tab-codepane had hardcodedstyle="display:none"making Code Management tab permanently invisibleTest Results (Browser MCP)
.rhai/.pyfiles only*hero*returns remote repos with badgesAll 8 browser MCP tests passing.
cargo checkclean (1 pre-existing dead_code warning in herolib_os, unrelated).Implementation committed:
76ecd57Browse:
76ecd57