Delete the entire src/openjarvis/memory/ directory (11 files) which
was a pure re-export shim pointing to openjarvis.tools.storage.*.
Update all imports across src/ and tests/ to use the canonical
openjarvis.tools.storage imports directly.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix mock.patch() target in test_config.py (evals.cli -> openjarvis.evals.cli)
- Remove stale sys.path manipulation in evals/tests/conftest.py
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move the standalone evals framework from the project root into the
openjarvis package. Rewrite all ~50+ import statements from 'from evals.'
to 'from openjarvis.evals.' across the package, CLI, and tests. Remove
the evals-specific pyproject.toml (no longer a standalone package).
Update ruff per-file-ignores paths and fix line-length violations
introduced by the longer import paths.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-locate recipe TOML files with the loader code that reads them,
eliminating the fragile parents[3] path traversal. Updates
_PROJECT_RECIPES_DIR to use a relative package data path instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move all 6 Docker files (Dockerfile, Dockerfile.gpu, Dockerfile.gpu.rocm,
Dockerfile.sandbox, docker-compose.yml, docker-compose.gpu.rocm.yml) from
the project root into deploy/docker/ to reduce root-level clutter. Update
build context paths in both docker-compose files to point back to the
project root (../..) so Docker builds continue to work correctly.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
13 incremental tasks covering structure cleanup, data migration,
shim removal, engine consolidation, and init.py refactoring.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Outlines incremental restructuring to reduce root sprawl from 32 to 21
items, consolidate data dirs into src/ package, remove backward-compat
shims, and clean up repetitive code patterns.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- .github/workflows/frontend.yml: type-check + build on push/PR
- ErrorBoundary component wraps App with catch + retry UI
- API client reads VITE_API_URL env var for non-same-origin deploys
- vite-env.d.ts declares ImportMetaEnv type
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Build tray programmatically via TrayIconBuilder with menu items.
Show/Hide toggles main window visibility. Remove declarative
trayIcon config to avoid conflict with programmatic setup.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Previous .ico only had 16x16. Windows needs multiple sizes for
taskbar, title bar, and explorer icon display.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New SettingsPanel component with API URL, refresh interval, and
theme toggle. Wired into App.tsx as sixth tab.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add std_latency to LatencyBenchmark metrics. New _render_stats_table
in bench_cmd.py detects stats-pattern keys (mean_X, p50_X, min_X,
max_X, std_X, p95_X) and renders Avg/Median/Min/Max/Std/P95 columns.
Falls back to simple key-value for non-stats metrics.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wrap engine.generate() in ask.py with console.status() spinner.
Wrap memory indexing loop in memory_cmd.py with rich.progress.track().
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New log_config.py with setup_logging() configuring the openjarvis
logger (WARNING default, DEBUG on --verbose, ERROR on --quiet).
RotatingFileHandler (5MB, 3 backups) enabled in verbose mode.
Flags added to root CLI group and forwarded via click context.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New hints.py with hint_no_config(), hint_no_engine(), hint_no_model().
Wire hint_no_engine into ask.py EngineConnectionError handlers to
show actionable suggestions when engine is unreachable.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5-step guided setup: detect hardware, write config, check engine,
verify model, run test query. Skips config step if already present
unless --force is used. Exits with helpful message on engine failure.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wire new display flags through the run command to print_full_results.
--compact renders a single dense table; --trace-detail enables full
per-step trace listing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add print_accuracy_panel, print_latency_table, print_energy_table,
print_trace_summary, print_compact_table, and print_full_results
orchestrator. Keep existing print_metrics_table for backward compat.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add total_input_tokens, total_output_tokens, avg_power_watts to
_compute_summary() and include in RunSummary constructor
- Add _output_path and _traces_dir as proper slots on RunSummary (fixes
pre-existing bug: slots=True prevented dynamic attribute setting)
- Update _summary_to_dict to serialize new fields
- Fix pre-existing test_metric_stats_to_dict to check p90/p95/p99 keys
- Add 2 new tests: total token counts and avg power in summary
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add trace_steps and trace_energy_joules to EvalResult
- Add avg_power_watts, total_input_tokens, total_output_tokens, and
trace_step_type_stats to RunSummary
- Add 3 tests covering new field defaults and setters
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add StepTypeStats dataclass with full descriptive statistics per step
type (count, avg/median/min/max/std duration, total energy, and
avg/median/min/max/std input/output tokens)
- Add total_energy_joules, total_generate_energy_joules, and
step_type_stats fields to TraceSummary
- Compute per-step-type aggregations in summary() method
- Add 3 tests covering energy totals, step-type stats, and dataclass fields
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add tokens_per_joule column to TelemetryStore schema, INSERT, and migration
- Add avg_tokens_per_joule field to ModelStats and EngineStats
- Add AVG(tokens_per_joule) to per_model_stats() and per_engine_stats() SQL
queries using _safe_col() pattern for backward compatibility
- Add 3 tests for store/retrieve, multi-record aggregation, and engine stats
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Computes completion_tokens / energy_joules in both generate() and
stream() methods. Zero when energy or tokens are zero.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Detailed TDD implementation plan for Phases 23a/23b/23c covering eval
display, telemetry, trace aggregation, quickstart CLI, logging, bench
stats, and dashboard polish. Phase 23a fully specified with test code.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Design for eval output quality, CLI polish, installation flow, and
dashboard aesthetics across three independently shippable mini-phases.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add createUpdaterArtifacts: true to bundle config, which tells
cargo tauri build to produce .sig files alongside installers
- Update pubkey to match regenerated key (now with password)
- Without createUpdaterArtifacts, no .sig or .tar.gz updater bundles
are produced, so latest.json was never generated
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Introduces the Operator subsystem — persistent agents that run on a schedule
with automatic state management. Built on a new OperativeAgent (extends
ToolUsingAgent) with built-in session persistence, memory state recall, and
tick-aware lifecycle. Includes OperatorManager for lifecycle management,
TOML manifest format, 4 bundled operators, 9 CLI commands, and 39 tests.
New: OperativeAgent, operators package (types/loader/manager),
operators CLI, OperatorsConfig, OPERATOR_TICK_START/END events.
Modified: system.py (system_prompt/operator_id passthrough),
scheduler.py (operator metadata forwarding), config.py, events.py.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Set updater pubkey from generated signing keypair
- Fix endpoint URL to use HazyResearch/OpenJarvis (not jonsf)
- TAURI_SIGNING_PRIVATE_KEY configured as GitHub Secret
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The tauri action attempts certificate import when APPLE_CERTIFICATE is
present in the environment (even as empty string). Move Apple signing
env vars to a conditional step that only writes to GITHUB_ENV when the
secret is actually non-empty.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add icons/icon.ico generated from 256x256.png (required for Windows resource file)
- Add icon.ico to bundle.icon list in tauri.conf.json
- Set APPLE_SIGNING_IDENTITY to '-' when APPLE_CERTIFICATE is not configured,
skipping codesign instead of failing with keychain import error
- Remove macos-13 matrix entry (Intel runners sunset by GitHub)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The tauri-apps/tauri-action runs `npx tauri build` which requires
@tauri-apps/cli to be installed as an npm dependency. Without it,
npx fails with "could not determine executable to run".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rewrite .github/workflows/desktop.yml: 2-job pipeline (validate + build-and-release)
with rolling desktop-latest pre-release on push to main and stable desktop-v* releases
- Add UpdateChecker component: checks for updates on startup + every 30 min,
background download with progress bar, one-click relaunch
- Configure Tauri updater: endpoints pointing to desktop-latest release, pubkey placeholder
- Add tauri-plugin-process for relaunch support (Cargo.toml, lib.rs, package.json)
- Add macOS Entitlements.plist for notarization (network + file access, no sandbox)
- Add scripts/bump-desktop-version.sh for atomic version bumps across 3 config files
- Add desktop/README.md with dev setup, auto-update architecture, signing docs
- Update .gitignore for desktop/node_modules, dist, target
- Configure macOS minimumSystemVersion, Windows timestampUrl
- Include all Phase 14-21 work: agent hardening, RBAC, taint tracking, workflows,
skills, knowledge graph, sessions, A2A, MCP templates, WASM sandbox, TUI dashboard,
production tools, CLI expansion, API expansion, learning productionization,
Tauri desktop app, and 10 new channels
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extend the eval framework to compute per-sample hardware efficiency
metrics when model hardware parameters are provided in TOML config:
- ModelConfig gains param_count_b, active_params_b, gpu_peak_tflops,
gpu_peak_bandwidth_gb_s, num_gpus fields
- RunConfig gains metadata dict, populated by expand_suite() from
model hardware params
- EvalRunner._process_one() computes IPW (Intelligence Per Watt),
IPJ (Intelligence Per Joule), MFU, and MBU per sample
- All telemetry fields (energy, power, GPU util, throughput, MFU, MBU,
IPW, IPJ) written to JSONL output and summary JSON
- RunSummary includes MetricStats (mean/median/min/max/std) for all
telemetry metrics plus total_energy_joules
- GLM-4.7-Flash eval config enriched with A100 SXM hardware params
- 146 eval tests pass (26 new tests for telemetry, efficiency metrics,
metadata flow, MetricStats helpers)
- User guide and API docs updated with new fields and output format
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rewrites the main docs/index.md to reflect the current five-pillar
structure (Intelligence, Agents, Tools, Engine, Learning) with
accurate descriptions of each. Updates project status to v1.5
Phase 10 complete, seven agent types, 1800+ tests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The openclaw_protocol, openclaw_transport, openclaw_plugin, and
openclaw_bridge modules are not installed in CI. Replace their
mkdocstrings auto-doc directives with note admonitions linking
to the architecture docs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reflects the new agent hierarchy (BaseAgent helpers, ToolUsingAgent
intermediate base, NativeReActAgent, NativeOpenHandsAgent, RLMAgent,
OpenHandsAgent SDK) across all architecture, user-guide, extending,
contributing, roadmap, and API reference pages. Removes CustomAgent
references and adds Mermaid diagrams for new agent types.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>