文件历史

提交图

16 次代码提交

作者 SHA1 备注 提交日期
Yang XiuYuan 6747d12385 feat(memory): add structured schema and usage index (#266)
* feat(memory): add structured schema and usage index

Add schema-v1 frontmatter for memory files, including stable ids, deterministic signatures, soft delete metadata, TTL handling, and migration support for legacy stores.

Track recalled memories in usage_index.json so retrieval can prioritize useful memories and auto-dream can review stale unused entries before pruning.

Keep project and ohmo memory backends aligned under the same behavior while preserving runtime compatibility for unmigrated Markdown files.

* fix(memory): make backend migration defaults explicit
2026-05-17 14:01:24 +08:00
tjb-tech 04f8747ab6 fix(install): register commands in ~/.local/bin 2026-04-17 11:42:01 +00:00
José Maia 4090728163 fix(installer): detect installed launcher instead of hard-coding openh (#145)
The Windows PowerShell installer (scripts/install.ps1) hard-coded openh.exe
as the expected binary and printed "Launch (PowerShell): openh" in the
final instructions. The `openh` console-script alias was added in ce84a6a,
which landed after the v0.1.6 tag — so `pip install openharness-ai`
(the default install path) fetches a wheel whose entry_points.txt only
declares `oh`, `ohmo`, and `openharness`. openh.exe is never created, and
users follow the install banner straight into a "not recognized" error
(issue #144).

Instead of requiring a new PyPI release before the installer becomes
correct, detect which launcher the wheel actually produced and guide the
user to it. Preference order: openh (no shell collisions) -> openharness
(no collisions, always present) -> oh (collides with PowerShell's
Out-Host alias unless invoked as oh.exe).

Verification now succeeds against whichever launcher exists, and the
final "Next steps" block recommends the matching command along with the
relevant Out-Host caveat.

Co-authored-by: José Maia <glitch-ux@users.noreply.github.com>
2026-04-15 14:52:53 +08:00
tjb-tech ce84a6a1a2 fix(session): sanitize empty assistant messages and add windows alias 2026-04-14 08:51:33 +00:00
benben951 e537ba9867 chore(installer): add native Windows PowerShell installer (#118) 2026-04-13 20:28:42 +08:00
José Maia 508937c996 feat(sandbox): add Docker sandbox backend (#121)
The existing srt/bubblewrap sandbox only wraps shell commands — file I/O
tools bypass it entirely via direct Python calls. This adds Docker as a
second sandbox backend that provides container-level isolation for tool
execution while keeping the engine and API keys on the host.

- Add DockerSandboxSettings with image, resource limits, and env config
- Add backend field to SandboxSettings ("srt" or "docker")
- Implement DockerSandboxSession: long-running container per session
- Route shell, glob, and grep subprocess calls through docker exec
- Add path validation for file tools when Docker sandbox is active
- Auto-build default sandbox image (python:3.11-slim + ripgrep + git)
- Network isolation: --network=none by default, bridge when domains allowed
- Lifecycle integration: container starts/stops with the session
- atexit safety net for cleanup on unexpected exit
- 34 unit tests, 19 E2E tests (require Docker daemon)

Co-authored-by: José Maia <glitch-ux@users.noreply.github.com>
2026-04-12 14:22:37 +08:00
tjb-tech ab7f0a3a52 fix(install): recreate incomplete venv before activation
Fixes #94.
2026-04-10 07:12:09 +00:00
tjb-tech 4e16ce0ffa feat(installer): improve dev setup and gateway restart flow 2026-04-10 06:28:02 +00:00
tjb-tech ca657cd68c fix(install): use venv to avoid PEP 668 externally-managed error
Python 3.11+ blocks system-wide pip install. Now the installer creates
~/.openharness-venv, installs into it, and adds venv/bin to PATH via
shell profile (~/.zshrc or ~/.bashrc).
2026-04-05 14:34:33 +00:00
tjb-tech c00e73f9d1 chore: publish as openharness-ai on PyPI
Package name 'openharness' was taken. Published as 'openharness-ai' v0.1.0.
https://pypi.org/project/openharness-ai/0.1.0/

Updated install.sh to use: pip install openharness-ai
2026-04-05 13:28:34 +00:00
tjb-tech 68e7922469 fix(eval): handle file-target grep and refresh real e2e scripts 2026-04-05 12:58:51 +00:00
tjb-tech 1c506e3ccd Merge branch 'clawteam/openharness-dev/channels-agent' 2026-04-05 10:22:58 +00:00
tjb-tech ab37aaca9a feat(channels): port nanobot channels+bus to OpenHarness
- Adds src/openharness/channels/{bus/,impl/} from nanobot commit 473ae5e
- Rewrites all imports: nanobot.bus → openharness.channels.bus,
  nanobot.channels → openharness.channels.impl
- Replaces loguru with stdlib logging throughout
- Adds channels/__init__.py exporting BaseChannel, ChannelManager, MessageBus
- Adds channels/adapter.py: ChannelBridge wiring MessageBus ↔ QueryEngine.submit_message()
- Adds channels/UPSTREAM tracking upstream repo/commit/sync time
- Adds scripts/sync_nanobot_channels.sh for future upstream diffs/applies
- All files pass ruff check

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 10:09:09 +00:00
tjb-tech d40cc05c51 feat(install): add one-click bash installer script
Add scripts/install.sh supporting `curl -fsSL URL | bash` installation:
- Detects OS (Linux/macOS/WSL) with colored output
- Validates Python >= 3.10 and Node.js >= 18 with install hints
- Supports --from-source (git clone + pip install -e .)
- Supports --with-channels (slack-sdk, python-telegram-bot, discord.py)
- Installs npm deps in frontend/terminal if Node.js is available
- Creates ~/.openharness/ config directory
- Verifies installation with `oh --version`

Update README.md with one-click install section and usage examples.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 10:07:11 +00:00
tjb-tech aab665492f docs: add repo docs and CI scaffolding 2026-04-03 04:58:40 +00:00
tjb-tech 5dd8b952ec Initial release: oh — OpenHarness: Open Agent Harness v0.1.0
A lightweight open-source Python implementation of the Agent Harness architecture.
44x lighter than Claude Code (11K vs 512K lines), 98% core tool coverage.

- 43 tools with Pydantic validation and parallel execution
- Skills system compatible with anthropics/skills (17+ tested)
- Plugin system compatible with claude-code/plugins (12+ tested)
- API retry with exponential backoff
- Multi-level permissions with path rules
- React/Ink TUI with "Oh my Harness!" branding
- 114 unit tests + 6 E2E test suites
- MIT License
2026-04-01 16:32:25 +00:00