文件历史

提交图

44 次代码提交

作者 SHA1 备注 提交日期
WcW 175fe501a6 fix(ohmo-init): add domain prompt to feishu setup flow
ohmo init rewrites gateway.json without a domain field, undoing the
larksuite.com fix on every reconfigure. Add a domain selector so the
choice is persisted through init.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 16:48:07 +08:00
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 c6b7552008 fix(telegram): hide bot tokens in dependency logs
Silence Telegram HTTP dependency loggers before polling starts, keep pending updates by default, and surface channel startup/handler failures through gateway state.
2026-05-16 11:50:59 +00:00
Jiabin Tang 1929ad8051 feat(ohmo): add agent-turn cron delivery (#247) 2026-05-10 16:55:10 +08:00
Jiabin Tang f61901e842 feat(memory): add auto-dream consolidation (#246)
Add auto-dream memory consolidation with lock-based scheduling, manual /dream commands, backup/diff/rollback support, and ohmo integration for project and personal memory.
2026-05-09 14:09:55 +08:00
Jiabin Tang 0c6b81d61f feat: add configurable image generation tool (#244)
Add a configurable image_generation tool with OpenAI-compatible and Codex hosted providers, propagate generated media metadata through stream events, and let ohmo channels send generated image/file paths automatically.
2026-05-09 13:18:23 +08:00
tjb-tech a0f8552c69 chore(release): prepare v0.1.9 2026-05-07 11:08:58 +00:00
tjb-tech 0e557a65d3 feat(skills): expose user-invocable skills as slash commands 2026-05-06 13:43:39 +00:00
tjb-tech a07837c657 chore(release): prepare v0.1.8 2026-05-06 12:56:08 +00:00
tjb-tech 807e3ecd47 fix(ohmo): respect Feishu group mention policy 2026-05-06 12:46:28 +00:00
tjb-tech 0528a7a2c2 fix(ohmo): isolate group command context 2026-05-06 09:55:38 +00:00
tjb-tech 8f30deffe9 feat(ohmo): add gateway-scoped model provider commands 2026-05-06 09:10:38 +00:00
tjb-tech 52a0551569 feat(ohmo): add Feishu group creation flow
Add an ohmo-only /group flow for Feishu private chats, persist managed group metadata, and route shared-chat sessions safely. Also update Feishu reply handling and gateway tests for private/group behavior.
2026-05-06 08:44:17 +00:00
Anciety 56a954a0a9 fix(gateway): support Windows process lifecycle (#193)
The ohmo gateway process management (start, find, stop) only worked on
Unix-like systems. On Windows, all three operations fail:

- start_gateway_process: uses start_new_session=True (no equivalent on
  Windows; also lacks stdin=DEVNULL which causes the subprocess to
  inherit the parent's console input)
- _pid_is_running: uses os.kill(pid, 0) which raises PermissionError
  for processes the caller doesn't own on Windows
- _iter_workspace_gateway_pids: shells out to `ps`, which doesn't exist
  on Windows
- stop_gateway_process: uses os.kill(pid, SIGTERM), which is not
  supported on Windows

Replace each with a Windows-compatible path guarded by sys.platform:

- Start: CREATE_NEW_PROCESS_GROUP | DETACHED_PROCESS, stdin=DEVNULL
- PID check: OpenProcess/GetExitCodeProcess via ctypes (STILL_ACTIVE)
- PID listing: wmic process where commandline like ... get processid
- Stop: taskkill /F /T /PID

The Unix paths remain unchanged.

Co-authored-by: ancietyding <ancietyding@tencent.com>
2026-05-03 16:52:23 +08:00
tjb-tech 47e0e93387 fix(gateway): degrade image attachments for text-only models
Support absolute glob patterns without crashing and retry ohmo channel messages without ImageBlocks when a provider rejects image input.\n\nFixes #225\nFixes #226
2026-05-02 14:04:25 +00:00
tjb-tech cc825efb83 fix(ohmo): isolate personal memory from project memory 2026-04-29 08:47:58 +00:00
tjb-tech df7fde80e8 fix(session): sanitize dangling tool calls on restore 2026-04-20 05:10:57 +00:00
tjb-tech 35fb12d5da release: publish 0.1.7 2026-04-18 14:45:36 +00:00
Hinotobi 3186851c47 fix(ohmo): isolate shared-chat sessions by sender (#159) 2026-04-17 17:45:19 +08:00
tjb-tech 67617e6eb5 fix(ohmo): restore runtime system prompt after startup 2026-04-16 12:52:11 +00:00
Hinotobi fab40c6eab fix(ohmo): secure default remote channel allowlists (#147) 2026-04-15 20:31:46 +08:00
tjb-tech ce84a6a1a2 fix(session): sanitize empty assistant messages and add windows alias 2026-04-14 08:51:33 +00:00
hehe1111 45fb335db0 fix(feishu): reply in group threads instead of creating new topics (#125)
The Feishu channel did not support replying inside group topic threads.
Every bot response created a new top-level message, making conversations
in topic-enabled groups fragmented.

Three changes:

1. feishu.py: include thread_id/root_id in inbound metadata so that
   router.py can create per-topic session keys for group chats.

2. feishu.py: add reply_in_thread support to _send_message_sync using
   the lark-oapi ReplyMessageRequest with .reply_in_thread(True).

3. bridge.py: forward inbound message_id to OutboundMessage metadata
   so the Feishu channel can use it for thread replies.
2026-04-13 16:25:28 +08:00
Hinotobi dd1d235450 fix: harden gateway slash command security (#127)
* fix: harden gateway slash command security

* fix: add secure remote admin opt-in for gateway commands
2026-04-13 16:24:20 +08:00
José Maia 4857439e50 fix(persistence): atomic writes and locks for shared state (#128)
Files under ~/.openharness/ — credentials, settings, session snapshots,
cron registry, memory index — were written with `Path.write_text()` in
truncating mode. A crash, SIGKILL, power loss, or out-of-disk error
during the write leaves a truncated file on disk; concurrent writers
clobber each other's updates; and the credentials file spent a brief
window at the default umask mode (commonly 0o644) before chmod-to-0600
ran.

Introduce `openharness.utils.fs.atomic_write_text` / `atomic_write_bytes`
which write to a same-directory temp file, fsync, apply the target mode
while the file is still private, and `os.replace` into place. Thread
them through all persistence writers. For read-modify-write on shared
files (credentials, settings, cron, memory index), pair atomic writes
with the existing `exclusive_file_lock` primitive so two `oh` processes
no longer race.

The generic lock helper moves from `openharness.swarm.lockfile` to
`openharness.utils.file_lock`. `swarm.lockfile` is retained as a thin
re-export so existing callers keep working.

Co-authored-by: José Maia <glitch-ux@users.noreply.github.com>
2026-04-13 12:40:24 +08:00
tjb-tech e2ed3ad6fe chore(release): bump version to 0.1.6 2026-04-10 12:38:10 +00:00
tjb-tech a6931b7698 feat(compact): improve task-state carry-over and channel logging 2026-04-10 11:26:16 +00:00
tjb-tech aca4016898 feat(compact): align lifecycle and carry-over behavior 2026-04-10 08:17:10 +00:00
tjb-tech 4e16ce0ffa feat(installer): improve dev setup and gateway restart flow 2026-04-10 06:28:02 +00:00
tjb-tech 038d0a7956 fix(ci): restore import order and improve running feedback 2026-04-10 04:08:35 +00:00
tjb-tech 27abeae3eb Merge #88 and fix agent team creation 2026-04-10 03:59:44 +00:00
tjb-tech a890f4eef5 fix(ci): restore runtime helper import 2026-04-09 12:35:52 +00:00
tjb-tech 6fbc61fc13 fix(ohmo): support channel slash commands and stabilize tests 2026-04-09 12:31:40 +00:00
卢志良 54119ce1cf fix(ohmo): align user profile docs with user.md path 2026-04-09 14:36:49 +08:00
tjb-tech a4d45408ff release: ship 0.1.5 2026-04-08 15:10:08 +00:00
tjb-tech 0b5de01587 feat(ohmo): support channel attachments and multimodal gateway messages 2026-04-08 14:16:01 +00:00
tjb-tech 2f6f8b01d6 release: ship 0.1.4 fixes and ohmo updates 2026-04-08 09:53:39 +00:00
tjb-tech 32caf0f381 fix(gateway): improve codex runtime diagnostics 2026-04-08 07:22:08 +00:00
tjb-tech 7b6964d221 feat(ohmo): update gateway and session storage changes 2026-04-07 15:30:21 +00:00
tjb-tech 2b0fddd32b fix(auth): improve claude subscription refresh handling 2026-04-07 05:32:55 +00:00
tjb-tech b1e6a83b2a chore(release): bump version to 0.1.2 2026-04-06 13:44:54 +00:00
tjb-tech 3558ae6e57 feat(cli): streamline provider setup flows 2026-04-06 13:29:46 +00:00
tjb-tech 291183e5df feat(ohmo): add config flow for gateway setup 2026-04-06 12:28:35 +00:00
tjb-tech 50e7e3a508 feat(ohmo): add personal agent app and gateway 2026-04-06 12:06:54 +00:00