Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
346 commits
Select commit Hold shift + click to select a range
2a260b9
docs: 現在の実装に基づく設計内容の補完と更新
shin902 Apr 4, 2026
f97f929
docs: NanoClawの実装差分を設計に基づいて更新
shin902 Apr 4, 2026
1c6923a
docs: 設計内容のセクションを整理し、トリガー設計とスラッシュコマンドに関する情報を追加
shin902 Apr 4, 2026
3f987b0
Add documentation for conversation history management and ByteRover i…
shin902 Apr 4, 2026
652daf4
docs: スレッドベースアーキテクチャの設計分析を追加
shin902 Apr 4, 2026
778a209
docs: VRC-AI-Botの型定義を見直し、NanoClawへの取捨選択を反映
shin902 Apr 4, 2026
6e5c5d8
docs: VRC-AI-Botの型定義を見直し、NanoClawのグループモデルに統合
shin902 Apr 4, 2026
d433d8e
docs: スレッドベースアーキテクチャの背景とGroupType仕様を追加
shin902 Apr 4, 2026
3cd4226
docs: チャンネル別エージェント分離の設計と実装を追加
shin902 Apr 4, 2026
c0481d7
docs: Override実装設計を追加
shin902 Apr 5, 2026
3359f76
docs: グループタイプの設定方法をDBとIPCで拡張し、スキーマ変更を追加
shin902 Apr 5, 2026
427a936
docs: IPCのフィールド名を変更し、override設定の制限を追加
shin902 Apr 5, 2026
4963b12
docs: agent_configのデフォルトツール設定を更新し、GroupTypeの仕様を明確化
shin902 Apr 5, 2026
d1fb434
feat: isMain を GroupType に置き換え
shin902 Apr 5, 2026
0ae67c3
style: prettier フォーマット適用
shin902 Apr 5, 2026
69fd1d3
fix: NANOCLAW_GROUP_TYPE環境変数のバリデーション追加とGroupType再定義にコメント補足
shin902 Apr 5, 2026
afa762a
fix: Copilotレビュー指摘を一括修正
shin902 Apr 5, 2026
2efc3e4
fix: migrateJsonState時にlegacy isMain:trueをtype:'main'に変換する
shin902 Apr 5, 2026
1c0eb5d
refactor: ContainerInput.isMainを削除しgroupTypeに一本化
shin902 Apr 5, 2026
facde58
refactor: isMainを削除しgroupTypeのバリデーションを簡素化
shin902 Apr 5, 2026
ff86dd1
fix: group.typeの不正値を検証し、フォールバックを追加
shin902 Apr 5, 2026
5ce1ab6
Update src/db.ts
shin902 Apr 5, 2026
127d180
fix: settings.jsonの非オブジェクトガードとgroup-type.tsのlogger統一
shin902 Apr 5, 2026
d153185
fix: Copilotレビュー第3ラウンドの指摘3件を修正
shin902 Apr 5, 2026
0edf6f7
Update src/container-runner.ts
shin902 Apr 5, 2026
4c2a23d
Update src/container-runner.ts
shin902 Apr 5, 2026
54fe947
fix: コメントの整形と可読性向上
shin902 Apr 5, 2026
772caf0
fix: コメントの整形と可読性向上
shin902 Apr 5, 2026
fe6ac40
refactor: ipc-mcp-stdio.ts の isMain 変数を isPrivileged にリネーム
shin902 Apr 5, 2026
e69b53c
fix: Copilotレビュー第4ラウンドの指摘3件を修正
shin902 Apr 5, 2026
adf79ef
fix: ログメッセージの整形と可読性向上
shin902 Apr 5, 2026
020caae
feat: is_main カラムの完全削除に関する計画を追加
shin902 Apr 5, 2026
fdff67d
fix: update メイングループ references to 特権グループ(main/override) in ipc-mcp-st…
Copilot Apr 5, 2026
6117a38
fix: replace literal true with isPrivileged in writeGroupsSnapshot call
Copilot Apr 5, 2026
8305d6a
Update src/ipc.ts
shin902 Apr 5, 2026
bf24002
Update src/index.ts
shin902 Apr 5, 2026
a25b563
refactor: writeGroupsSnapshotの未使用引数registeredJidsを削除しコメント修正
shin902 Apr 5, 2026
d1dec62
Update src/container-runner.ts
shin902 Apr 5, 2026
17eefc9
Update container/agent-runner/src/ipc-mcp-stdio.ts
shin902 Apr 5, 2026
3b82bd4
Update src/ipc.ts
shin902 Apr 5, 2026
70e7f35
fix: add jid context to parseGroupType warn log for traceability
Copilot Apr 5, 2026
ea93972
test: add unit tests for resolveGroupType, hasPrivilege, getDefaultAl…
Copilot Apr 5, 2026
7dbeea0
Update src/index.ts
shin902 Apr 5, 2026
0a6f359
Update src/container-runner.ts
shin902 Apr 5, 2026
e508c80
Update src/container-runner.ts
shin902 Apr 5, 2026
834bd09
refactor: setup/register.tsのisMainをtype:'main'|'chat'に移行
shin902 Apr 6, 2026
5b6b2f0
refactor: resolve groupType once in runAgent and runScheduledTask to …
Copilot Apr 6, 2026
9524078
Update src/container-runner.ts
shin902 Apr 6, 2026
365ae44
Merge pull request #12 from shin902/feat/group-type
shin902 Apr 6, 2026
49b2ab8
docs(thread): thread-based architecture の設計ドキュメント追加
shin902 Apr 6, 2026
8373031
feat(thread): Discord thread を派生 group として自動登録 + session 分離
shin902 Apr 6, 2026
2ff4693
fix: improve thread auto-registration and group handling
shin902 Apr 6, 2026
0f350e4
Update src/types.ts
shin902 Apr 6, 2026
1c6acc2
Update src/index.ts
shin902 Apr 6, 2026
a742ce6
test(thread): add _autoRegisterThread integration tests covering chil…
Copilot Apr 6, 2026
fe5a983
style: fix spacing in Japanese comment (DB 永続化)
Copilot Apr 6, 2026
8e33853
fix(task-scheduler): resolve group by chat_jid instead of group_folder
Copilot Apr 7, 2026
b5479ef
fix(ipc): validate thread_defaults.type before persisting, reject pri…
Copilot Apr 7, 2026
1158fca
fix(thread): honor td.type ?? 'thread' in autoRegisterThread instead …
Copilot Apr 7, 2026
d4883b0
Update docs/thread-based-architecture/thread-implementation-plan.md
shin902 Apr 7, 2026
5f7e3b7
fix(ipc): fix JSDoc for validateThreadDefaults to reflect false/null …
Copilot Apr 7, 2026
e8ac041
fix(db): skip folder-keyed entries in sessions.json migration
Copilot Apr 7, 2026
066c471
docs: fix thread-implementation-plan to reflect actual onMessage/disc…
Copilot Apr 7, 2026
04eeffd
Update docs/thread-based-architecture/thread-implementation-plan.md
shin902 Apr 7, 2026
bdfe09f
fix: align thread defaults IPC/DB/docs with current behavior
Copilot Apr 10, 2026
bd08c4f
style: apply prettier formatting in ipc update_group branch
Copilot Apr 10, 2026
408fd34
fix: harden thread group persistence and runtime type safety
Copilot Apr 10, 2026
8f9c971
style: apply prettier formatting for db and index updates
Copilot Apr 10, 2026
7aa89ca
fix: make folder-unique migration robust and document runtime-corrupt…
Copilot Apr 10, 2026
3825b3c
style: format db migration index_list query
Copilot Apr 10, 2026
f5ee227
fix(discord): resolve DM/GroupDM to chat_channel type
shin902 Apr 11, 2026
d5a52cc
feat: Add IPC namespace encoding/decoding for chat JIDs
shin902 Apr 11, 2026
70d4b98
refactor: Simplify GroupQueue with improved error handling
shin902 Apr 11, 2026
5753b73
feat: Support parent folder mounts in container runner
shin902 Apr 11, 2026
81679d7
refactor: Update IPC handling for encoded chat JID namespaces
shin902 Apr 11, 2026
b553b5f
refactor: Update task scheduler and main orchestrator
shin902 Apr 11, 2026
2c6d97b
fix: reject reserved dot IPC namespace keys
Copilot Apr 11, 2026
ccc527f
fix: validate thread_defaults containerConfig in IPC
Copilot Apr 11, 2026
df97798
Update src/group-queue.ts
shin902 Apr 11, 2026
d1128c2
Update src/group-queue.ts
shin902 Apr 11, 2026
ed0e464
chore: make container config sanitize logs context-neutral
Copilot Apr 11, 2026
b969587
fix(ipc): validate message payload string types from IPC files
Copilot Apr 11, 2026
7a03c39
fix(ipc,db): sanitize register_group config and migrate WhatsApp sess…
Copilot Apr 11, 2026
062fe3b
Update src/index.ts
shin902 Apr 11, 2026
680e24d
fix(db): restrict session migration to known JID formats
Copilot Apr 11, 2026
268b92c
Merge pull request #14 from shin902/feat/thread-based-groups
shin902 Apr 11, 2026
ac5884d
feat: parent_folder サポートと URL→スレッド自動作成を追加
shin902 Apr 11, 2026
1c34e98
style: prettier フォーマット適用
shin902 Apr 11, 2026
0739c39
Fix URL watch reliability and spawned thread lifecycle
shin902 Apr 11, 2026
33c4f99
fix(test): vi.hoisted() でモック変数の TDZ エラーを修正
shin902 Apr 11, 2026
1fafef0
style: apply prettier formatting to fix code style issues
shin902 Apr 11, 2026
c670ecd
Potential fix for pull request finding
shin902 Apr 11, 2026
c90fb0f
Potential fix for pull request finding
shin902 Apr 11, 2026
27ef35b
Potential fix for pull request finding
shin902 Apr 11, 2026
7a9bb26
Potential fix for pull request finding
shin902 Apr 11, 2026
f54e5fb
Potential fix for pull request finding
shin902 Apr 11, 2026
5dc7052
Potential fix for pull request finding
shin902 Apr 11, 2026
6f09f40
Potential fix for pull request finding
shin902 Apr 11, 2026
1fb684d
Potential fix for pull request finding
shin902 Apr 11, 2026
ad5ab51
ログメッセージのフォーマットを改善し、エラーオブジェクトを含めるように変更
shin902 Apr 11, 2026
e7983aa
Merge remote changes
shin902 Apr 11, 2026
3c50e83
messageContainsUrl関数の引数を整形
shin902 Apr 11, 2026
c23de73
Potential fix for pull request finding
shin902 Apr 11, 2026
38ad2ac
Potential fix for pull request finding
shin902 Apr 11, 2026
ba2b0b4
Potential fix for pull request finding
shin902 Apr 11, 2026
fed70ca
Potential fix for pull request finding
shin902 Apr 11, 2026
46d40b2
Potential fix for pull request finding
shin902 Apr 11, 2026
d91155c
fix: improve readability of parseIpcChannelMode function
shin902 Apr 11, 2026
52d8ae7
Potential fix for pull request finding
shin902 Apr 11, 2026
90abc69
Potential fix for pull request finding
shin902 Apr 11, 2026
c8d9a99
Potential fix for pull request finding
shin902 Apr 11, 2026
f9d081d
Potential fix for pull request finding
shin902 Apr 11, 2026
6c74b37
Merge pull request #18 from shin902/feat/parent-folder-and-url-thread
shin902 Apr 11, 2026
4f5b236
refactor: simplify URL detection by removing messageContainsUrl
shin902 Apr 11, 2026
7432bdf
refactor: optimize URL matching by using global regex in spawnThreadF…
shin902 Apr 11, 2026
b094543
refactor: simplify URL regex initialization for global matching
shin902 Apr 12, 2026
d7a6112
refactor: update URL regex to include word boundaries and add boundar…
shin902 Apr 12, 2026
eb61f20
refactor: simplify URL boundary case tests in url-watch flow
shin902 Apr 12, 2026
e9a1384
Merge pull request #19 from shin902/refactor/simplify-url-detection
shin902 Apr 12, 2026
d782157
refactor: remove outdated project plan and simplify architecture for …
shin902 Apr 12, 2026
3298a50
refactor: remove word boundary checks from URL regex for improved det…
shin902 Apr 12, 2026
c4ff45a
refactor: remove redundant test code
shin902 Apr 12, 2026
037d831
Merge pull request: remove redundant test code
shin902 Apr 12, 2026
8b8862b
refactor: add .ai/ to .gitignore for improved file management
shin902 Apr 13, 2026
047eef4
feat: implement createThread method with optional messageId for linke…
shin902 Apr 13, 2026
f0f6641
refactor: format _maybeHandleUrlWatchMessage calls for improved reada…
shin902 Apr 13, 2026
6a137f2
Potential fix for pull request finding
shin902 Apr 13, 2026
f4a31a9
refactor: unify first URL extraction regex
shin902 Apr 13, 2026
12bc35a
Merge pull request #20 from shin902/feat/url-watch-discord
shin902 Apr 13, 2026
1855667
feat: update spawnThreadForUrl to mention assistant and mark message …
shin902 Apr 13, 2026
b9684f6
Fix url_watch initial thread processing
shin902 Apr 13, 2026
a586766
docs: add documentation for url_watch FOREIGN KEY constraint issue
openclaw-shi Apr 13, 2026
3ef7aa2
feat: update spawnThreadForUrl to mention assistant and mark message …
shin902 Apr 13, 2026
9a77852
Fix url_watch initial thread processing
shin902 Apr 13, 2026
7e8a4aa
docs: add documentation for url_watch FOREIGN KEY constraint issue
openclaw-shi Apr 13, 2026
cf2aee3
docs: add tasks for resolving url_watch FK constraint issues and impr…
shin902 Apr 13, 2026
78304b6
fix: improve url_watch thread initialization by ensuring metadata is …
openclaw-shi Apr 13, 2026
0b6c295
refactor: improve formatting and readability of isUrlWatchThreadGroup…
openclaw-shi Apr 13, 2026
5786433
refactor: simplify isUrlWatchThreadGroup and tag childGroup with chan…
shin902 Apr 14, 2026
ad32c29
docs: add documentation for streaming mode message processing delays …
openclaw-shi Apr 14, 2026
31dd74a
Update src/index.ts
shin902 Apr 14, 2026
9a6184b
docs: remove outdated tasks and bug documentation for url_watch FK co…
shin902 Apr 14, 2026
354f7b4
Update src/index.ts
shin902 Apr 14, 2026
b1be410
Update src/url-watch-flow.test.ts
shin902 Apr 14, 2026
e003598
Update src/index.ts
shin902 Apr 14, 2026
c7187ff
Merge origin/main: resolve conflicts keeping improved url_watch initi…
Copilot Apr 14, 2026
dc3e25f
fix: resolve merge conflicts with origin/main - keep improved url_wat…
Copilot Apr 14, 2026
73235cc
Merge origin/fix/url-watch-discord: incorporate remote improvements
Copilot Apr 14, 2026
a7d2f05
fix: resolve merge conflicts and incorporate all improvements
Copilot Apr 14, 2026
623c4ac
Update src/index.ts
shin902 Apr 14, 2026
53ffaf3
Merge pull request #21 from shin902/fix/url-watch-discord
shin902 Apr 14, 2026
ff52ee5
fix: update default IDLE_TIMEOUT to 5 minutes
shin902 Apr 14, 2026
27218fc
feat: migrate url_watch to thread_per_message
shin902 Apr 14, 2026
62bfd01
fix: NewMessage の import 漏れを修正
shin902 Apr 14, 2026
d102a69
fix: map legacy url_watch channel_mode to thread_per_message in IPC
Copilot Apr 14, 2026
7e4eb1d
Update docs/thread-based-architecture/background.md
shin902 Apr 14, 2026
233054d
Merge pull request #30 from shin902/feature/remove-url-watch-thread-all
shin902 Apr 14, 2026
4aeaa97
fix: credential proxy の ETIMEDOUT 対策と接続エラー処理を改善
openclaw-shi Apr 15, 2026
1fa7e4f
fix: req.on('close') を削除しテスト失敗を修正
openclaw-shi Apr 15, 2026
47c0bdb
refactor(credential-proxy): improve robustness with keepalive timing …
shin902 Apr 15, 2026
b3a1459
style: format upstreamHandler declaration for improved readability
shin902 Apr 15, 2026
480afe0
Merge pull request #33 from shin902/fix/credential-proxy-etimedout
shin902 Apr 15, 2026
b78523c
Update PR template to include Japanese review request
shin902 Apr 15, 2026
e1c0074
Add documentation for Open Agent SDK features and limitations
shin902 Apr 15, 2026
701df4e
Refactor code structure for improved readability and maintainability
shin902 Apr 16, 2026
f33adaf
fix: update open-agent-sdk dependency to version 0.1.0-alpha.1
shin902 Apr 16, 2026
a6542e4
feat: implement agent-runner migration for open-agent-sdk with Bun su…
shin902 Apr 16, 2026
ff24ff2
chore(agent-runner): consume forked open-agent-sdk via built tarball …
shin902 Apr 16, 2026
cf25235
feat: implement provider configuration and environment setup for mult…
shin902 Apr 16, 2026
d542fdd
refactor: improve code formatting and readability in various files
shin902 Apr 16, 2026
3a3f2b3
fix: improve error message for missing provider credentials in .env
shin902 Apr 16, 2026
032eb99
fix: correct formatting of error message for missing provider credent…
shin902 Apr 16, 2026
c984154
Potential fix for pull request finding
shin902 Apr 16, 2026
50d8a87
docs: Dockerfileのクレデンシャル注入コメントをプロバイダー別に更新
shin902 Apr 16, 2026
05f728e
fix: update open-agent-sdk entry in bun.lock to include sha512 hash
openclaw-shi Apr 16, 2026
e5ee013
fix: correct agent-browser installation command in Dockerfile
openclaw-shi Apr 16, 2026
1dc8b6f
fix: add npm installation to Dockerfile for agent-browser dependencies
openclaw-shi Apr 16, 2026
81b9e03
fix: remove git and npm installation from Dockerfile and use pre-buil…
openclaw-shi Apr 16, 2026
460d72e
fix: update Dockerfile to set ownership and user to 'bun' for writabl…
openclaw-shi Apr 16, 2026
1096590
fix: update container paths from '/home/node/.claude' to '/home/bun/.…
openclaw-shi Apr 16, 2026
74d6337
docs: PR #34 Copilotレビュー対応の仕様書とタスクリストを保存
shin902 Apr 16, 2026
b8b415f
feat: IPCフォローアップ機能と_close検知の改善
shin902 Apr 16, 2026
44f7b45
chore: .env.exampleに環境変数の詳細コメントを追加
shin902 Apr 16, 2026
d0a841a
docs: SECURITY.mdに直接認証情報注入のオプトイン要件を追加
shin902 Apr 16, 2026
1e38436
feat: ALLOW_DIRECT_SECRET_INJECTION対応の実装
shin902 Apr 16, 2026
e8ad98e
docs: Open Agent SDK deepwikiのモノレポ構造テーブルを更新
shin902 Apr 16, 2026
f50127b
docs: Update .env.example with Japanese comments for clarity
openclaw-shi Apr 16, 2026
41dca6a
refactor: Improve readability of assertDirectSecretInjectionAllowed f…
openclaw-shi Apr 16, 2026
cc5c988
feat: Add support for Codex authentication and update environment var…
openclaw-shi Apr 17, 2026
6b081dc
Merge pull request #34 from shin902/feat/migrate-open-agent-sdk
shin902 Apr 17, 2026
1226199
fix(security,runner): gate gemini/codex direct secret injection and s…
shin902 Apr 16, 2026
7182047
Add script to update open-agent-sdk fork and rebuild container
openclaw-shi Apr 18, 2026
4652b74
docs: 日本語訳を追加し、READMEの内容を更新
shin902 Apr 19, 2026
f88624d
docs: フォークの目的と特徴をREADMEに追加
shin902 Apr 19, 2026
62c676a
docs: READMEを更新し、フォークの目的を明確化
shin902 Apr 19, 2026
e5e0566
docs: CHANGELOGを更新し、shin902フォークの変更点を追加
shin902 Apr 19, 2026
0da84d0
docs: READMEにインスパイア元のプロジェクトを追加
shin902 Apr 19, 2026
0a92f35
docs: 新しいスキル「update-sdk」を追加し、open-agent-sdkの更新手順を文書化
openclaw-shi Apr 22, 2026
046dfb5
Implement feature X to enhance user experience and fix bug Y in module Z
openclaw-shi Apr 22, 2026
5d1068c
chore(container): bun.lockを更新し、package-lock.jsonをgitignoreに追加
openclaw-shi Apr 22, 2026
4c563d6
feat: add multi-provider support with nanoclaw.yaml config
shin902 Apr 23, 2026
4a3f814
feat: セッション復帰のロギングを改善し、nanoclaw.yamlキャッシュ機能を追加
shin902 Apr 23, 2026
a175bb7
feat: nanoclaw.yamlキャッシュ機能の改善とセッション管理の強化
shin902 Apr 23, 2026
c905ab7
feat: プロバイダー名のデコードエラーハンドリングを追加し、無効なプロバイダーに対するレスポンスを改善
shin902 Apr 23, 2026
5d1db7f
feat: Discord のみサポートし、他チャンネルのコードを削除
shin902 Apr 23, 2026
603ef7f
fix: PRレビュー指摘を対応
shin902 Apr 23, 2026
7ce55ce
chore: format codebase and improve agent-runner session resume
shin902 Apr 23, 2026
a833efe
chore: フォーマットの微調整
shin902 Apr 23, 2026
4612c8a
Merge pull request #48 from shin902/feat/discord-only
shin902 Apr 23, 2026
f42867a
perf: credential-proxyのターゲット解決にキャッシュを導入し、パフォーマンスを改善
shin902 Apr 23, 2026
51e4f63
Merge pull request #46 from shin902/feat/multi-provider-support
shin902 Apr 26, 2026
86cd788
feat: allow specific bot IDs to bypass Discord bot filter
openclaw-shi Apr 26, 2026
837abf5
fix: also read DISCORD_ALLOWED_BOT_IDS from process.env
openclaw-shi Apr 26, 2026
8ba66ff
feat: validate bot IDs, add startup log, and document env var
openclaw-shi Apr 26, 2026
6c7014b
docs: add note about service restart after updating DISCORD_ALLOWED_B…
openclaw-shi Apr 26, 2026
239c277
feat: enhance bot message handling to restrict allowed bots to specif…
openclaw-shi Apr 26, 2026
84e41c7
refactor: simplify isAllowedBot condition
openclaw-shi Apr 26, 2026
2ad6eb8
style: remove extra blank line (prettier)
openclaw-shi Apr 26, 2026
35b0018
feat: rename isAllowedBot to isPermittedBot and enhance logging for a…
shin902 Apr 26, 2026
75490ef
feat: refine bot message filtering to ensure only allowed bots can se…
shin902 Apr 26, 2026
df1377e
feat: update DiscordChannel to accept allowed bot IDs and read from e…
shin902 Apr 26, 2026
421c814
feat: use class property for allowedBotIds in message handling and lo…
shin902 Apr 26, 2026
8abdfa0
feat: add tests for allowed bot message filtering in DiscordChannel
shin902 Apr 26, 2026
2a4a6c8
feat: simplify bot permission check by assuming allowed bots have pas…
shin902 Apr 26, 2026
e565cac
feat: format constructor parameters and improve message handling read…
shin902 Apr 26, 2026
2773b42
Merge pull request #50 from shin902/feat/discord-allowed-bot-ids
shin902 Apr 26, 2026
d58a22f
docs: ソースコードの英語コメントを日本語に翻訳
shin902 Apr 26, 2026
910daa2
fix: 修正されたコメントのフォーマットを統一
shin902 Apr 26, 2026
3edcfdd
docs: formatLocalTime のテストセクションのコメントを日本語に翻訳
shin902 Apr 26, 2026
bfaed12
Merge pull request #52 from shin902/translate-comments-to-japanese
shin902 Apr 26, 2026
848e429
feat: RSSフィードの自動配信機能を追加
shin902 Apr 29, 2026
bab2d8b
style: コードのフォーマットを統一
shin902 Apr 29, 2026
34e2cde
feat: RSSフィードのクリーンアップ機能を追加し、テストを強化
shin902 Apr 29, 2026
866dbc0
feat: 不要な RssYaml インターフェースを削除し、RSSポーラーのログメッセージを改善
shin902 Apr 29, 2026
05da83f
feat: RSSポーラーのエラーハンドリングを改善し、IDフィールドを追加
shin902 Apr 29, 2026
107b4b0
style: コードの可読性向上のため、日付ソート処理の改行を追加
shin902 Apr 29, 2026
08cf0cf
feat: XMLパーサーの設定を変更し、エンティティ処理を有効化
shin902 Apr 29, 2026
6675f83
feat: RSSポーラーのメッセージ送信処理を改善し、レート制限を回避するための遅延を追加
shin902 Apr 29, 2026
5285d4f
feat: fetchFeed関数で無効なGUIDを持つエントリをフィルタリングする処理を削除
shin902 Apr 29, 2026
a5e5e43
feat: RSSポーラーのバースト送信時の遅延を定数化
shin902 Apr 29, 2026
097ac6b
fix: fetchFeed関数の戻り値のマッピング処理を簡潔に修正
shin902 Apr 29, 2026
1005d44
fix: SKILL.mdの最後に改行を追加
shin902 Apr 29, 2026
44c3c79
refactor: extractGuid関数の引数からindexを削除し、ユニーク化処理を簡素化
shin902 Apr 29, 2026
ba80959
feat: rss_seen_itemsテーブルにseen_atカラムのインデックスを追加
shin902 Apr 29, 2026
b7f97bd
feat: getSeenItemIds関数を追加し、複数のアイテムIDを一度のクエリで取得できるようにした
shin902 Apr 30, 2026
272c479
feat: getSeenItemIds関数の引数を整形し、可読性を向上させた
shin902 Apr 30, 2026
196024c
feat: RSSポーリングの安全性を向上させるためのガードを追加し、キャッシュ結果の再利用とファイルのmtime変更時の再読み込みをテスト
shin902 Apr 30, 2026
43a9fd2
Merge pull request #53 from shin902/feat/rss-feed-polling
shin902 Apr 30, 2026
0ef346a
feat: remove agents-sdk-docs from .gitignore and add nanoclaw.yaml
openclaw-shi May 2, 2026
d374c57
fix: Atom フィード(YouTube 等)の link 要素をオブジェクト形式で正しくパースする
openclaw-shi May 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions .ai/1/SPEC.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# 仕様書: PR #34 Copilot レビュー指摘事項の修正

