Feature/agentic - #7
Merged
Merged
Conversation
Move the inactive toast completely outside the viewport while preserving its enter and exit animation.
Migrate the browser interface to Vue with strict TypeScript, fix responsive layout and unsafe DOM rendering, and add a secured Electron sidecar with packaging and regression tests.
Validate browser filenames and destination containment across every upload endpoint. Restrict robot and motion-library labels to a single directory segment and add traversal regression coverage.
Remove the unreachable FileNotFoundError branch so invalid motion uploads produce the documented client error instead of an internal server error.
Use hard links or copies for motion files when Windows denies symlink creation, and copy uploaded directory trees when directory links cannot be created.
Write ext_x, ext_y, and ext_z in every object trajectory row so exported CSV data remains self-contained and matches the reader schema.
Derive the regression fixture scale with the production calibration helper so skeleton and terrain assertions use the same ratio.
- reorganize navigation and add typed workflow and calibration controls - persist job history and export replayable JobSpec configurations - add retry, duplicate-edit, batch recovery, and focused test coverage
Add H2R and R2R tracking/contact diagnostics, comparison views, command palette, persisted workspace preferences, and the refined Electron workspace shell. Reuse canonical Xsens aliases and expand Web and desktop acceptance coverage.
Move Vue unit specs into dedicated component and runtime test directories, add a separate test typecheck configuration, and keep generated coverage artifacts ignored while retaining test sources for CI. Apply stable comparison selectors and consistent asset-family colors so all robot layer controls share the same purple state, then refresh the packaged WebUI assets.
Define a local Electron Vue and Three.js client backed by a loopback gateway, with local sidecar and SSH remote compute adapters sharing the same UI. Document credential isolation, API compatibility, file transfer, persistent jobs, GPU deployment phases, and end-to-end acceptance criteria.
# Conflicts: # hhtools/web/server.py
Unify the application menu, navigation, inspector, settings, and task drawer across browser and Electron hosts. Keep host-specific capabilities behind adapters and update component plus Electron end-to-end coverage.
Default Web jobs to unlimited concurrency while allowing deployments to opt into FIFO running and waiting limits. Reserve admission before managed upload writes, preserve pending and running job history, and serialize Motion Library publication so rejected or same-label uploads cannot corrupt shared state. Expose the settings through the Web CLI and Electron sidecar, surface queued and materialization states in the UI, refresh packaged assets, and expand scheduler, upload, history, and configuration coverage.
Record the backend-first fork versus upstream inventory, including security boundaries, scheduler semantics, verification evidence, accepted limitations, and follow-up risks. Clarify replay scope, heading transforms, export metadata, materialization behavior, and viewer-side contact diagnostics at their implementation sites.
Drop the orphaned RP0 URDF because it has no preset or registry integration and references mesh files that are not present in the repository.
Persist scheduler concurrency and queue limits, and hot-apply changes without interrupting active jobs or restarting the sidecar. Expose the controls in the shared Web/Electron settings dialog, keep unauthenticated remote sessions read-only, and cover persistence and restart behavior with unit and end-to-end tests.
Use the sidebar navigation inset for the top-left brand so the icon and text columns share the same visual baseline.
Increase spacing between workspace menu triggers and anchor the navbar to the same responsive left edge as the stage view controls.
Use a shared 14px font-size token for the Navigation and Inspector headings and their sidebar options while preserving the heading hierarchy.
Remove workspace chrome and navigation group headings, then replace the legacy collapse controls with centered mirrored edge handles. Preserve semantic labels, remembered widths, responsive resizing, reduced-motion behavior, and desktop regression coverage.
Attach the drawer controls flush to borderless square panels, replace text glyphs with official Heroicons SVG chevrons, and keep pointer hover visually neutral with active-only feedback.
Reduce the motion panel to three focused profile cards and move dataset requirements into accessible per-card help popovers. Filter the native file picker to supported motion formats, preserve folder sidecars, and surface profile-specific validation errors as readable toasts.
Promote the library to a peer section with compact category filters, semantic type badges, an accessible fill-height result list, and a shared directory control in the inspector and settings dialog. Persist and hot-apply a platform-aware managed root, validate ownership markers, keep root scans atomic, and expose a trusted Electron folder picker. Add frontend, backend, desktop, and end-to-end coverage.
Replace the stacked library filters with a compact category selector and reusable search field. Localize motion import, loaded details, validation, and runtime-rendered library rows for instant English and Chinese switching. Cover the workflow with component and Electron end-to-end tests.
Add the isolated runtime, upload API, shared Vue workspace, Motion Library publishing, and regression coverage.
Keep the official release weights as the default while allowing trusted compatible checkpoints per inference job.
- merge video upload into a four-stage Video to Motion workflow - add a searchable robot library with protected built-in presets - simplify import menus and migrate legacy workspace preferences - cover the updated frontend and robot API behavior with tests
- reduce the header to a compact four-step roadmap - remove custom checkpoint controls and redundant status copy - require explicit official environment confirmation before generation - update component tests and packaged frontend assets
- render licensed thumbnails for six supported humanoid models - preserve the generic HHTools icon for user-imported robots - protect curated presets from deletion and upload replacement - document asset provenance and add regression coverage
# Conflicts: # hhtools/web/server.py # hhtools/web/static/index.html # hhtools/web/upload_resolve.py
Add compact H2R, R2R, batch, and data-analysis panels with a shared searchable motion picker. Keep human motions and robot trajectories separated across frontend types, runtime calls, backend validation, exact-file resolution, and regression tests.
Replace obsolete hashed bundles with the production build for the streamlined workflow panels and motion-boundary runtime.
Define strict transport-neutral contracts for assets, preflight, jobs, artifacts, errors, and JobSpec v2. Add reviewed JSON Schema snapshots, golden fixtures, a read-only capabilities service, and the versioned Agent REST discovery endpoint while preserving existing solver and Web behavior.
Add searchable and inspectable agent assets with routing and capability contracts. Extend batch execution with V2M and R2R workflows while keeping motion inputs isolated, and publish the rebuilt Vue client with tests.
Use zero-radius geometry for navigation, menu triggers, menu items, selection surfaces, and menu-backed dialogs. Rebuild the published Vue assets without changing menu behavior.
Restore the small radius for navigation and selection menus, and make only the canvas view HUD in the upper-left corner square. Rebuild the published Vue assets.
Introduce versioned job, plan, artifact, migration, and portability contracts backed by persistent local stores and explicit runtime ownership. Expose the same capabilities through REST, JSON CLI, and MCP transports, including admission checks, preflight validation, H2R execution, retries, legacy upgrades, artifact delivery, and structured failure reports. Publish generated schemas and the hhtools Agent skill, harden robot asset inspection and cache identity, and cover the new boundaries with contract, integration, transport, lease, and scheduler tests.
Stage an isolated CPython runtime with production dependencies and bundled hhtools assets so the NSIS installer can launch without a pre-existing development checkout. Prefer packaged runtime paths, supervise the local sidecar lifecycle, expose optional-component status through typed IPC, and keep heavyweight GVHMR assets configurable outside the core installer. Add Windows application artwork, installer metadata, runtime preparation documentation, and focused resolver, IPC, and optional-component tests.
Document create_new as the only currently supported output policy and distinguish runtime JobSpec schema metadata from versioned Agent request envelopes. Separate calibration-required handoff from calibration-mismatch rejection, define idempotency conflict behavior, and extend skill contract tests so automation cannot silently choose unsafe fallbacks.
Add a dedicated Settings menu and workspace dialog that report optional desktop components through the typed preload bridge while preserving browser behavior. Register the new commands, refine square menu styling and keyboard interaction, extend Vue component tests, and republish the production WebUI bundle consumed by both browser and Electron shells.
Refresh uv.lock for the new MCP extra and its transport, schema, telemetry, and platform-specific dependency graph. Constrain automated H2R execution to inspected plain-motion inputs, document exact MCP resource URI templates and runtime lease failures, and require nested start requests with truthful terminal-state handling. Extend skill conformance tests to compare documented tools and resources against live MCP discovery and enforce the additional stop conditions.
Resolve fcntl only on POSIX at runtime so Windows builds and type checkers do not import incompatible platform stubs while preserving the existing exclusive save-directory lease semantics. Keep the Agent calibration handoff instructions readable without changing their required stop, WebUI ownership, or fresh-preflight behavior.
Replace oversized pill radii with shared compact radius tokens across badges, selectors, dialogs, banners, analysis chips, status surfaces, and notifications. Keep primary buttons square and menus softly rounded while preserving the circular transport play control, then republish the static Vue bundle used by browser and desktop clients.
Keep the historical private admission-settings helper available for existing callers and regression tests while exposing the public function used by the local MCP composition bridge.
Apply consistent formatting across newly added source files, tests, schemas, and documentation. Normalize English explanatory comments and repository organization.
Validate complete HTTP and HHTools URI tokens against shared host, port, IPv6, and RFC 3986 tail rules. Keep NextAction and artifact resource schemas aligned with runtime validation, and add regressions for malformed URI suffix path leaks.
Expose project, license, source, and contact details from Help and the command palette. Simplify the collapsed task panel, extend component coverage, and refresh the production web bundle.
Use the system language when no saved workspace preference exists, while preserving explicit user selections. Add English and Simplified Chinese NSIS installer support, including the optional GVHMR setup page.
Update the guided tour anchors, copy, and step numbering for the current workspace layout. Show the automatic tour only once while preserving manual replay from Help, legacy completion state, and localized coverage.
Enforce strict MCP stdio and argument boundaries, improve JSON CLI diagnostics, and sanitize runtime lease failures. Add bounded job recovery, verified artifact exports, executable registration next actions, portable schemas, documentation, and regression coverage.
Merged
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.
No description provided.