posimai
1dbfc76969
chore: update posimai-guard submodule pointer
2026-04-25 00:07:26 +09:00
posimai
8a015a9c9d
chore: update posimai-guard submodule pointer
2026-04-25 00:07:05 +09:00
posimai
869dc14a23
chore: update posimai-guard submodule pointer
2026-04-25 00:02:25 +09:00
posimai
c00241775e
chore: update posimai-guard submodule pointer
2026-04-24 23:44:55 +09:00
posimai
f0c1ee452f
docs(status): セキュリティ保留案件を他AI見解待ちとして記録
...
JWT localStorage設計とexpress.static公開範囲について
Claude Codeが判断を留保した理由と問いを STATUS.md に追記。
他AIからの見解を求めるため。
2026-04-24 21:02:12 +09:00
posimai
33100d9efc
security(posimai-dev): セッション API パストラバーサル修正
...
/api/sessions/:id で path.join 後に SESSIONS_DIR 外への逸脱を検証。
正常な ID(UUID 等)には影響なし。requireLocal により localhost/Tailscale 限定だが念のため多層防御。
2026-04-24 20:48:06 +09:00
posimai
7c6ecb77bc
security(dev): SSRF fix, WS limit, log rotation, BIND_HOST, sw.js API cache skip, .gitignore
...
- /api/check: add requireLocal + block 100.x/IPv6 in SSRF filter
- WebSocket: limit concurrent sessions to 3
- Session logs: auto-prune after 30 days
- server.listen: respect BIND_HOST env var
- sw.js: exclude /api/* from cache
- .gitignore: protect .env and node_modules
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 16:44:01 +09:00
posimai
426057960a
fix(dev): replace hardcoded #F3F4F6 with var(--text), scope header/icon-btn overrides
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 16:33:27 +09:00
posimai
4cea8d70b7
chore: update posimai-guard submodule pointer
2026-04-24 10:25:46 +09:00
posimai
0640c80b8e
fix(dev): rename .content to .sessions-content, fix :root accent override
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 07:53:41 +09:00
posimai
2f4d5beb28
chore: posimai-chronicle 追加に伴うサブモジュールポインタ更新
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 16:20:54 +09:00
posimai
bdcd6fab62
chore: update posimai-guard submodule pointer
2026-04-23 00:07:55 +09:00
posimai
3925514cc9
security(csp): posimai-sc connect-src絞り込み
...
connect-srcをapi.soar-enrich.comのみに限定。
Alpine.js使用のためunsafe-evalは維持。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 00:07:26 +09:00
posimai
6b05fc961d
fix(deploy): docker compose restart → up -d で .env 変更を確実に反映
2026-04-22 12:56:58 +09:00
posimai
4f6be0a21e
fix(together): アーカイブSQL構文エラー修正(JS側でホスト名判定に変更)
2026-04-22 12:54:58 +09:00
posimai
5d1b6dfb2b
fix(together): CASE文の型キャスト修正でアーカイブSQL修復
2026-04-22 12:54:24 +09:00
posimai
7446568adf
fix(together): x.com などドメイン名タイトルをJina取得タイトルで上書き
2026-04-22 10:21:00 +09:00
posimai
324d892b28
fix(together): x.com ボット拒否検出・Gemini JSONコードブロック除去
2026-04-22 10:08:18 +09:00
posimai
9f0bb8eae7
fix(together): x.com 埋め込みURLのトラッキングパラメータを除去してJina取得精度改善
2026-04-22 10:04:24 +09:00
posimai
e0c2211e0d
chore(status): Together 認証設計を確定記録
2026-04-22 09:47:02 +09:00
posimai
b20393b8a9
fix(together): メンバー認証済みユーザーに invite_code を返すよう修正
2026-04-22 09:46:24 +09:00
posimai
4390748534
fix(together): JWT なし username 認証を復元(Posimai アカウント不要メンバー対応)
2026-04-22 09:37:11 +09:00
posimai
45893eb453
chore: Together legacy廃止完了・Stripe 4ファイル注記・backup確認記録
2026-04-22 09:03:01 +09:00
posimai
0d509461ac
fix(together): legacy path 廃止(JWT必須化)・Gemini 2.5-flash 503 フォールバック追加
2026-04-22 09:02:11 +09:00
posimai
b00e31cb90
feat(store): お問い合わせフォームを Resend API に切り替え(Formspree 廃止)
2026-04-21 19:52:53 +09:00
posimai
100064693d
fix(together): JWT なしリクエストで invite_code を返さないよう修正
2026-04-21 19:40:55 +09:00
posimai
2ecd960a54
fix(pc-audit): AI プロンプトを自律実行・要確認の使い分け方針に書き換え
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 18:11:02 +09:00
posimai
90b02de5b5
fix(pc-audit): AI コピーボタンがフィルタ初期化で消える問題を修正
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 18:06:18 +09:00
posimai
6d7f2a4ed4
feat(pc-audit): AI 相談用プロンプトコピーボタンを追加
...
チェック項目カラムに「AI 相談用にコピー」ボタンを追加。
PC情報(名前・管理者権限・UAC)+注意/情報チェック項目を
Claude に貼り付けるだけで対処手順を聞けるプロンプトを生成する。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 17:52:58 +09:00
posimai
04483c8744
feat(pc-audit): ビューポートフィット・全BAT自動読み込み対応
...
- report-viewer: html/body overflow:hidden で 100vh 固定、3カラムがビューポートを埋める
- col 1(概要)・col 2(チェック)・col 3(ポート)が独立してスクロール
- 生データ・免責は col 1 のスクロール枠内に移動(グリッド外に出ない)
- ファイル読込後は upload-wrap を非表示にして「別ファイルを読む」に切替
- run-audit.bat / run-audit-share.bat も JSON インジェクション方式に統一
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 15:59:07 +09:00
posimai
6ce5e0be7d
feat(pc-audit): 自動読み込み・フィルタ・スクロール固定枠・差分2カラム
...
- BAT: JSON をレポートHTMLにインジェクトして一時ファイルで開く(file選択不要)
- report-viewer: AUDIT_PRELOAD 対応・「別ファイルを読む」リンクでフォールバック
- チェック項目:固定高さスクロール枠 + 全て/注意のみ/情報のみフィルタ
- ポート一覧:固定高さスクロール枠 + 全て/全IF/localhost/個別アドレスフィルタ
- thead sticky で列ヘッダが常時表示
- 差分カード:4メトリクスを2×2グリッドに変更
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 14:39:48 +09:00
posimai
7210c8301c
feat(together): AI要約の手動再試行エンドポイント追加(failed/skipped/summary欠落に対応)
2026-04-21 14:14:04 +09:00
posimai
01d4ee926a
fix(pc-audit): 概要を2カラムグリッドに変更、全体幅をフル幅に修正
...
viewer: .summary-grid を2カラムに。PC名のみ全幅(grid-column span)。
max-width 制限を撤廃し右余白を解消。
PS1: 管理者判定を net localgroup フォールバック含む3段階に強化。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 12:48:34 +09:00
posimai
d36b7a8fe4
fix: posimai-sc に JWT (?token=) 受け取り、brief サブモジュールを更新
...
Made-with: Cursor
2026-04-21 09:17:45 +09:00
posimai
b2fce817bf
fix(cors): PUT メソッドを許可(together/members/rename が CORS で弾かれていた)
2026-04-21 08:35:30 +09:00
posimai
a05bdb614a
fix(csp): posimai-sc の style-src に posimai-ui.vercel.app を追加
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 08:27:50 +09:00
posimai
cf10f757a8
fix(pc-audit): 管理者判定を3段階に強化、viewer を3カラムレイアウトに変更
...
PS1: IsInRole -> SID string 比較 -> net localgroup の3段階で判定。
UAC トークンフィルタリング環境でも管理者ユーザーを正しく検出する。
viewer: 左寄せ3カラム(概要/差分 | チェック項目 | ポート一覧)。
スマホは1カラムに自動切替。一時ポート(49152-65535)に「正常」説明を追加。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 08:24:33 +09:00
posimai
2c0f4da03c
fix(pc-audit): 管理者判定を Administrators グループ所属チェックに修正
...
IsInRole はプロセスの昇格トークンのみ検査するため、UAC 環境の通常起動では
管理者グループのメンバーでも false になっていた。
BUILTIN\Administrators SID のグループ所属を追加チェックし正しく検出する。
.gitattributes: working-tree-encoding=UTF-8-BOM を削除(git 2.51 で add 失敗するバグのため)
BOM 付与は run-pc-audit.js の自動処理に委ねる。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 08:17:58 +09:00
posimai
65297f3b9e
chore(rules): 左ボーダーライン禁止ルールを CLAUDE.md / AGENTS.md に追加
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 08:17:28 +09:00
posimai
a17084dfd8
feat(pc-audit): report-viewer を Posimai ダークテーマに全面改修
...
- 左ボーダーラインを廃止、badge + カード枠色でレベルを表現
- 非エンジニア向け説明・対処方法(actionJa)を各カードに追加
- ポート一覧に IP アドレス・ポート番号の日本語解説を追加
- プライバシー説明をヘッダーに常時表示
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 08:08:14 +09:00
posimai
4360f9090f
fix(ai/generate): temperature クランプ・role バリデーション追加
...
- temperature を 0〜2 でクランプ(不正値でのSDKエラー防止)
- contents の role を user/model のみ許可(system injection 防止)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 06:52:46 +09:00
posimai
a2282fe33b
fix(pc-audit): bat ファイルを CRLF に変換(どこからでも実行可能に)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 06:50:59 +09:00
posimai
d08a0d6eed
docs(status): AI BYOK 廃止・VPS プロキシ化の記録を追加
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 23:02:26 +09:00
posimai
ce195cee72
fix(posimai-sc): 用語インデックス抽出アルゴリズムを再設計
...
旧アルゴリズムの問題:
- <strong> の出現位置を問わず全て用語として分割していたため
説明文中の強調タグ(例: <strong>種類の異なる</strong>)が
偽の用語エントリになっていた(104件中80件以上が不正)
- ヒントが助詞(は、が)や記号で始まるケースを除去できていなかった
新アルゴリズム:
- <br> で行分割し、各行の先頭 <strong> だけを用語として扱う
- 先頭より前に地の文があれば inline 強調とみなしてスキップ
- hint クリーンアップに =・は を追加
- 結果: 104件 → 26件の正常エントリのみ残留
SW v8 → v9
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 22:51:41 +09:00
posimai
cd4159fec9
feat(together): TOGETHER_GEMINI_API_KEY で Brain と Gemini quota を分離
...
TOGETHER_GEMINI_API_KEY が設定されている場合はそちらを使い、
未設定時は既存の GEMINI_API_KEY にフォールバック。
posimai-brain と posimai-together の quota が独立して管理できるようになる。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 22:51:31 +09:00
posimai
e935eb6734
fix(together): 招待コードをメンバー全員に返す、JWT username 過剰チェック削除
...
af51a75で追加した「JWT なし時は invite_code を隠す」制限が原因で
グループ設定画面の招待コードが undefined になっていた。
メンバー確認済みなら全員に返すのが正しい動作。
create/join の「JWT username が一致しなければ 403」チェックも削除。
Together はニックネームベースで JWT identity と別名が普通に使われるため過剰な制限だった。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 22:47:36 +09:00
posimai
96208363d9
fix(posimai-sc): セキュリティ・品質監査対応(CSP/DOMPurify/reactivity 他)
...
- [H1] CSP meta タグ追加(script/style/connect/frame-ancestors 等)
- [H2] posimai_api_key を sessionStorage に移行(localStorage フォールバック付き)
- [H3] DOMPurify を USE_PROFILES から明示 ALLOWED_TAGS/ALLOWED_ATTR ホワイトリストに変更
- [M1] progress/scores の直接変更を spread 再代入に統一(Alpine reactivity 保証)
- [M2] .catch(()=>{}) を console.warn 付きに変更(サイレント消滅を防止)
- [M3] syncHeader を this.syncToken 一本化(localStorage 二重読み解消)
- [M5] SW の cache.put() 失敗を捕捉してログ出力
- [M6/M7] sidebar-item に aria-label/aria-pressed 追加、main に tabindex=-1 + focus()
- [LOW] glossary x-for キーをコンテンツベースに変更、SW コメント補足
- SW v7 → v8
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 22:42:55 +09:00
posimai
50e95577d7
fix(together): invite_code を JWT 必須に変更、Guard Web v1 方針を STATUS.md に明記
2026-04-20 22:31:07 +09:00
posimai
ef7fccb255
fix(together): Gemini失敗時もJina成功ならarchive_status='done'にする
...
Gemini API 503 エラー時に全体を'failed'にしていたため、
Jina で本文取得済みの記事でもReaderボタンが表示されなかった。
Gemini だけ失敗した場合は summary=null/tags=[] で 'done' にし、
Readerは使える状態を保つ。既存の28件は DB で直接修正済み。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 21:17:07 +09:00
posimai
58ca9d2540
fix(posimai-sc): ステップ3遷移時の自動スクロールを完全削除
...
nextStepFlash / nextStepDrill でステップ3へ移る際の
scrollTo(scrollHeight) を削除。理解度チェックへのスクロールは
「理解度チェックへ移動」ボタン経由のみとする。
SW を v6 → v7 に更新。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 20:56:05 +09:00