## Goal

PR #34(Open Agent SDK への移行)に対する Copilot レビューの指摘事項を解消し、セキュリティリスクの低減・プリエンプション動作の正確化・IPC フォローアップ処理の改善を達成する。

---

## Context

- 対象リポジトリ: `shin902/nanoclaw`
- 対象ブランチ: `feat/migrate-open-agent-sdk`
- このPRはコンテナ側のエージェントランナーをレガシー Claude Agent SDK から Open Agent SDK (OAS) に移行し、複数 LLM プロバイダー対応(Anthropic / OpenAI / Gemini / Codex)と Bun ベースの依存管理を追加している
- 既存のシークレット分離設計: `src/env.ts` はシークレットを `process.env` に載せず、`.env` から直接読んで呼び出し元に返す設計。Anthropic / OpenAI は `credential-proxy` 経由でプレースホルダーをコンテナに渡し、実 API キーはホスト側のみが保持する
- Gemini / Codex は SDK の制約(BaseURL 上書き非対応)により現状は実 API キーをコンテナ環境変数に直接注入しているが、これがレビュー指摘の対象
- `container/agent-runner/src/index.ts` の `runQuery()` と `main()` の制御フローにプリエンプション処理と IPC ポーリングのギャップがある

---

## Acceptance Criteria

