fix: Atom フィード(YouTube等)の link 要素をオブジェクト形式で正しくパースする#2190
fix: Atom フィード(YouTube等)の link 要素をオブジェクト形式で正しくパースする#2190openclaw-shi wants to merge 346 commits intoqwibitai:mainfrom
Conversation
…ntegration - Created a new document detailing the conversation history saving mechanism in AnimaWorks, including storage locations, lifecycle, and compression details. - Added a new document introducing ByteRover, highlighting its features, installation process, and benefits for memory management in OpenClaw. - Summarized key points from a video about ByteRover, outlining existing challenges with OpenClaw and how ByteRover addresses them.
- `GroupType = 'override' | 'main' | 'chat' | 'thread'` を追加 - `RegisteredGroup.isMain` を `RegisteredGroup.type` に置き換え - DB マイグレーション: `group_type TEXT` カラム追加、`is_main` からの自動変換 - `src/group-type.ts` 新規追加: `resolveGroupType`, `hasPrivilege`, `getDefaultAllowedTools` - IPC 拡張: `register_group` に `group_type` フィールド、`update_group` 新規追加 - override は IPC 経由で設定不可(セキュリティ防御) - type ごとのデフォルト allowedTools: override/main は制限なし、chat/thread は `['Read']` - コンテナ・スケジューラ・マウントセキュリティ全体を `type` ベースに移行 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ipc.ts: register_groupコメントをmain/overrideに修正 - ipc.ts: 不正group_typeを警告ログ+拒否に変更(サイレントフォールバック廃止) - group-type.ts/ipc.ts/db.ts: VALID_GROUP_TYPESを共通化 - index.ts: isMainGroup変数名をisPrivilegedに変更 - mount-security.ts: 引数名isMainをisPrivilegedに変更 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
setRegisteredGroupがgroup.typeのみ参照するため、旧registered_groups.jsonの isMain:trueエントリがtype未設定のまま'chat'として保存されてしまうバグを修正。 group.typeが未設定かつisMain===trueの場合は'main'にフォールバックする。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@deprecatedだったisMainフィールドを完全削除。 index.tsのisMain変数もisPrivilegedにリネーム。 コンテナ側のisMainフォールバックロジックも削除。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- container-runner.ts: JSON.parse結果がnull/配列/プリミティブの場合にTypeErrorで
コンテナが落ちるバグを修正。オブジェクト検証を追加し非オブジェクトは{}扱いに
- group-type.ts: console.warnをlogger.warnに変更しログ経路を統一
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ipc.ts: group_type の空文字を不正扱いにするため hasOwnProperty で存在判定を分離 - agent-runner/index.ts: containerInput.groupType を allowedGroupTypes で検証しフォールバック - container-runner.ts: existingEnv のマージ前に文字列値のみフィルタして型安全性を確保 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
groupType から導出した特権フラグの変数名を実態に合わせて統一。 IPC ファイルへの書き出しフィールド名も isPrivileged に変更。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- db.ts parseGroupType: NULLのみis_mainフォールバック、不正文字列は警告+'chat' - ipc-mcp-stdio.ts: ホスト側未使用のisPrivilegedフィールドをIPCペイロードから削除 - container-runner.ts: settings.jsonパース失敗時に警告ログを追加 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
docs: ソースコードの英語コメントを日本語に翻訳
nanoclaw.yaml にチャンネル別RSSフィード設定を追加し、15分ポーリングで新着記事URLを自動配信する。 - rss-config.ts: nanoclaw.yaml の rss.channels 読み込み - db.ts: rss_seen_items テーブルと既読管理関数を追加 - rss-poller.ts: 15分間隔ポーリング、fast-xml-parser でRSS/Atomパース - index.ts: startRssPoller を main() に統合 - setup-rss スキル: RSS設定手順を追加 - rss.test.ts: 設定読み込み・既読管理・ポーラーのテストを追加
Co-authored-by: Copilot <copilot@github.com>
fix: pollOnce関数で未登録のチャンネルをスキップするロジックを修正 test: getSeenItemIdsのユニットテストを追加
refactor: sortByPubDate関数のコードスタイルを改善し、可読性を向上させた
feat: RSSフィードの自動配信機能を追加
fast-xml-parser が <link rel="alternate" href="..."/> を文字列でなく オブジェクトまたは配列として返すため、link?.trim() が TypeError になっていた。 extractLink() ヘルパーで string / object / array の各形式を統一処理する。 Atom フィードの pubDate 相当フィールド(published / updated)も日付ソートに使用する。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
誤って upstream に出してしまったため閉じます。 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d374c57d15
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| return envPath.startsWith('~') | ||
| ? path.join(os.homedir(), envPath.slice(1)) | ||
| : envPath; |
There was a problem hiding this comment.
Expand
~/ auth paths relative to home directory
When OAS_CODEX_AUTH_PATH is set to a common ~/... value, envPath.slice(1) leaves a leading slash (for example "/.codex/auth.json"), so path.join(os.homedir(), envPath.slice(1)) resolves to the filesystem root path instead of the user’s home directory. In that case the code reads /.codex/auth.json, fails to find valid credentials, and incorrectly treats Codex as unconfigured even though ~/.codex/auth.json exists.
Useful? React with 👍 / 👎.
Summary
fast-xml-parserが<link rel="alternate" href="..."/>を文字列でなくオブジェクト/配列として返すため、link?.trim()がTypeErrorになりポーラーが即クラッシュしていたextractLink()ヘルパーを追加し、string/{ '@_href' }/Array<{ '@_href', '@_rel' }>の各形式を統一処理RssItemに Atom フィード用のpublished/updatedフィールドを追加し、日付ソートに使用extractGuid()でもextractLink()を利用するよう修正Test plan
linkが文字列)でも引き続き動作することを確認npm run buildが通ること🤖 Generated with Claude Code