### 優先度: 高(セキュリティ)

#### 4. Gemini / Codex のシークレット分離

- [ ] `buildContainerProviderEnv()` が `GEMINI_API_KEY` / `OAS_CODEX_OAUTH_JSON` を直接コンテナ環境変数に注入している現状を変更する
- [ ] 下記いずれかの方式で対応する(実装方式の選択は実装者に委ねる):
- **方式 A (credential-proxy 拡張)**: `credential-proxy.ts` を Gemini / Codex プロバイダー向けに拡張し、コンテナへはプレースホルダーのみ渡す。プロキシがリクエストに実 API キーを付加する
- **方式 B (明示的オプトインフラグ)**: 直接注入を維持する場合、`.env` に `ALLOW_DIRECT_SECRET_INJECTION=true` 等の明示フラグが必要で、フラグなしは起動拒否。合わせてドキュメントにリスクと回避策を記載する
- [ ] Anthropic / OpenAI の既存プレースホルダー方式は変更しない

### 優先度: 高(バグ修正)

#### 3 & 5. `_close` プリエンプション処理の修正

**背景と根本原因の補足(Copilot PR #34 コメント, line 683 より):**

- ホスト側(`src/container-runner.ts`)は `OUTPUT_START_MARKER` を受信するたびにハードタイムアウトをリセットする(line 433)
- `shouldClose()` は `_close` センチネルファイルを**削除しながら読む消費型**(delete-on-read)設計のため、一度 `true` を返すと以降は常に `false` を返す
- ストリームループ内(`for await`)で `shouldClose()` が `true` を返してファイルを削除した後、その下流の `writeOutput()` 前チェック(line 778)でも `shouldClose()` を呼んでいるが、ファイルはすでに消えているため `false` になるリスクがある
- `requestExit()` が `shouldExit = true` にセットするフローは存在するが、`stopIpcPolling()` 後から `writeOutput()` 呼び出しまでの `await followupSendChain`(line 776)の間にセンチネルが届いた場合、バックグラウンドポーリングはすでに停止しているため検知できない
- 結果として、closeシグナルが届いた後も `writeOutput()` が実行され、ホスト側のタイムアウトがリセットされ、古いコンテナが動き続ける可能性がある

**Acceptance Criteria:**

- [ ] `writeOutput()` の呼び出し直前のガードは `shouldClose()` の再呼び出しに依存せず、**`shouldExit` フラグのみを参照する**形で機能すること
- [ ] `stopIpcPolling()` 後から `writeOutput()` 直前までのウィンドウで `_close` センチネルが届いた場合にも `writeOutput()` がスキップされること(`await followupSendChain` 完了後に再チェックするか、またはその他の確実な方法で対応する)
- [ ] `runQuery()` がストリーミング完了後に OUTPUT マーカーを出力するのは `shouldExit` が `false` の場合のみ
- [ ] 結果として、`_close` センチネル受信後はホスト側のハードタイムアウトをリセットさせる OUTPUT マーカーが出力されない
- [ ] 既存の「ストリームループ中に `_close` を検知したら `break` してリターン」の動作は維持する

### 優先度: 中(機能改善)

#### 2. IPC フォローアップメッセージのポーリング

- [ ] `session.stream()` の `for await` ループ内で、各メッセージ受信のたびに `drainIpcInput()` を呼び出し、蓄積された IPC メッセージをアクティブセッションに転送(`session.send()`)する
- [ ] または、ホスト側の `GroupQueue.sendMessage()` が IPC 書き込みのタイミングをストリーム完了後に遅延させる方式でも可(実装者に委ねる)
- [ ] いずれの方式でも、長時間のツール / LLM 実行中にホストが送信したメッセージがストリーム終了まで無視されないことを保証する

### 優先度: 低(ドキュメント)

#### 1. Monorepo Structure テーブルの修正

- [ ] `docs/OasAIStudio-open-agent-sdk/OasAIStudio-open-agent-sdk-deepwiki.md` の "Monorepo Structure" テーブルで "Package Path" 列が空になっている
- [ ] パッケージのパスが特定できる場合は正しいパスを記入する。特定できない場合はテーブルごと削除する

---

## Out of Scope

- Gemini / Codex 以外のプロバイダー(Anthropic / OpenAI)の credential-proxy 実装への変更
- OAS 以外の他 SDK への移行
- IPC プロトコル自体の仕様変更
- 既存のテストの大規模リファクタリング
- 新規プロバイダーの追加

---

## Notes

- 修正の優先順位は セキュリティ (4) > バグ修正 (3, 5) > 機能改善 (2) > ドキュメント (1) の順で着手すること
- 指摘 3 と 5 は同一の制御フロー問題を異なる観点から指摘しているため、まとめて一つの修正として対応してよい
- `credential-proxy.ts` を拡張する場合(方式 A)、Google の API 認証方式(Bearer ヘッダー vs API キークエリパラメータ)を事前に調査すること
- コンテナ側(`container/agent-runner/src/index.ts`)の変更後は `./container/build.sh` によるイメージ再ビルドが必要
26 changes: 26 additions & 0 deletions .ai/1/TASKS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Tasks
## Summary
PR #34 の Copilot レビュー指摘を解消し、シークレット分離強化・_close プリエンプションの正確化・IPC フォローアップ反映・関連ドキュメント整備を完了する。

## Tasks
### 1. Gemini/Codex のシークレット分離ポリシーを是正する
- Why: Acceptance Criteria 4(高優先度セキュリティ)で、`GEMINI_API_KEY` と `OAS_CODEX_OAUTH_JSON` のコンテナ直接注入を見直し、デフォルトで安全な取り扱いへ修正する必要があるため。
- What: プロバイダー設定とコンテナ環境変数生成の契約を更新し、Gemini/Codex の認証情報を Anthropic/OpenAI と同等の分離方針、または明示的オプトイン前提の方針に統一する。必要な利用者向けリスク説明も整備する。
- Done when: Gemini/Codex の認証情報がデフォルトでコンテナへ露出しない、または明示フラグなしで起動拒否される状態になっており、Anthropic/OpenAI の既存プレースホルダー方式が維持されている。

### 2. _close センチネル時の出力抑止と終了シグナルを統一する
- Why: Acceptance Criteria 3 & 5(高優先度バグ修正)で、`_close` 受信後に不要な OUTPUT マーカーが出てホスト側アクティビティとして扱われる問題を解消する必要があるため。
- What: `runQuery()` と `main()` の終了判定を連動させ、`_close` 検知時はクエリ結果出力・セッション更新出力の双方が抑止されるように、終了シグナルの受け渡し契約を明確化する。
- Done when: `_close` 検知後は `runQuery()` から終了シグナルが返り、`main()` は追加の `writeOutput` を行わずループを終了し、ホスト側のアイドルタイマーを不要に延命する出力が発生しない。

### 3. 長時間ストリーム中の IPC フォローアップ反映を保証する
- Why: Acceptance Criteria 2(中優先度機能改善)で、実行中に届いた追撃メッセージがストリーム完了まで無視される遅延を解消する必要があるため。
- What: アクティブセッション実行中でも IPC 入力を継続的に取り込み、到着したフォローアップをセッションへ反映できる処理契約に更新する。
- Done when: 長時間のツール/LLM 実行中にホストから送信したメッセージがストリーム終了待ちにならず、実行中セッションに取り込まれることが確認できる。

### 4. Open Agent SDK DeepWiki ドキュメントの Monorepo 表記を修正する
- Why: Acceptance Criteria 1(低優先度ドキュメント)で、Monorepo Structure の記述不整合を解消する必要があるため。
- What: `docs/OasAIStudio-open-agent-sdk/OasAIStudio-open-agent-sdk-deepwiki.md` の Monorepo Structure セクションを見直し、パッケージパスを特定できる項目は明記し、特定不能な場合は不正確な表記を除去する。
- Done when: Monorepo Structure セクションに空欄や不整合が残っておらず、読者が各コンポーネントの位置関係を誤解しない状態になっている。

---
203 changes: 0 additions & 203 deletions .claude/skills/add-discord/SKILL.md

This file was deleted.

Loading
Loading