2026-09-04
Sorai Engineering
refactor(spec-portal & ssg-edge): 仕様書ポータル(spec-viewer)完全静的エッジ化(SSG: dist/ & Cloudflare Pages)& 仕様書モジュール最適分割(04a_apply_portal / 04b_operator_portal)& YAML Frontmatter(構造化メタデータ)全モジュール配備 & 過去ログ週次・日次アーカイブ退避(docs/archives/history_2026_09_03.md / history_2026_09_early.md・本体大幅スリム化)& build_spec.py 確定パース化 & GitHub Actions CI/CD 軽量化(毎回push時のDocker/Cloud Run重デプロイ全廃・深夜バッチ/手動限定化・所要時間15秒化)& 全8個MCPツール完全後方互換 & SDD 仕様書同期
2026-09-03
Sorai Engineering
feat(portal-quote & multi-portal-hybrid): 初期費用シミュレーター TypeScript 完全移行(diagnoseService.ts)& 5層階層型ハイブリッド抽出エンジン(JSON-LD / Cheerio DOM / Gemini 3.5 Flash-Lite フォールバック)実装 & マルチポータル対応拡充(スモッカ/Yahoo!/goo住宅)& 応答速度10倍速(0.1〜0.2秒)& APIコスト80〜90%削減 & 全31単体テスト100%合格 & 型検査0エラー & SDD仕様書同期(①packages/portal-quote-prototype/services/diagnoseService.js を diagnoseService.ts へ完全 TypeScript 化し QuoteExtractedPropertyData / QuoteComparisonResult 等の厳格なドメイン型安全性を 100% 確立、diagnoseService.js に export * from './diagnoseService.ts' の Re-export Bridge を配備して server.js や line-bot との後方互換性を完全維持、②extractors/jsonLdExtractor.ts を新設し HTML 内の <script type="application/ld+json">(SingleFamilyResidence / Product / RealEstateListing)から物件名・住所・賃料・面積・間取りを 5ms・0円・100%精度で先行抽出、③extractors/portalAdapters.ts を新設し cheerio を活用した SUUMO、LIFULL HOME'S、at home、賃貸スモッカ、汎用テーブル DOM パーサーを配備、主要項目が揃った場合は Gemini API 呼び出しと日次クォータ(DAILY_API_LIMIT = 100)消費を完全スキップして 0.05〜0.2秒の超爆速レスポンスと API コスト 80〜90% 削減を実現、④ルールベースで未取得時のみ gemini-3.5-flash-lite へ自動フォールバックする 5層階層型パイプラインを確立、⑤validatePortalUrl において smocca.jp, realestate.yahoo.co.jp, house.goo.ne.jp, chintai.com を追加、⑥packages/portal-quote-prototype/tests/quote.test.js に JSON-LD およびマルチポータル DOM 抽出テストを追加し全31テスト 100% 合格、npm run typecheck 0 エラー合格、spec-viewer/docs/05_quote_maker.md §5.4.5 同期、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
perf(chat-history): 会話ローリング要約(Rolling Summary)への thinkingConfig: { thinkingBudget: 0 } 適用 & 推論思考オーバーヘッド完全排除による超高速要約生成 & 単体テストアサーション拡充 & SDD仕様書同期(①packages/common/services/chatHistory.ts の updateRollingSummaryAsync において、構造化要約タスクに思考トークンを消費しないよう thinkingConfig: { thinkingBudget: 0 } を明示指定し、思考プロセスを完全バイパスして直接要約を出力させることでクォータ消費の最小化および非同期処理完了速度をミリ秒〜1秒へ劇的短縮、②packages/common/tests/rollingSummary.test.js にて thinkingBudget 0 アサーションを追加し全テスト合格、npm run typecheck 11 パッケージ 0 エラー合格、spec-viewer/docs/01_customer_service_ai.md §1.3.2 および docs/09_common_architecture.md §9.2 同期、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
feat(chat-history & memory-expansion): 会話ローリング要約(Rolling Summary)の構造化 & 文字数枠大幅拡張(150〜200文字➔400〜600文字/最大800文字・maxOutputTokens 300➔800)& 3大カテゴリ分類(希望条件/顧客背景・審査/検討履歴・ステータス)配備 & 単体テスト(rollingSummary.test.js)追加 & 全テスト100%合格 & 型検査0エラー & SDD仕様書同期(①packages/common/services/chatHistory.ts の updateRollingSummaryAsync において、これまで 150〜200文字で切り捨てられていた顧客文脈要約を 400〜600文字 [最大800文字] 枠へ大幅拡張し maxOutputTokens を 300 から 800 へ引き上げ、②要約プロンプトを「【希望条件】エリア/予算/間取り/時期/設備」「【顧客背景・審査状況】属性/ビザ/フリーランス/保証人/初期費用要望」「【検討履歴・現在の状況】関心物件名・URL/重要質問/検討フェーズ」の3大カテゴリに構造化し、長期にわたるやり取りでも顧客の属性・検討中マンション・初期費用相談の文脈喪失を恒久防止、③packages/common/tests/rollingSummary.test.js を新設し構造化プロンプト・文字数・maxOutputTokens 800・Firestore反映を自動検証、全テストが 100% 合格、npm run typecheck 11 パッケージ 0 エラー合格、spec-viewer/docs/01_customer_service_ai.md §1.3.2 同期、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
feat(line-bot & prompt-guidance): LINE公式アカウント自動応答ボット(packages/line-bot)心理的ハードル徹底排除コアミッション配備 & 最重要「回答ファースト原則」(LINE上での疑問解消最優先・オンライン相談への丸投げ厳禁)確立 & オンライン相談(/consultation)AI案内ガイドライン・5言語URL動的ルーティング配備 & 単体テスト全35件100%合格 & 型検査0エラー & SDD仕様書同期(①packages/line-bot/services/line/responder.ts のシステムプロンプト [cachedContent あり/なし双方] 冒頭に【あなたの最大のミッション(心理的ハードルの徹底的な排除)】を新設し、WebのCTAから流入した顧客が抱く「営業電話への恐怖や検討初期の相談しづらさ」をAIの24時間対応・ゼロプレッシャーで完全に払拭する存在意義を明文化、②consultationGuidelineSection に【最重要原則:回答ファースト原則(LINE上での回答を絶対に省略しないこと)】を配備し、初期費用や進め方の相談に対してもまずLINE上でAIが専門知識を活かして100%全力で具体的に回答した上で、オンライン相談は「画面共有しながらプロとじっくり探したい場合のプラスアルファの選択肢」としてのみ添える順序を厳格化、③CONSULTATION_URLS マッピング定数 [ja: /consultation, en: /en/consultation, vi: /vi/consultation, ru: /ru/consultation, id: /id/consultation] による5言語動的URL展開、④packages/common/services/contextCacheManager.js の buildCachePayloadText 内コアサービス定義に無料オンライン相談を追記しコンテキストキャッシュのナレッジを同期、⑤packages/line-bot/tests/responder.test.js においてコアミッション文言・回答ファースト原則・多言語URL注入のアサーションを追加し全35テスト 100% 合格、npm run typecheck 11 パッケージ 0 エラー合格、spec-viewer/docs/02_line_facebook_bots.md §2.12 同期、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
feat(hp & theme): オンライン相談ページ(/consultation)英語(English 🇺🇸)公式対応化 & 所要時間1時間(60分)完全統一 & 5言語リボン・ウェルカム案内バナー・FAQ4最適化 & 全5言語メタデータ更新 & 本番デプロイ・実機検証完了(①soraitokyo-cms-theme/templates/consultation.html においてリアルタイムビデオ相談 [Google Meet] の対応言語に英語 [English 🇺🇸] を追加し日本語・英語・ベトナム語の3言語公式サポートへ拡充、あわせてHubSpot Meetingsカレンダー枠 [60min] に整合させ所要時間を30分から1時間 [60分] へ全言語完全統一、②全5言語の信頼リボンを3言語対応 [JA: 対応言語: 日本語 🇯🇵 / English 🇺🇸 / Tiếng Việt 🇻🇳, EN: Languages Supported: English 🇺🇸 / Japanese 🇯🇵 / Vietnamese 🇻🇳, VI: Hỗ trợ ngôn ngữ: Tiếng Nhật 🇯🇵 / Tiếng Anh 🇺🇸 / Tiếng Việt 🇻🇳, RU: Языки: Японский 🇯🇵, Английский 🇺🇸 и Вьетнамский 🇻🇳, ID: Bahasa: Jepang 🇯🇵, Inggris 🇺🇸 & Vietnam 🇻🇳] へ更新、③カレンダー直上バナー [.consult-lang-alert] において英語ページを警告から公式対応歓迎の標準インフォメーションバナー [fa-circle-info] へ昇格し、RU・IDページでのLINE/Webフォーム代替案内を継続、④Topic 4 [入居審査・ビザ・スケジュール相談] および FAQ 4 [外国籍・対応言語] を更新し日本語・英語・ベトナム語ライブ相談を明文化、FAQPage JSON-LD 構造化データも同時更新、⑤tools/update_consultation_metadata.py により全5言語 [JA: 390750358245, EN: 390749852375, VI: 390750358248, RU: 390750358251, ID: 390749852378] の HubSpot Site Page メタデータ PATCH 更新&Push-Live 完了、⑥deploy_cms_theme により本番HubSpotへテーマ配信・全40ページ再公開完了、実機フェッチにより JA および EN ページで HTTP 200 応答および英語公式サポート・1時間表記・ウェルカムバナーの正常描画を確認、spec-viewer/docs/hp/01_site_architecture.md, 03_hubspot_theme_modules.md §3.3, 99_hp_changelog.md, docs/99_history_and_changelogs.md 同期完了)
* 2026-09-03: feat(hp & theme): オンライン相談ページ(/consultation)メッセージング・トーン刷新(条件整理・ヒアリング重視 & 気になるお部屋の画面共有リアルタイム調査対応)& 5言語辞書完全同期 & 本番デプロイ・実機検証完了(①soraitokyo-cms-theme/templates/consultation.html において一方的な物件紹介・売り込みを排し「どんな暮らしがしたいか、予算やエリアの希望をじっくり伺って希望条件を整理する」ヒアリング相談へトーンを全面刷新、もしすでにSUUMOやHOME'S等で見つけた気になる物件がある場合は画面共有でリアルタイムに空室状況・初期費用をその場で調査するオプショナル対応を明文化、②JA辞書を更新し page_title「【営業なし・オンライン30分】ご希望条件ヒアリング&お部屋探し相談
Sorai Engineering
ソライ東京」、hero_badge「オンライン個別ヒアリング(無料・30分)」、hero_h1「自宅からプロに相談。理想の暮らしの「条件整理」と安心の部屋探し。」、改訂4大トピック [①ご希望条件・ライフスタイルの丁寧なヒアリング, ②気になるお部屋のリアルタイム空室調査(ご希望の場合), ③初期費用・予算シミュレーション, ④入居審査・スケジュール・外国籍サポート] を配備、③多言語辞書 [EN, VI, RU, ID] を同一哲学の自然なネイティブ表現へ完全同期、④tools/update_consultation_metadata.py により HubSpot Site Page [ID: 390750358245] メタデータ更新・Push-Live & deploy_cms_theme により本番即時配信・全5言語ページ再公開完了、⑤実機フェッチにより JA および EN ページで新タイトル・新リード・新トピックの正常描画を確認、spec-viewer/docs/hp/03_hubspot_theme_modules.md §3.3, 99_hp_changelog.md, docs/99_history_and_changelogs.md 同期完了)
* 2026-09-03: feat(line-bot & ai-model): LINE公式アカウント自動応答ボット(packages/line-bot)Gemini 3.8 Flash 昇格・明示化 & LINE_BOT_MODEL 環境変数サポート & CI/CD パイプライン・テスト・SDD仕様書完全同期(①packages/common/config/env.js において env.line.modelName ゲッター [process.env.LINE_BOT_MODEL
Sorai Engineering
| process.env.VERTEX_AI_MODEL || 'gemini-3.8-flash'] を新設、②packages/line-bot/services/line/responder.ts の targetModel 解決および extractor.ts の属性抽出 Structured Outputs において env.line?.modelName を優先適用し、Gemini 3.8 Flash + Dynamic Thinking [thinkingLevel: 'medium']・RAGナレッジ連携 [120記事]・コンテキストキャッシュ [TTL 7200s]・MLITハザード診断連携を完全確立、③.github/workflows/deploy.yml の Cloud Run デプロイステップ [real-estate-chatbot-line-bot 本番 & real-estate-chatbot-staging-line-bot ステージング] の ENV_VARS に VERTEX_AI_MODEL=gemini-3.8-flash,LINE_BOT_MODEL=gemini-3.8-flash を明示注入、④packages/line-bot/tests/responder.test.js のテストスイート名を Gemini 3.8 Flash へ更新し、呼び出しモデル名の厳格アサーションおよび LINE_BOT_MODEL 環境変数オーバーライド検証テスト [全34件 100% 合格] を配備、⑤spec-viewer/docs/02_line_facebook_bots.md §2.11, 01_customer_service_ai.md, 10_gcp_infrastructure.md, 09_common_architecture.md, 00_index.md, 99_history_and_changelogs.md 同期完了)
2026-09-03
Sorai Engineering
feat(hp & theme): オンライン相談ページ(/consultation)対応言語仕様(日本語🇯🇵・ベトナム語🇻🇳ライブ面談限定 / 他言語テキスト案内)明文化 & 5言語リボン・アラートバナー・FAQ最適化 & 本番デプロイ・実機検証完了(①soraitokyo-cms-theme/templates/consultation.html において全5言語の信頼リボンに対応言語バッジ [ribbon_lang: JA「対応言語: 日本語 🇯🇵 / Tiếng Việt 🇻🇳」, VI「Hỗ trợ ngôn ngữ: Tiếng Nhật 🇯🇵 / Tiếng Việt 🇻🇳 (Tư vấn trực tiếp bằng tiếng Việt)」, EN「Languages: Japanese 🇯🇵 & Vietnamese 🇻🇳 only」, RU「Языки: Японский 🇯🇵 и Вьетнамский 🇻🇳」, ID「Bahasa: Jepang 🇯🇵 & Vietnam 🇻🇳 saja」] を配備、②カレンダー埋め込みウィジェット直上にフレンドリーな言語案内アラートバナー [.consult-lang-alert] を新設し、英語・ロシア語・インドネシア語環境ではハイライト表示 [.is-highlight] とともに公式LINEおよびWebフォームへのダイレクト直通ボタンを提供してテキスト相談へシームレスに誘導、③FAQ 4 [外国籍・対応言語] を刷新しリアルタイムGoogle Meet面談は日本語・ベトナム語限定である点と、他言語でのテキストサポート体制をQ&A形式で明文化、Schema.org FAQPage JSON-LD構造化データも同時更新、④deploy_cms_theme により本番HubSpotへテーマ即時配信・全5言語ページ再公開完了、⑤curl実機検証により JA および EN ページでリボン・アラートバナー・FAQの正常描画を確認、spec-viewer/docs/hp/03_hubspot_theme_modules.md §3.3, 99_hp_changelog.md, docs/99_history_and_changelogs.md 同期完了)
2026-09-03
Sorai Engineering
feat(hp & theme): オンライン相談・詳細物件リクエストページ(/consultation)HubSpot CMS新規開設 & HubSpot Meetings Embed(60min)埋め込み & 5言語(JA, EN, VI, RU, ID)完全多言語化 & 4ステップ・FAQ・ブランドデザインシステム実装 & 全言語HTTP 200実機疎通完了 & SDD仕様書同期(①soraitokyo-cms-theme/templates/consultation.html を新設し、gtm-head.html, gtm-body.html, header.html, footer.html 完備・HTMLタグ完全バランス保証・Quiet Luxuryブランドデザインシステム配備、②HubSpot Meetings埋め込みウィジェット [data-src="https://meetings-na2.hubspot.com/contact33/60min?embed=true" / MeetingsEmbedCode.js] を中央カードに配置し、スマホ・PC両対応のレスポンシブコンテナを構築、③5言語 [JA, EN, VI, RU, ID] 完全対応のローカライズ辞書を内包し各言語固有のタイトル・メタディスクリプション・リボン・4ステップ・4大相談内容・FAQ [FAQPage JSON-LD対応]・代替CTA [公式LINE/Webフォーム] を提供、④tools/deploy_all.py および scratch/deploy_all.py の FILES_TO_DEPLOY, DEPENDENCY_MAP, PAGE_ID_MAP に consultation.html および各言語ページID [JA: 390750358245, EN: 390749852375, VI: 390750358248, RU: 390750358251, ID: 390749852378] を登録し deploy_cms_theme によるテーマ反映を自動化、⑤tools/create_consultation_page.py を作成し HubSpot Site Pages API 経由で JA 親ページおよび 4言語バリエーションを作成・結合・Push-Live & schedule_page_publish 実行、⑥全5言語URL [https://soraitokyo.jp/consultation および /en/, /vi/, /ru/, /id/] において HTTP 200 応答およびネイティブ言語タイトル描画を実機curl確認、spec-viewer/docs/hp/01_site_architecture.md, 03_hubspot_theme_modules.md, 99_hp_changelog.md, docs/99_history_and_changelogs.md 同期完了)
2026-09-03
Sorai Engineering
feat(line-bot & deployment): LINE公式アカウント自動応答ボット(packages/line-bot)TypeScript完全移行 & 型安全SSOT確立(types/line.ts)& Re-export Bridge Pattern によるゼロリスク移行 & GitHub Actions 自動デプロイパイプライン配備(.github/workflows/deploy.yml: line フィルター / line-bot prod & staging 自動デプロイ)& 全33単体テスト 100% 合格 & 型検査 0 エラー & SDD 仕様書同期(①packages/line-bot/types/line.ts を新設し LineStateStep, LineStateData, ExtractedContactDetails, LineClickTrackPayload, LineAdapter, SupportedLanguage 等の厳密な型定義を配備、②packages/line-bot/tsconfig.json に allowImportingTsExtensions: true を追加し NodeNext モジュール解決での明示的拡張子インポートを許可、③コアサービス層 [extractor.ts, verification.ts, responder.ts, orchestrator.ts] を完全 TypeScript 化し既存同名 .js から export * from './xxx.ts' で再エクスポートする Re-export Bridge パターンを採用、④ルーティングおよびアプリケーション層 [server/routes/line.ts, app.ts] を完全 TypeScript 化し Express の型インポート分離 [import type] および Firestore トランザクション・クエリ型安全化を実施、⑤.github/workflows/deploy.yml に line フィルターを新設し Cloud Run [real-estate-chatbot-line-bot / real-estate-chatbot-staging-line-bot] への GitHub Actions 自動デプロイステップを配備、⑥全 33 テスト [otp.test.js, responder.test.js, transfer.test.js, webhook.test.js] が 100% 合格、npm run typecheck 11 パッケージ 0 エラー合格、spec-viewer/docs/02_line_facebook_bots.md §2.10 同期、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
refactor(cms-editorial & pipeline-architecture): 自動執筆パイプライン全面リファクタリング完了 & レンダリングロジック共通化(sorai_renderer.py: _build_article_inner_content 一本化・重複コード120行削減)& 多言語Expatカードモジュール分離(expat_templates.py 新設)& 未使用コード・残存表記完全クリーンアップ(ArticleSchema削除・著者バイオ統一)& 全23単体テスト 100% 合格 & SDD仕様書同期(①skills/sorai_renderer.py において render_full_article_html と render_full_article_post_body の重複ループ・カード生成ロジックを共通内部関数 _build_article_inner_content に一本化し、コードの二重管理と将来のカード追加時の反映漏れを根本防止、②automation/pipeline/expat_templates.py を新設して 4 言語 [EN, VI, RU, ID] の Expat Guide HTML 定数と inject_expat_insight_card を外出し、article_translator.py を並列翻訳コアロジックのみに純化、③automation/pipeline/article_generator.py の未使用インポート ArticleSchema を削除し、automation/pipeline/config.py の AUTHOR_INFO['ja']['bio'] に残存していた「初期費用の適正化」を「クリーンで透明な契約」へ統一、④tests/test_enhanced_pipeline.py [全9件]、tests/test_pipeline_improvements.py [全6件]、tests/test_pipeline_modular.py [全8件] の計23テストを連続実行し全件 100% 合格、spec-viewer/docs/08_cms_editorial_pipeline.md 同期、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
feat(cms-editorial & pipeline-ux): 自動執筆パイプライン第3弾改善完了 & 関連記事自動インラインカード挿入(render_related_articles_card・回遊率/内部リンク最大化)& 多言語専用外国人インサイトカード自動注入(EN/VI/RU/ID 4言語対応・完全ペルソナ分離)& HTML5アコーディオンFAQ刷新(<details><summary>・1問目デフォルトopen・スクロール圧迫解消)& 執筆文体の体温向上(白書調脱却・生活シーン変換プロンプト配備)& 単体テスト全9件 100% 合格 & SDD仕様書同期(①skills/sorai_renderer.py において render_faq_card を HTML5 標準の <details class="faq-accordion"> と <summary> 構造へ刷新し、1問目のみ open 属性で展開し2問目以降を折りたたみ可能とすることで 9,000字長文末尾のスクロール負担を解消、FAQPage JSON-LD とも完全同期、②render_related_articles_card を新設し column-search-agent/articles.json から同一沿線・近隣駅・同一カテゴリの関連記事を 2〜3 件自動スコアリング選定してまとめ章前に「📖 あわせて読みたい関連記事」カードとして自動挿入 [AI追加コスト0円・0秒]、③automation/pipeline/article_translator.py において英語・ベトナム語・ロシア語・インドネシア語専用の外国人向け住まいガイドカード EXPAT_INSIGHT_CARDS [GTN/エポス保証審査・ビザ書類・クリーン見積もり] を定義し翻訳記事の第2章後に自動注入、日本語記事の日本人向け特化と多言語の外国人向け特化を完全分離、④automation/pipeline/article_generator.py のプロンプトを改修し「白書調・論文調の脱却と対面カウンターの親身な語りかけ」「スペック羅列から生活シーンへの変換」指示と模範例を配備、⑤tests/test_enhanced_pipeline.py に全3件のテストを追加し全9件 100% パス、spec-viewer/docs/08_cms_editorial_pipeline.md 同期、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
feat(cms-editorial & pipeline-enhancements): 自動執筆パイプライン全面強化完了 & 既存3大資産の正式結合(事前グラウンディング collect_pre_retrieval_facts 結合・翻訳Context Caching有効化 [入力75%OFF]・Pydantic構造化執筆 ArticleStructuredDraft 結合 [出力35%削減])& MLITデータの自然な生活実感解説カード化(render_mlit_insight_box: 用途地域の静穏性・適正相場バランスの宅建士解説)& グラフィカル比較表(ネイビーグラデーションヘッダー・暮らしやすさハイライト・ソフトシャドウ・最安バッジ撤廃)& H2キーインサイト要約カード(render_key_insight_card)& 日本語記事からの外国人アピール完全排除(著者カード・プロンプト・CTAをクリーンな契約と街選びへ刷新)& 単体テスト全6件 100% 合格 & SDD仕様書同期(①automation/pipeline/article_generator.py において執筆前に collect_pre_retrieval_facts を呼び出し、Google Search Grounding で駅前スーパー・所要時間・家賃相場・助成金を自動事前収集してプロンプトへ注入、Pydantic ArticleStructuredDraft 出力 ➔ sorai_renderer.render_full_article_post_body による型安全レンダリングで生HTML出力を全廃し出力トークンを約35%削減、②automation/pipeline/article_translator.py において sorai_common.create_or_get_context_cache による Context Cache [TTL 15分] を生成し各言語・全セクション翻訳で共有参照して入力トークン75%割引を確立、③skills/sorai_renderer.py において render_table のネイビーグラデーションヘッダー [linear-gradient(135deg, #131f37 0%, #1b2a47 100%)]・角丸 [12px]・シャドウ・特定列テラコッタハイライト枠を配備、安売り最安表記を完全排除し「👑 おすすめ」「総合バランス◎」等の上品なバッジへ統一、④render_mlit_insight_box を新設し国交省データを「第一種住居地域等の閑静さ・日当たり保証」「適正な相場バランス」という生活実感の解説カードとして記事へ自然統合、⑤render_key_insight_card を新設しH2章冒頭にアイコン要約カードを描画、⑥日本語記事の著者カード [render_author_card] および CTA_TEXTS['ja']、生成プロンプトから「外国人居住支援」「初期費用最安」を完全排除し、日本人読者向けに「クリーンで透明な契約・後悔しない部屋探し・おとり物件チェック」に集中、⑦tests/test_enhanced_pipeline.py を作成し全6テスト 100% パス、spec-viewer/docs/08_cms_editorial_pipeline.md 同期、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
feat(cms-editorial & pipeline-improvements): 自動執筆パイプライン改善3大タスク完了 & 文末リズム校正強化(重複正規表現バグ解消・ルールベース置換関数 apply_rule_based_rhythm_fixes 実装・AI呼出完全バイパス0秒0円化・Bad vs Good Few-Shot模範例プロンプト配備)& 高品質1200x630 OGP画像動的生成モジュール(pipeline/ogp_generator.py)配備 & HubSpot Files API(POST /files/v3/files)連携・featuredImage自動紐付け & Visual QA 監査におけるCDN伝播待ち404誤検知解消(Exponential Backoff [3s, 5s, 8s, 12s]・404/ネットワークエラーとDOM破損の厳格峻別・誤自己修復完全遮断)& 単体テスト全6件 100% 合格 & SDD仕様書同期(①skills/sorai-editorial/scripts/sentence_rhythm_linter.py において KANOU パターンの重複正規表現バグを修正し、体言止め(TAIGEN)判定を強化、3連以上ループを検知時に「〜することが可能です」➔「〜することも可能」、「〜となっています」➔「〜という特徴も」等の自然な日本語へ決定論的に機械置換する apply_rule_based_rhythm_fixes を実装、②automation/pipeline/article_generator.py のプロンプトに段落レベルの Bad vs Good 模範例を追加し、verify_and_fix_sentence_rhythm 冒頭でルールベース置換を実行して問題解消時に Gemini AI 呼び出しを完全スキップする高速0コスト化を実現、③automation/pipeline/ogp_generator.py を新設し Pillow による 1200×630px の高品質 OGP 画像生成 [Sorai ブランドネイビー #1b2a47 / テラコッタ #c57e5f / ゴールド #d4af37、カテゴリバッジ・駅名ハイライト・禁則処理自動折り返し・フォント自動探索] を実装、④automation/pipeline/hubspot_deployer.py において upload_featured_image_to_hubspot を実装し記事固有の OGP 画像を HubSpot Files API 経由でアップロードして featuredImage に設定、⑤automation/visual_qa_auditor.py の audit_live_url において [3, 5, 8, 12] 秒の Exponential Backoff を配備し、audit_and_auto_heal_post において 404/未伝播時はコンテンツ破損ではないため heal_post_body や再Push-Live を絶対に発動させない安全ゲートを確立、⑥tests/test_pipeline_improvements.py を作成し全 6 テスト 100% 合格、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
docs(hp & theme): ブログ記事3段階マルチレイヤーCTAアーキテクチャ(ファーストビューCTA・中段CTA・ラストCTA)仕様明記 & 到達率100%ファーストビューカード(.post-top-cta-card)機能保証 & GA4スクロール率分析(全体平均27.7% / トップ42%)エビデンス記録 & SDD仕様書同期(①blog-post.html において全ブログ記事のアイキャッチ直下・目次直上に配置されているファーストビューCTAカード [.post-top-cta-card]、中段インラインCTA [.sorai-mid-cta]、最末尾ラストCTA [.sorai-end-cta / .c-cta-box] の3段階マルチレイヤー構造を spec-viewer/docs/hp/03_hubspot_theme_modules.md §6 に正式明記、②ファーストビューCTAは読者到達率100%であり、LINE相談 [openQrCodeReader=1 / utm_medium=inline_cta]、オンライン予約 [/contact?tab=booking]、AI電話24時間受付 [03-6161-8484] の3大導線を提供し最下部まで読まない読者からのCVを確実に獲得している実態 [2026-09-01のLINE獲得実績含む] を記録、③GA4/BigQuery生ログ解析によりサイト全体平均スクロール到達率27.7%およびトップページ42.0%の高品質な読了水準を体系化、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
fix(deal-service & cloudflare-egress): 図面自動マッチング「スプレッドシートで出力」ブラウザプラグインエラー(net::ERR_ABORTED / Couldn't load plugin)根本解消 & Cloudflareエッジ最適化(GCP Egress完全0円)& モーダル内0-Byte即時エクスポート(TSVクリップボードコピー・Blob直接ダウンロード・表プレビュー)& 単体テスト全9件100%合格 & 型検査0エラー & SDD仕様書同期(①HubSpot Files CDN配信時に Content-Disposition: attachment が付与されずChrome等のプラグインが別タブでインライン表示を試みてクラッシュしていた不具合を特定、②soraitokyo.jp の Cloudflare Transform Rules [http_response_headers_transform] に /hubfs/floor-plan-matching/*.csv に対する Content-Disposition: attachment; filename="matching_results.csv" 自動注入ルールを配備し、外部リンククリック時の即時ダウンロード化とプラグインエラーの完全根絶を実現、Cloudflareエッジキャッシュ配信によりGCP Egressコスト0円を維持、③packages/deal-service/views/uploadModal.js において通信量 0 Byte・待機時間 0 秒でGoogleスプレッドシートやExcelに Cmd+V 一発貼り付けできる「📋 スプレッドシート用にコピー」[TSV生成]、ブラウザ内「📥 CSVダウンロード」[Blob生成]、および「📊 表プレビュー」モーダルを新設、④packages/deal-service/services/hubspotNoteService.ts および real-estate-crm-extensions/sorai-lease-bot/src/app/cards/MatchCard.tsx のボタン文言を「📥 比較一覧CSVを保存 ↗」へ最適化、⑤floorPlanMatching.test.js を追従更新し全9件 100% 合格、npm run typecheck 11 パッケージ 0 エラー合格、spec-viewer/docs/06_deal_extractor.md §6.18 同期、build_spec.py コンパイル完了)
2026-09-03
Sorai Engineering
feat(crm-extensions & ai-guidelines-ssot): HubSpot CRM Extensions AI開発ガイドライン単一信頼源(SSOT)一元化 & contract-extractor/CLAUDE.md 肥大化解消(240行➔1行・トークン消費99%削減)& Antigravity/Claude Code 共通規約統合(@../.agents/AGENTS.md)& SDD仕様書同期(①real-estate-crm-extensions/contract-extractor/CLAUDE.md において HubSpot CLI の網羅的コマンド辞書や Hooks 一覧など肥大化要因 240行 [約4,000トークン] を全廃し、上位の .agents/AGENTS.md をインポートする 1行構成へ刷新、②real-estate-crm-extensions/.agents/AGENTS.md に SDD 仕様書ポータル連動 [07_crm_extensions.md]、MCP ツール優先ディスパッチ、Subagent-First 委譲規約、検証ゲート [hs project validate / 型検査] を配備、③hubspot-quote-generator/CLAUDE.md のインポートパスを正確な相対パス @../.agents/AGENTS.md に統一し、crm-extensions ルートにも CLAUDE.md を配備、④real-estate-cms-operations/theme/CLAUDE.md に @.agents/AGENTS.md を結合し HTML 整合性・多言語検証ルールを共通化、⑤spec-viewer/docs/07_crm_extensions.md §7.12 に AI エージェント開発ガイドライン・SSOT 統合仕様を追記、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
feat(deal-service & banner-recommendations): 帯替え図面作成時の顧客希望条件連動 & オススメポイント自動抽出(keyMatches)& お客様送信用テキスト生成 & HubSpotタイムラインノート(コピー用<pre>)& Live Feed/完了モーダルUI対応 & 単体テスト全36件 100% 合格 & npm run typecheck 11 パッケージ 0 エラー合格 & SDD 仕様書同期(①packages/common/types/deal.ts の FloorPlanBannerItem に keyMatches?: string[] を追加し型安全性を確立、②packages/deal-service/services/matchingOrchestrator.ts において replaceFloorPlanBannersStream 実行時に HubSpot Deal の desired_conditions_memo / description および Contact の最新 LINE チャット履歴 [getChatHistory] から combinedConditions を構築、Gemini 3.8 Flash プロンプトに顧客希望条件を鑑みたオススメポイント [keyMatches: 2〜4点箇条書き] の抽出指示と Structured Outputs スキーマ [floorPlanBannerResponseSchema] を追加し、SSE プログレスイベント completed_page および返却結果に keyMatches を格納、③packages/deal-service/services/noteFormatter.ts の renderBannerReplacementCardsHtml に「✨ おすすめポイント」ブロック [ブルーバッジ・箇条書き] を描画し、generateCustomerCopyText で帯替え図面でも LINE 送信用テキストにオススメポイントを反映、④packages/deal-service/services/hubspotNoteService.ts の createBannerReplacementNote 内に全物件のおすすめポイントが入ったコピー用 <pre> ブロック [「📋 お客様送信用テキスト」] を追加、⑤packages/deal-service/views/uploadModal.js において Live Feed カードおよび完了画面カードにお勧めポイントバッジ・リストを表示し、全物件の一括送信用テキストブロックを画面上部へ追加、⑥floorPlanMatching.test.js および matchingStream.test.js に帯替えモード時の keyMatches 抽出・ノート生成・送信用テキスト整形・SSE イベント伝搬のテストを追加し全36件 100% 合格、npm run typecheck 11 パッケージ 0 エラー合格、spec-viewer/docs/06_deal_extractor.md §6.17 同期、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
feat(resident-portal & typescript-refactor): 入居者ポータル(resident-portal)Full TypeScript(.ts / .tsx)完全移行 & 型定義SSOT(ResidentCustomer/ResidentTokenPayload/PortalMessage等)配備 & Cloud Run(Node 22 LTS)ネイティブ型除去実行 & React 19/Vite TSX フロントエンド完全型安全化 & 単体・結合テスト全92件 100% 合格 & npm run typecheck 11 パッケージ 0 エラー合格 & SDD 仕様書同期(①packages/resident-portal/types に auth.ts, customer.ts, chat.ts, document.ts, share.ts, transfer.ts, index.ts を新設し顧客・認証・ドキュメント・チャットの厳格なドメイン型 SSOT を確立、②server 配下の全レイヤー [app.ts, server.ts, server/middleware/auth.ts, server/routes/*.ts, server/services/*.ts, server/utils/*.ts] を完全 TypeScript 化し、既存呼出元およびテスト互換性のために各 .js 再エクスポートスタブを配備、③src 配下の全レイヤー [main.tsx, App.tsx, hooks/*.ts, components/**/*.tsx, locales/*.ts, utils/*.ts, vite.config.ts] を完全 TypeScript/TSX 化し、React 19 / Vite ビルドによる型安全なクライアントバンドルを確立、④tsconfig.json において allowImportingTsExtensions: true, paths, include を整備しモノレポ全体の型安全性を保証、⑤単体・結合テスト全 92 件 100% 合格、npm run typecheck 11 パッケージ 0 エラー合格、spec-viewer/docs/01_customer_service_ai.md §1.8.4 および 09_common_architecture.md §9.2 同期、build_spec.py コンパイル完了)
* 2026-09-03: feat(operator-portal & chat-space-ux): 統合チャットスペース(Chat Space)顧客切り替え爆速化(DOM保持&SWRクライアントメモリキャッシュ)& 初期スクロール瞬時固定仕様(scroll-behavior: auto & requestAnimationFrame最下部固定)& SDD仕様書同期(①chat-space.css および unified-chat.css の .chat-feed において scroll-behavior: smooth を auto に変更し顧客切り替え時や履歴読み込み時に上から下へスクロールする不快なアニメーションを完全撤廃、②feedRenderer.js の renderFeed において isInitial
Sorai Engineering
| isNearBottom 時に feedEl.style.scrollBehavior = 'auto' と scrollTop = scrollHeight を実行し requestAnimationFrame で描画後も確実に最下部に瞬時固定、③chat-space.js において customerChatCache [Map] による SWR クライアントメモリキャッシュを実装し selectCustomer 時に既存の chat-feed が存在する場合は DOM 丸ごと破棄をスキップして入力バー・ワークスペースを再利用し 0ms で顧客ヘッダーとキャッシュメッセージ・タブを描画、④バックグラウンドで loadActiveMessages(true) を非同期実行して最新履歴を取得・キャッシュ更新しレースコンディション防止ガードを配備、⑤spec-viewer/docs/04_apply_and_operator_portal.md §4.24 および docs/99_history_and_changelogs.md に仕様を追記、npm run typecheck 0 エラー合格、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
fix(resident-portal & chat-isolation): 入居者ポータルとLINEチャットの完全分離・混入防止(portal_history_${customerId} 専用キー化 & 多層防御チャネルフィルタリング & オンボーディング・バックフィル重複保存撤廃 & SDD仕様書同期)(①packages/resident-portal/server/routes/chat.js において GET /api/chat/history および POST /api/chat のデータソースを入居者ポータル専用キー portal_history_${customerId} へ完全分離し、channel === 'line' ドキュメントおよび m.channel !== 'portal' のメッセージを完全除外、②packages/operator-portal/server/services/channelDispatcher.ts において normalizedChannel === 'portal' 返信時の保存先を portal_history_${customerId} に統一、③packages/operator-portal/server/services/chatMessageService.ts の buildHistoryQueriesMap で portal チャネルを portal_history_${customerId} に紐付け customerId ドキュメントの line 分類化および doc.channel === 'line' ガードを配備、④packages/common/services/onboardingService.js において LINE 友だち追加・マジックリンク認証時の contact.id への重複保存を撤廃し lineUserId のみに集約、⑤packages/common/scripts/backfill_chat_history.js の extractTargetKeys から contact.id を除外、⑥packages/resident-portal/src/hooks/useCustomer.js のセッション初期化を正規エンドポイント /api/chat/history に一本化、useChat.js での古い localStorage キャッシュの自動同期パージを配備、⑦portalChatHistory.test.js および unifiedChatOrder.test.js を更新し LINE メッセージ除外と portal 専用メッセージ保持を自動検証、spec-viewer/docs/01_customer_service_ai.md, 04_apply_and_operator_portal.md, 99_history_and_changelogs.md 同期、build_spec.py コンパイル完了)
2026-09-03
Sorai Engineering
fix(operator-portal & unified-chat): AI返信アシストボタン不可視化バグ修復(--primary-gradient 未定義解消 & フォールバック配備)&「下書きを作成」「この下書きを入力欄に反映」文言・アクセシビリティ統一 & SDD 仕様書同期(①unified-chat.css および chat-space.css の :root に --primary-gradient: linear-gradient(135deg, #183832 0%, #1E463E 100%) を定義し、.ai-primary-btn に var(--primary-gradient, linear-gradient(...)) の安全フォールバックを設定して白背景パネル上でボタンが透明化・背景同化する不具合を恒久根絶、②chat-space.css に .ai-primary-btn.apply-btn { background: linear-gradient(135deg, #059669 0%, #10B981 100%) } を配備し下書き反映ボタンの緑色グラデーション統一、③feedRenderer.js および unified-chat.html の下書き作成ボタンテキストを <span>下書きを作成</span> へ、下書き反映ボタンを <span>この下書きを入力欄に反映</span>(apply-btn)へ統一し、AIボタンの title/aria-label を「AI下書き作成(AI返信アシスト)」へ改善、④spec-viewer/docs/04_apply_and_operator_portal.md §4.23 に仕様を追記、build_spec.py による仕様書再コンパイル完了)
* 2026-09-03: feat(seo & cms): GSCデータ駆動CTR最適化第2弾 & 英語3LDKガイド(857 Imp)& 北千住通勤5路線記事のタイトル&メタディスクリプション刷新 & ファクトチェック整合 & HubSpot Push-Live & SDD 仕様書同期(①Google Search Console 解析により外国人流入潜在クエリトップ [en/blog/3dk-3ldk-3sldk-difference-guide (857 Imp / 12.2位)] および通勤検討クエリ [ja/blog/kita-senju-commuting-convenience-5lines (403 Imp / 5.9位)] を選定、②建築基準法・公正競争規約および東京メトロ・JR所要時間のファクトチェックを実施し、英語タイトルを「3LDK & 3DK Apartments in Japan: Size, Layout & Tokyo Rent Guide (2026)
Sorai Engineering
Sorai Tokyo」、日本語タイトルを「【北千住の通勤混雑2026】朝ラッシュの混雑率・大手町15分&始発で座る裏ワザ5路線まとめ | ソライ東京」へ刷新、スマホ表示幅・検索クエリ完全一致型に最適化、③HubSpot Blog Post API [PATCH /cms/v3/blogs/posts/{id}] 経由で更新し /draft/push-live で即座に本番反映 [HTTP 200実機curl検証済み]、④spec-viewer/docs/hp/05_seo_aeo_analytics.md §7.2 に第2弾実績を追記、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
feat(seo & cms): GSCデータ駆動CTR最適化 & 高表示回数記事(綾瀬治安・2SLDK納戸)のタイトル&メタディスクリプション刷新 & HubSpot Push-Live & SDD 仕様書同期(①Google Search Console BigQuery 解析結果に基づき、高表示回数ながらCTR改善余地の大きい2大記事 [ja/blog/area-guide-ayase (915 Imp / 4.1位) および ja/blog/2sldk-2ldk-difference-guide (605 Imp / 8.0位)] を選定、②スマホ検索画面32文字表示に最適化し「【綾瀬の治安なぜ悪い?】2026年データで検証!住みやすさ・危険エリアと女性一人暮らしの真実」および「【2SLDKとは?】実質3LDKで家賃が安い理由!エアコン問題・後悔しない納戸(S)の選び方【2026】」へタイトルとメタディスクリプションを刷新、③HubSpot Blog Post API [PATCH /cms/v3/blogs/posts/{id}] 経由で更新し /draft/push-live で即座に本番反映 [HTTP 200実機curl検証済み]、④spec-viewer/docs/hp/05_seo_aeo_analytics.md §7 に CTR 最適化仕様を追記、build_spec.py による仕様書再コンパイル完了)
2026-09-03
Sorai Engineering
feat(analytics & theme): GA4 内部トラフィック・開発PV自動除外機構(?dev=1 永続化除外)実装 & GA4 Admin API によるデータ保持期間14ヶ月最大化 & 主要キーイベント(line_click / contact_submit / quote_complete)登録 & SDD 仕様書同期(①theme/templates/partials/gtm-head.html において管理者・開発者除外ロジックを強化し、URLパラメータ ?dev=1 / ?admin=1 による localStorage および Cookie への永続保存 [1年間有効] を実装、?dev=0 での解除機能を提供し、フラグ検知時に window['ga-disable-G-B836L6QHGD'] = true および dataLayer.push(traffic_type: 'internal') を即座に発動して開発端末・スマホからの全PV水増しを完全根絶、②Google Analytics Admin API 経由でプロパティ 538664250 のデータ保持期間 eventDataRetention をデフォルトの TWO_MONTHS から最大値 FOURTEEN_MONTHS [14ヶ月] へ更新完了、③重要成果アクションである line_click [LINE相談]、contact_submit [問い合わせ送信]、quote_complete [初期費用シミュレーター試算] の 3大キーイベントを GA4 に正式登録しコンバージョン追跡基盤を確立、④spec-viewer/docs/hp/05_seo_aeo_analytics.md §6 に GA4 内部トラフィック除外および Admin API 仕様を追記、build_spec.py による仕様書・カタログ・ナレッジグラフ再コンパイル完了)
2026-09-03
Sorai Engineering
docs(spec): document knowledge graph ground-truth refactoring and 100% connectivity audit results & ナレッジグラフ完全リファクタリング成果仕様書ポータル正式反映 & 偽エッジ(約2,000本)排除・偽Secretノード(42件)クレンジング・全ノード100%結線保証(244ノード/603エッジ/孤立0件)体系化 & docs/12_google_antigravity_guide.md §12.10.2 新設 & docs/99_history_and_changelogs.md 詳細ビフォーアフター記録(①spec-viewer/docs/12_google_antigravity_guide.md に §12.10.2 [高精度アーキテクチャ・ナレッジグラフ (Ground Truth Topology & 100% 結線保証)] を新設し、モジュール単位デカルト積から4大確証辞書 [SERVICE_SECRETS_GROUND_TRUTH, CROSS_REPO_GROUND_TRUTH, ENDPOINT_MAPPING_GROUND_TRUTH, SERVICE_CALLS_GROUND_TRUTH] 駆動への移行経緯、ブログスラッグやNPMパッケージ等偽Secretノード42件の排除とVALID_SECRET_MANAGER_KEYS厳格化、度数degree==0自動プルーニング安全ガードによる全ノード100%結線トポロジー仕様を体系化、②spec-viewer/docs/99_history_and_changelogs.md 最上部に詳細な変更記録セクションを配備し、ビフォーアフター表 [エッジ 2,626➔603本、ノード 286➔244件、孤立ノード 47➔0件]、技術的根本原因、Ground Truth マッピング構造、テスト検証結果を構造化記録、③build_spec.py --target all による仕様書・カタログ・ナレッジグラフ再コンパイル完了、npm run typecheck 11 パッケージ 0 エラー合格、npm run lint:spec 100% 同期合格)
2026-09-03
Sorai Engineering
fix(knowledge-graph): purge false secret nodes and eliminate isolated nodes with 100% connectivity & 不要孤立ノード47件完全撲滅 & ブログ記事スラッグ・NPMパッケージ名誤検出排除 & 外部SaaS/AIノード確証結線 & 孤立ノード自動プルーニング安全ガード配備 & SDD仕様書同期(①build_spec.py において VALID_SECRET_MANAGER_KEYS および is_valid_secret バリデーションを新設し、Markdown 内ハイフン付き文字列から誤抽出されていたブログスラッグ [2sldk-2ldk-difference-guide 等] や NPM パッケージ名 [lucide-react, google-auth-library 等]、UI モジュール、サービスアカウント [*-sa] の偽 Secret ノード 42 件を完全排除、②SERVICE_CALLS_GROUND_TRUTH および CROSS_REPO_GROUND_TRUTH を更新し、孤立していた外部 SaaS / AI ノード 5 件 [svc_sorai-auto-editorial ➔ ai_gemini_38_flash, svc_sorai-inquiry-service ➔ ai_vertex_ai_search, pkg_soraitokyo-cms-theme ➔ ext_cloudflare, pkg_.agents/skills/* ➔ ext_moneyforward, pkg_portal-quote-prototype ➔ ext_suumo] を実態に即して完全結線、③graph.json 出力直前に度数 degree == 0 の孤立ノードを自動除去する安全ガード処理を配備し、孤立エッジ 0 件・孤立ノード 0 件・全 244 ノード 100% 接続トポロジーを確立、④build_spec.py --target all による仕様書・カタログ・ナレッジグラフ再コンパイル完了、npm run typecheck 11 パッケージ 0 エラー合格、npm run lint:spec 100% 同期合格)
2026-09-03
Sorai Engineering
refactor(knowledge-graph): eliminate cartesian product false edges with ground-truth topology & 総エッジ数を2,626本から596本へ適正化(約77%スリム化)& サービス別Secretバインド・エンドポイント別DB/Secret精密結線 & SDD仕様書同期(①build_spec.py の generate_knowledge_graph を全面的にリファクタリングし、仕様書モジュール単位での全API×全Secret総当たりループおよび全サービスへのAPI公開総当たりデカルト積を完全撤廃、②Team 1, 2, 3 の確証データ [Ground Truth] に基づき SERVICE_SECRETS_GROUND_TRUTH、CROSS_REPO_GROUND_TRUTH、ENDPOINT_MAPPING_GROUND_TRUTH、SERVICE_CALLS_GROUND_TRUTH の4大確証辞書を build_spec.py に定数配備、③各エンドポイントを真に所属する単一マイクロサービスからのみ exposes 結線し、ヘルスチェック [/api/system/health, /api/health, /api/system/status] および /api/spec/graph の DB/Secret 偽エッジを 0 件に完全清掃、④実際のコード走査結果に基づきエンドポイントから Firestore コレクションへの reads_writes および Secret Manager への uses_secret のみを精密結線、⑤クロスリポジトリ [CRM拡張・CMS自動化・テーマ] の Secret 参照および API / AI / SaaS 呼出 [calls] を真のトポロジーとして反映、⑥総エッジ数を 2,626 本から 596 本へ適正化 [毛玉グラフを解きほぐし約77%の偽陽性エッジを排除]、総ノード数を 286 件に維持、query_spec_graph.py 検証合格、npm run typecheck 11 パッケージ 0 エラー合格、npm run lint:spec 100% 同期合格)
2026-09-03
Sorai Engineering
fix(cms-editorial): 重複公開記事(rental-optical-fiber-internet-guide-1 全5言語版)のHubSpot完全アーカイブ削除 & 正規URLへの恒久301リダイレクト設定 & duplicate_checker / hubspot_deployer における Exact Slug Match ハードゲート配備による「-1」重複生成の恒久根絶(①HubSpot CMS上に自動執筆パイプラインによって誤って二重公開された ja/blog/rental-optical-fiber-internet-guide-1 [ID: 390398735079] を DELETE アーカイブし、紐づく多言語バリエーション 4件 [en: 390331945665, id: 390331945667, vi: 390331945671, ru: 390398339799] をカスケード削除 [全5件 404化を確認]、②正規オリジナル記事 [ja/blog/rental-optical-fiber-internet-guide 他 5言語版] が健全に公開中 [200 OK] であることを確認、③SEO評価保護およびリンク切れ防止のため HubSpot URL Redirects にて -1 URL から正規 URL への 301 恒久リダイレクトルールを全 5 言語分登録 [HTTP/2 301 転送動作を確認]、④再発防止策として duplicate_checker.py に slug 引数および Zero-Token Exact Slug Match ハードゲートを新設し、同一 Slug の既存記事が存在する場合は LLM 呼び出しを待たずに即座に duplicate_score: 1.0 でスキップ、⑤hubspot_deployer.py において親ポスト作成前に ?slug={ja_slug} による直接 API 照合を行う二重防御 [Defense-in-depth] を配備し、重複 POST による HubSpot の「-1」自動生成を物理的に根絶)
2026-09-03
Sorai Engineering
feat(knowledge-graph): クロスリポジトリ(CRM拡張・CMS自動化)対応ナレッジグラフ更新 & Quick Meta/§11.2 Secret Manager 連携強化 & build_spec.py 抽出ロジック拡張 & SDD 仕様書同期(①spec-viewer/docs/07_crm_extensions.md において Quick Meta [対象パッケージ: real-estate-crm-extensions/sorai-lease-bot, real-estate-crm-extensions/hubspot-quote-generator, real-estate-crm-extensions/contract-extractor, packages/operator-portal / Cloud Run サービス: real-estate-chatbot-operator-portal, gemini-quote-generator / 依存 Secret: HUBSPOT_ACCESS_TOKEN, HUBSPOT_FILES_TOKEN, HUBSPOT_CLIENT_SECRET, JWT_SECRET, gemini-quote-hubspot-client-id, gemini-quote-hubspot-client-secret, hubspot-refresh-token, hubspot-developer-project-key] を反映し §7.11 に見積書メーカー OAuth 2.0 認可および動的トークンリフレッシュ仕様を追加、②docs/08_cms_editorial_pipeline.md Quick Meta に sorai-hubspot-access-token, sorai-mlit-api-key を追加、③docs/11_security_and_secrets.md §11.2 テーブルにクロスリポジトリ Secret 5件 [gemini-quote-hubspot-client-id, gemini-quote-hubspot-client-secret, hubspot-refresh-token, hubspot-developer-project-key, sorai-hubspot-access-token] を追加、④docs/05_quote_maker.md Quick Meta に gemini-quote-hubspot-client-id, gemini-quote-hubspot-client-secret, hubspot-refresh-token を追加、⑤build_spec.py を拡張し Quick Meta のパッケージ・サービスと依存 Secret 間および §11.2 テーブルからの uses_secret エッジ生成を自動化、catalog.json の all_secrets 収集漏れを解消、⑥build_spec.py --target all により仕様書・カタログ・ナレッジグラフ再コンパイル [全278ノード / 2,377エッジ / uses_secret: 1,473件]、npm run typecheck 11 パッケージ 0 エラー合格、npm run lint:spec 100% 同期合格)
2026-09-03
Sorai Engineering
chore(secrets): GCP Secret Manager 不要ポイ得シークレット完全物理削除(poitoku-firebase-sa / poitoku-revalidate-token / poitoku-scraper-token)& アタックサーフェス最小化 & シークレットライフサイクル衛生管理 & SDD 仕様書同期(①不要となったレガシーポイ得関連シークレット 3件 [poitoku-firebase-sa, poitoku-revalidate-token, poitoku-scraper-token] を Google Cloud Secret Manager から物理完全削除、②残留機密情報の漏洩リスクおよび管理コストを根本根絶しシークレット一覧の最小権限・ハイジーン [衛生性] を向上、③spec-viewer/docs/11_security_and_secrets.md §11.23 および 99_history_and_changelogs.md にシークレット廃止管理記録を配備、④build_spec.py --target all による仕様書・ナレッジグラフ再コンパイル・npm run typecheck 0 エラー合格、npm run lint:spec 整合性確認完了)
2026-09-03
Sorai Engineering
feat(agents & skills): アーキテクチャ・ナレッジグラフ直接クエリ&探索専用スキル(sorai-spec-graph)新設 & Antigravity 15大統合スキル体系連携 & CLI ツール(query_spec_graph.py)配備 & AGENTS.md §5.2 コンパイル対象拡張 & SDD 仕様書同期(①.agents/skills/sorai-spec-graph/SKILL.md を新設し spec-viewer/public/data/graph.json および get_spec_graph MCP ツールを用いた依存トポロジー・影響半径 [Impact Radius]・Secret参照先・Firestore読書サービスのクエリ手順を定義、②.agents/skills/sorai-spec-graph/scripts/query_spec_graph.py を実装しノード近傍 [Neighbors]・キーワード検索・型フィルター・Markdown/JSON 出力対応の軽量 CLI を配備、③.agents/AGENTS.md §5.2 Step 4 に build_spec.py --target all による catalog.json および graph.json コンパイルを追記、④spec-viewer/docs/12_google_antigravity_guide.md §12.12 を全15スキル体系へ更新し §12.12.2 に sorai-spec-graph 詳細セクションを追加、⑤build_spec.py --target all による仕様書再コンパイル・npm run typecheck 11 ターゲット 0 エラー合格、npm run lint:spec 整合性確認完了)
2026-09-03
Sorai Engineering
feat(agents & skills): エージェントスキル(sorai-monorepo-qa / sorai-spec-sync)のアーキテクチャ・ナレッジグラフ対応アップデート & トポロジー解析によるテスト影響範囲特定 & graph.json 生成・整合性アサーション & SDD 仕様書同期(①.agents/skills/sorai-monorepo-qa/SKILL.md の Step 1 にナレッジグラフ連携トポロジー解析 [Knowledge Graph Impact Analysis] を導入し API/Secret/DB/共通型の変更時に spec-viewer/public/data/graph.json または get_spec_graph MCP ツールを用いて波及先サービス [Neighbors] を特定しテスト対象パッケージを決定する手順を明記、②.agents/skills/sorai-spec-sync/SKILL.md の Step 4 および Step 5 に build_spec.py --target all によるナレッジグラフ自動生成確認とスキーマ適合性・孤立リンク [Dangling Edges] 不在・件数整合性のアサーション手順を追記、sync_and_verify_spec.py を更新、③spec-viewer/docs/12_google_antigravity_guide.md §12.12 スキル一覧および §12.12.1 にナレッジグラフ連動型 QA & SDD 同期パイプライン解説を配備、④build_spec.py --target all による仕様書再コンパイル・npm run typecheck 11 ターゲット 0 エラー合格、npm run lint:spec 整合性確認完了)
2026-09-03
Sorai Engineering
fix(spec-viewer): resolve Node 20 ESM TS import for Cloud Run deployment(Cloud Run コンテナ node:20-alpine における .ts ESM 直接インポートエラー ERR_UNKNOWN_FILE_EXTENSION を解消するため、src/graph-service.ts を lib/graph-service.js に移植し types/spec-viewer.d.ts と JSDoc で厳格型バインド、routes/api.js および mcp-server.js の import パスを lib/graph-service.js に更新、不要となった src/graph-service.ts を削除、npm run typecheck 11 パッケージ 0 エラー合格、test-mcp.js 全 8 ツール 100% 合格、PORT=8081 node server.js 起動検証完了)
2026-09-03
Sorai Engineering
feat(spec-viewer & knowledge-graph): 仕様書ポータル(spec-viewer)アーキテクチャ・ナレッジグラフ基盤実装 & Cytoscape.js インタラクティブ視覚化 & TypeScript 型定義(GraphNodeType/GraphEdgeType/KnowledgeGraphData)& データ生成拡張(build_spec.py -> public/data/graph.json)& 高性能サービスモジュール(src/graph-service.ts)& REST API(GET /api/spec/graph)& sorai-spec MCP サーバー新ツール(get_spec_graph)& Cloudflare キャッシュ最適化(Cache-Control: public, max-age=604800, stale-while-revalidate=86400)& 単体・結合テスト全8ツール 100% 合格 & npm run typecheck 11 パッケージ 0 エラー合格 & SDD 仕様書同期(①types/spec-viewer.d.ts に GraphNodeType, GraphEdgeType, KnowledgeGraphNode, KnowledgeGraphEdge, KnowledgeGraphData, GraphFilterOptions および Cytoscape グローバル型定義を新設、②build_spec.py に generate_knowledge_graph 関数を実装し全 21 仕様書モジュールから 268 ノード [module, package, service, endpoint, database, secret, ai, external] および 1,869 エッジ [specifies, exposes, reads_writes, uses_secret, calls, references] を自動抽出し public/data/graph.json を生成、③src/graph-service.ts を新設しメモリキャッシュと mtime 検証付き loadGraphData, getFilteredGraph, getNodeNeighbors を完全型付け実装、tsconfig.json に src/**/*.ts および allowImportingTsExtensions を配備、④routes/api.js に GET /api/spec/graph を追加しクエリパラメータ [types, search, moduleId, nodeId, neighbors] による柔軟なサブグラフ抽出・近傍検索を提供、⑤mcp-server.js に get_spec_graph ツールを追加し test-mcp.js にて全8ツールの動作を完全検証、⑥server.js において express.static に maxAge: '7d' および stale-while-revalidate=86400 ヘッダーを設定し Cloudflare CDN キャッシュ配信を極大化、⑦views/layout.html, public/css/style.css, src/graph-viewer.ts, public/js/graph-viewer.js においてサイドバー「ナレッジグラフ」ボタン、フルスクリーンモーダル、Cytoscape.js cose 物理シミュレーション描画、ノード種別別カラー・形状、デバウンス検索・ズームフォーカス、8種トグルフィルター、詳細インスペクターパネル、仕様書アンカー自動スクロール連携を完備、⑧npm run typecheck 全 11 ターゲット 0 エラー 100% 合格、docs/12_google_antigravity_guide.md 仕様同期)
2026-09-03
Sorai Engineering
feat(operator-portal & hubspot-oauth): スマート・アダプティブ・ポーリング(FAST 3.5秒 / MEDIUM 15秒 / SLOW 30秒 / タブ非表示0回 / アクション即時ブースト)& chatRenderer.js 単一責任コンポーネント分割リファクタリング(modules/chat/ 配下 4モジュール分割 & 後方互換 Re-export Barrel)& HubSpot OAuth 複数コンテナ間 Firestore 分散ロック・スピンウェイト機構実装(hubspot_oauth.ts / hubspotOAuthLock.test.js)& 全単体テスト・型検査 0 エラー 100% 合格 & SDD 仕様書同期(①unified-chat.js および chat-space.js において固定ポーリングを撤廃し、直近アクション後 3.5秒 ➔ 1分後 15秒 ➔ 5分後 30秒への適応型減速と Page Visibility API 連動 [非表示時停止/復帰時即時同期]、ユーザー操作時の triggerAdaptiveBoost を実装し Firestore 読み取り回数を最大 70% 削減、②約 1,200行の chatRenderer.js を modules/chat/ [chatUtils.js, messageParser.js, crmCardRenderer.js, feedRenderer.js] の 4モジュールへ分割し単一責任原則と可読性を向上、chatRenderer.js は完全な後方互換バレルとして全関数を再エクスポート、③hubspot_oauth.ts において Firestore system_config/hubspot_oauth の refreshing_at を用いた分散ロックと最大 10秒間スピンウェイトを実装し、Cloud Run 複数インスタンス起動時の同時トークン更新競合および invalid_grant を恒久根絶、saveTokens 時の自動ロック解除と 30秒 TTL フェイルセーフを完備、④hubspotOAuthLock.test.js を新設し全テスト・型検査 100% パス、spec-viewer/docs/04_apply_and_operator_portal.md §4.22 および 09_common_architecture.md §9.6 同期)
2026-09-03
Sorai Engineering
fix(operator-portal & chatRenderer): オペレーター送信メッセージの「既読」ステータス判定適正化(未読時の誤表示防止・LINE ネイティブ仕様準拠)& LINE 自動応答タイムスタンプ完全保証(①LINE Messaging API に開封通知 Webhook が存在しない仕様を踏まえ、chatRenderer.js の renderFeed においてハードコードされていた <span class="read-status">既読</span> を撤廃、②顧客からの後続返信が存在する場合 [other.sender === 'user' && other.timestamp > msg.timestamp] または明示的 isRead フラグが存在する場合のみ「既読」バッジを表示し、未返信時は送信時刻のみを表示して未読時の誤表示を完全防止、③LINE 自動応答 [responder.js / orchestrator.js / onboardingService.js] における appendChatMessage 経由のミリ秒タイムスタンプ [Date.now()] 付与フローを完全検証、④全単体テスト 100% 合格、npm run typecheck 0 エラー合格、spec-viewer/docs/04_apply_and_operator_portal.md §4.21.5 同期)
2026-09-03
Sorai Engineering
fix(operator-portal & firestore-chat-history): 過去メッセージの確定タイムスタンプ付与(62ドキュメント1,154件バックフィル完了)& 時間逆転・割り込み防止(chatHistory.ts / chatMessageService.ts)& 楽観的UI完全一致照合(chatRenderer.js)& 連続メッセージ送信時の上書き・消失バグ完全根絶(①Firestore chat_history 内で timestamp が未定義だったレガシーメッセージに対し、ドキュメント更新時(appendChatMessage)に histData.timestamp が前進して古いメッセージが「現在時刻マイナス数十秒」へタイムシフトし連続送信メッセージの間に割り込むバグを特定、②全 141 ドキュメントをスキャンし timestamp 欠落があった 62 ドキュメント(1,154 メッセージ)に前後関係に基づいた不変確定タイムスタンプを一括付与完了、③packages/common/services/chatHistory.ts の appendChatMessage 内でレガシーメッセージに不変 timestamp を自動補完するガードを配備、④packages/operator-portal/server/services/chatMessageService.ts の fetchUnifiedChatMessages においてフォールバック時刻を docCreateTime 等の不変過去日時にアンカー固定し更新による時刻前進を根絶、⑤packages/operator-portal/public/js/modules/chatRenderer.js の renderFeed において一時行の照合を部分一致から完全一致(===)に厳格化、⑥全単体テスト・型検査 0 エラー 100% 合格、spec-viewer/docs/04_apply_and_operator_portal.md §4.21.4 同期)
2026-09-03
Sorai Engineering
feat(operator-portal & unified-chat-performance): 統合チャット送信レイテンシ極小化(300ms)& 送信クリティカルパス並列化(Promise.all)& HubSpot タイムライン非同期バックグラウンド化 & 重複判定ウィンドウ適正化(3秒)& 楽観的UI一時行永続化・ちらつき完全防止(renderFeed)& 単体テスト 100% 合格 & npm run typecheck 11 パッケージ 0 エラー合格 & SDD 仕様書同期(①packages/operator-portal/server/services/channelDispatcher.ts において SendMessagePayload の cachedContact パラメータをサポートし contactInfoCache からのキャッシュ再利用による HubSpot API 呼び出し完全迂回を実現、チャネル送信ハンドラー実行直後に Firestore appendChatMessage [LINE: 'line', Facebook: 'facebook', Portal: 'portal', Apply: 'apply' 明示指定] と setBotActiveForContact を Promise.all で並列実行、HubSpot タイムライン同期 syncMessageToHubSpotInbox およびプロパティ更新 updateHubSpotContactProperties を .catch による非ブロッキングバックグラウンド処理へ移行し送信クリティカルパスを約2,000msから約300msへ短縮、②packages/operator-portal/server/controllers/unifiedChatController.js の sendUnifiedChatMessage において cachedContact を dispatchOutboundMessage へ渡す高速パスを新設、③packages/operator-portal/server/services/chatMessageService.ts の addMessageToChannel において重複除外判定ウィンドウを 10分間 [600,000ms] から 3秒間 [3,000ms] に短縮し「承知いたしました。」などの連続定型返信の誤破棄を恒久防止、④packages/operator-portal/public/js/modules/chatRenderer.js の renderFeed において送信中の一時行 [.message-row[id^="temp-msg-"]] を退避保持し、サーバー履歴中に直近30秒以内の一致メッセージが存在しない場合はフィード末尾に一時行を再配置 [Re-append] して定期ポーリング時のちらつき・消失を根絶、スクロール位置 [scrollTop] を自動制御してレイアウトシフトを解消、⑤packages/operator-portal/tests/unifiedChatOrder.test.js を更新し 3,000ms 重複判定動作を検証、全単体・E2Eテスト 100% 合格、npm run typecheck 11 パッケージ 0 エラー合格、spec-viewer/docs/04_apply_and_operator_portal.md §4.21 および 09_common_architecture.md §9.2 同期、build_spec.py コンパイル完了)
2026-09-03
Sorai Engineering
feat(apply-portal & smart-sync-autosave-reminders): お申込みポータル(apply-portal)スマート・アダプティブ・ポーリング(完全0円・タブ非表示停止・アダプティブ減速)& フォーム自動一時保存(Auto-Save)・離脱復元(draftController.js)& 4大マイルストーン更新時マルチチャネル自動通知(Email/LINE)& 24時間未完了申込者フォローリマインダー(reminderService.ts)& ITANDI BB 自動入力拡張機能向けエクスポートAPI(/api/contacts/:id/export-application)実装 & 単体テスト全 15 件 100% パス & npm run typecheck 11 パッケージ 0 エラー合格 & SDD 仕様書同期(①realtimeSyncController.js において Cloud Run の常時接続 SSE コストリスクを回避し完全0円でバッテリーに最も優しいスマート・アダプティブ・ポーリングを実装、Page Visibility API によるタブ非表示時通信完全停止 [0回]・フォーム入力中フォーカス干渉防止・アクション直後 3.5秒ブースト ➔ 1分後 15秒 ➔ 5分後 30秒への指数バックオフ減速を配備、②draftController.js を新設し全カードの入力欄を 400ms デバウンスで localStorage に自動保存し画面上部に自動保存ステータスバッジを表示、再訪時にワンタップ復元モーダルを提供、申込完了時に自動破棄、③notificationService.ts を新設し追加要請・審査通過・IT重説確定・初期費用入金確認の 4大マイルストーンで 5言語対応 Email & LINE Push & Unified Chat 履歴記録を同時配信、④reminderService.ts を新設し 24時間以上経過した未完了申込者へ自動フォロー配信および reminder_sent_at による重複防止を実装、POST /api/tasks/check-reminders 定期実行エンドポイントを配備、⑤GET /api/contacts/:id/export-application を新設し ITANDI BB 入力自動化 Chrome 拡張機能向けフラットデータ連携基盤を確立、⑥apply_smart_sync_and_reminders.test.js 全テスト合格、npm run typecheck 0 エラー、spec-viewer/docs/04_apply_and_operator_portal.md §4.20 同期)
2026-09-03
Sorai Engineering
feat(operator-portal & resident-portal): Candidate 1(ポーリング最適化・HubSpot 429 抑制)& Candidate 2(入居者ポータル双方向チャットパイプライン)完全実装 & 単体テスト 100% 合格 & npm run typecheck 11 パッケージ 0 エラー合格 & SDD 仕様書同期(①packages/operator-portal/server/controllers/unifiedChatController.js において contactInfoCache および dealsCache [TTL: 20s] を実装し 3秒毎の定期ポーリング時における HubSpot API [fetchContactById, getContactDeals] 過剰呼び出しと 429 Too Many Requests を恒久防止、チャット履歴は毎リクエスト直接 Firestore から取得し 0秒ラグを完全担保、sendUnifiedChatMessage および toggleBotState でキャッシュを即座に強制無効化 [Cache Invalidation]、_clearUnifiedChatCacheForTesting を提供、②getUnifiedChatMessages 内での liff_activation_code 自動生成ループ副作用を完全撤去、③unified-chat.js および chat-space.js において Page Visibility API [document.visibilitychange] を導入し、ブラウザタブ非表示・最小化時にメッセージポーリング [3秒] および顧客一覧ポーリング [6秒] を即座に完全破棄・停止しタブ表示時に即時取得・再開、④packages/resident-portal/server/routes/chat.js に GET /api/chat/history を新設し verifyCustomerToken による JWT 認証のもと Firestore chat_history/${customerId} から履歴を取得・ロール正規化返却 [operator/user/assistant]、⑤packages/operator-portal/server/services/channelDispatcher.ts において channelSendHandlers.portal のルーティングおよび dispatchOutboundMessage による appendChatMessage(customerId, 'operator', messageToSync, 100, 'portal') 永続化を実装、⑥packages/resident-portal/src/hooks/useChat.js においてログイン顧客の初期マウント時に localStorage と /api/chat/history を mergeHistoryMessages [1分以内同一テキスト重複排除・時系列ソート] でマージし、Page Visibility API 連動の 10秒定期同期待ち受けを配備、⑦packages/resident-portal/src/components/Chat/ChatMessage.jsx および chat.css において msg.sender === 'operator' の描画に対応し Headset アイコン・5言語サポート担当バッジ・ブルー系グラスモーフィズムバブル [.message-operator] を提供、⑧packages/resident-portal/tests/portalChatHistory.test.js を新設し GET /api/chat/history の 401 検証・ロールマッピング検証を完備、packages/operator-portal/tests/unifiedChatOrder.test.js を更新し 20s 内キャッシュヒット・HubSpot API 非重複を自動検証、⑨npm test 全テスト 100% パス、npm run typecheck 0 エラー、npm run build --workspace=resident-portal 100% 成功、spec-viewer/docs/04_apply_and_operator_portal.md §4.19 および 09_common_architecture.md §9.4 同期、build_spec.py コンパイル完了)
2026-09-03
Sorai Engineering
feat(apply-portal & backend-typescript-firestore-sync): お申込みポータル(apply-portal)バックエンド層の TypeScript(.ts)完全移行 & Firestore-First(SSOT)永続化アーキテクチャ確立 & 統合チャット(Unified Chat)完全同期 & 5言語メール配信基盤(mailService.ts)配備 & GCS v2 直接アップロード時の Gemini OCR 自動解析 & HubSpot CRM オブジェクトシリアライズサニタイズ(400エラー防止)& N+1 Fetch 解消 & 郵便番号 API Zipcloud 動的フォールバック & 本番レートリミット適正化(600 req/15min)& 単体・E2Eテスト全 18 件 100% 合格 & npm run typecheck 11 パッケージ 0 エラー合格 & SDD 仕様書同期(①packages/apply-portal/types に Contact, Workflow, Share, API の厳格な TypeScript 型定義 [ApplyRecord 等] を完備、②services/applyRepository.ts を新設し Firestore apply_records, apply_otps, apply_shares コレクションへの SSOT 永続化を実装 [インメモリ依存を解消]、③services/mailService.ts を新設し common/services/mail.js のトランスポーターを活用して日・英・越・露・尼の 5 言語で本番 OTP メール [sendApplicantOtpEmail] およびゲスト招待メール [sendGuestInviteEmail] を配信、④services/workflowService.ts においてポータルチャットログを appendChatMessage('apply_history_' + id, ..., 'apply') で Firestore chat_history へアトミック保存し operator-portal の Unified Chat とリアルタイム双方向同期を実現、⑤services/ocrService.ts にて GCS URI [gs://...] 直接解析をサポートし services/documentService.ts の v2 アップロード完了時に Vertex AI Gemini OCR を自動起動、⑥services/hubspotService.ts において dynamic_request 等のオブジェクト型プロパティを JSON.stringify でサニタイズし 400 Bad Request を根絶するとともに更新後の不要な重複 GET を撤廃して高速化、全 28 プロパティの一括取得に対応、⑦routes/contacts.js の重複 /chat ルートを完全削除、routes/system.js にて Zipcloud API へのタイムアウト付き動的フォールバックを実装、server.js の本番レートリミットを 600 req/15min に緩和、⑧apply.test.js, apply_e2e.test.js, apply_firestore_sync.test.js 全テスト 100% 合格、npm run typecheck 0 エラー合格、spec-viewer/docs/04_apply_and_operator_portal.md §4.18 同期、build_spec.py コンパイル完了)
2026-09-03
Sorai Engineering
feat(unified-chat & typescript-migration): 統合チャット(Unified Chat)バックエンドコアサービス層の TypeScript(.ts)完全移行 & 厳格型付け & ゼロダウンタイム .js 再エクスポート構造確立 & Dockerfile Node 22 型除去実行オプション配備 & 単体・E2Eテスト全 128 件 100% 合格 & npm run typecheck 11 パッケージ 0 エラー合格 & SDD 仕様書同期(①packages/common/services/chatHistory.ts, botStatus.ts, hubspot_oauth.ts および packages/operator-portal/server/services/chatMessageService.ts, draftGenerator.ts, channelDispatcher.ts の計 6 サービスを完全 TypeScript 化、②ChatMessage, ChannelsMap, BotStatusCacheEntry, HubSpotTokenData, DraftSuggestPayload, SendMessagePayload 等の厳格なドメイン型を完全適用、③既存の .js 呼び出し元 [line-bot, facebook-bot, resident-portal 等] への 100% 後方互換性と無停止稼働を担保するため各サービスに export * from './<service>.ts' 再エクスポートスタブを配備、④Dockerfile に ENV NODE_OPTIONS="--experimental-strip-types --no-warnings" を配備し Cloud Run 本番環境 [Node 22 LTS] でのネイティブ型除去実行を確立、⑤tsconfig.json 全体に allowImportingTsExtensions: true を配備、⑥全単体テスト 100% 合格、npm run typecheck 11 パッケージ 0 エラー合格、spec-viewer/docs/04_apply_and_operator_portal.md §4.7 および 09_common_architecture.md §9.2 同期、build_spec.py コンパイル完了)
2026-09-03
Sorai Engineering
fix(unified-chat & backend-p1-ssot): 統合チャット(Unified Chat)AI下書き生成 Pure Chat Store SSOT 統合 & bot_status Firestore SSOT 厳格化 & 未使用エンドポイント完全撤去 & ポータルチャットログ channel: 'portal' 明示化 & 包括的単体テスト(botStatusSSOT.test.js)新設 & SDD 仕様書同期(①packages/operator-portal/server/services/draftGenerator.js において HubSpot タイムライン note 逆パース・重複キャッシュキーループを完全撤廃し fetchUnifiedChatMessages からチャネル別会話履歴を直接取得・サニタイズして Gemini プロンプト生成に一本化、②packages/operator-portal/server/controllers/unifiedChatController.js から未マウントのデッドコード generateDraft を完全削除、③packages/common/services/botStatus.js の isBotActiveForContact において Firestore bot_status を絶対的 SSOT として厳格化 [①5sメモリキャッシュ ➔ ②Firestore bot_status 判定(存在時は最優先適用) ➔ ③未登録時のみ HubSpot プロパティフォールバック]、④packages/resident-portal/server/routes/chat.js の appendChatMessage 呼び出し全箇所に 100, 'portal' を明示付与し Firestore 内でのチャネル属性分離を確立、⑤packages/common/tests/botStatusSSOT.test.js を新設し Firestore overrides HubSpot / 新規顧客 fallback / channels.line = false を自動検証、⑥packages/operator-portal/tests/draftSuggest.test.js を更新し fetchUnifiedChatMessages 経由での履歴取得を検証、⑦全単体テスト 100% 合格、npm run typecheck 11 パッケージ 0 エラー合格、spec-viewer/docs/04_apply_and_operator_portal.md, 09_common_architecture.md 同期)
2026-09-03
Sorai Engineering
fix(unified-chat & backend-p0-stability): 統合チャット(Unified Chat)バックエンド P0 安定性抜本強化 & Firestore トランザクション保護(appendChatMessage)& LINE・Facebook の contact.id 重複書き込み(デュアルライト)完全撤廃 & チャネル完全分離ルーティング(m.channel 優先)によるポータル混入・相互汚染根絶 & HubSpot OAuth インメモリキャッシュ & Single-Flight Promise ミューテックス(refreshPromise)による並行リフレッシュ多重実行完全防止 & 包括的単体テスト(chatHistoryTransaction.test.js)新設 & SDD 仕様書同期(①packages/common/services/chatHistory.js において appendChatMessage を db.runTransaction でアトミック保護し、ユーザー連投やAI・オペレーターの同時応答におけるレースコンディション・上書き消失を完全に防止するとともに channel 引数を構造化メッセージに永続化、②packages/line-bot/services/line/orchestrator.js および responder.js において contact.id / tempContactId への重複保存を撤廃し lineUserId のみに集約、doc.set による過去履歴上書きを撤廃して appendChatMessage に一本化、③packages/facebook-bot/services/facebook/orchestrator.js および responder.js において contact.id への重複書き込みおよび二重 append を撤廃し facebookUserId のみに集約、④packages/operator-portal/server/services/chatMessageService.js の fetchUnifiedChatMessages においてメッセージの明示的 m.channel を最優先で評価し、万一 contact.id 等から読み込まれた場合でも LINE メッセージがポータル等の他タブへ混入するクロスコンタミネーションを恒久根絶、⑤packages/common/services/hubspot_oauth.js において TTL 付きインメモリトークンキャッシュおよび Single-Flight Promise ミューテックス [refreshPromise] を実装し、並行して発生したトークンリフレッシュ要求が 1 つの HTTP 要求を共有してレートリミット超過や不整合を防止、⑥packages/common/tests/chatHistoryTransaction.test.js および unifiedChatOrder.test.js を整備し並列アペンド・単一リフレッシュ・チャネル完全分離を自動検証、⑦全テスト合格、npm run typecheck 0 エラー合格、SDD 仕様書同期)
2026-09-03
Sorai Engineering
fix(operator-portal & unified-chat-send-reliability): 統合チャット送信信頼性強化 & 多重送信完全防止(isSending ガード / 送信ボタン disabled & スピナー化)& 送信失敗時のサイレント握りつぶし解消・入力テキスト自動復元・エラーバッジ / Toast 通知 & Enterキー即時送信・Shift+Enter改行・IME確定誤送信完全防止(Option A 実装)& LINE未連携顧客への事前バリデーション(400エラー / 日本語案内返却)& 包括的 E2E テストスイート(e2e-operator-chat.test.js)新設 & 全単体・E2Eテスト 127 件 100% パス & 型検査(npm run typecheck)0 エラー合格 & SDD 仕様書同期(①packages/operator-portal/server/services/channelDispatcher.js において LINE/Facebook/Portal/Apply のチャネル送信ハンドラを刷新し line_user_id 未登録・無効 ID 顧客への LINE 送信試行時に 400 Bad Request と適切な日本語エラー [LINEが未連携の顧客です。先に認証案内を送信して連携を完了してください。] を即座に返却、不要な Bot OFF や誤書き込みを防止、②LINE API 送信結果を厳格判定しトークン失効や通信エラー発生時に即座に例外をスロー、③packages/operator-portal/server/controllers/unifiedChatController.js においてクライアント起因エラー [未連携・無効ID等] の 400 Bad Request 返却と詳細エラーメッセージを整理、④packages/operator-portal/public/js/unified-chat.js および chat-space.js において isSending フラグ・送信ボタン disabled 化・ローディングスピナー [.send-spinner] を実装し多重送信・連打を 100% 遮断、⑤送信失敗時は下書きテキスト [backupText] を入力欄に即座に自動復元し、フィード上の吹き出しに [⚠️ 送信失敗] バッジを付与、showToast [toast-error] で具体的な失敗原因をオペレーターに即時通知、⑥PC操作性改善として Enter キー単体での即時送信・Shift+Enter での改行・日本語 IME 確定 Enter [isComposing / keyCode 229] の完全除外・Cmd/Ctrl+Enter 両対応を実装しプレースホルダーに操作ヒントを明示、⑦packages/operator-portal/tests/e2e-operator-chat.test.js を新設し全6大シナリオ [LINE正常送信, 未連携バリデーション, 必須パラメータ検証, 未知チャネル検証, 添付ファイル送信・プロキシURL正規化, LINE APIエラーハンドリング] を完全網羅、⑧npm test 全 127 テスト 100% 合格、npm run typecheck 11 パッケージ 0 エラー合格、spec-viewer/docs/04_apply_and_operator_portal.md §4.17 および 07_crm_extensions.md §7.10 同期)
2026-09-03
Sorai Engineering
feat(operator-portal & firestore-chat-consolidation): 全アクティブ顧客の過去チャット履歴完全バックフィル完了 & 統合チャット(Unified Chat)の Firestore-First Pure Chat Store(単一の真実)への完全一本化 & ハイブリッドマージおよび HubSpot Note 逆パース・都度フィルターの完全撤廃(①HubSpot 上の全アクティブ顧客 17 件を自動走査し 8/31 以前の過去会話ログ [合計 1,200 件以上] を Firestore chat_history へ完全バックフィル・永続化完了、②chatMessageService.js において fetchUnifiedChatMessages を Firestore-First Pure Chat Store に完全一本化し HubSpot Notes API 呼び出し・parseMessage 逆パース・都度正規表現フィルターを完全撤廃、③業務システムノート [図面マッチング・見積書・アクセスログ・Breeze AI カルテ分析] の混入リスクを物理的に 100% 根絶、重複表示リスク・タイムスタンプ不整合リスクを 0% 化、タイムライン取得レイテンシを 50ms へ超高速化、④Jennie様はじめ全顧客の全会話ログが 1 件の欠落もなく時系列昇順で完全取得できることを実証、⑤単体テスト・型安全性 100% 検証、docs/04_apply_and_operator_portal.md §4.6 仕様同期)
2026-09-03
Sorai Engineering
feat(ai & gemini-3.8-flash-migration): Gemini 3.7 Flash から Gemini 3.8 Flash への全システムモデル昇格・移行 & Flex PayGo(Tier 1 50% OFF)/ Thinking Config 完全継承 & 単体テスト・型安全性 100% 検証 & SDD 仕様書同期(①packages/common/config/env.js, packages/operator-portal/server/services/draftGenerator.js, packages/operator-portal/server/routes/system.js においてプライマリモデルを gemini-3.8-flash に更新、②packages/operator-portal/public/js/modules/chatRenderer.js のボットアバターツールチップおよび packages/resident-portal/src/App.jsx の初期モデル設定を Gemini 3.8 Flash に更新、③real-estate-cms-operations および .agents の skills/sorai_common.py において DEFAULT_GEMINI_MODEL_FULL を gemini-3.8-flash に更新し Flex PayGo ヘッダー設定・Thinking Level・リトライ機構を完全継承、④google_fact_checker.py, test_flex_paygo.py, test_sorai_common.py のモデル呼び出し・テストを更新、⑤office-to-google-refiner/server.js および index.html の GEMINI_MODEL / UI ステータス表示を Gemini 3.8 Flash に更新、⑥contextCache.test.js, structuredOutputs.test.js, draftSuggest.test.js, gemini.test.js を更新し全テスト 100% 通過、npm run typecheck 0 エラー確認、docs/10_gcp_infrastructure.md, docs/01_customer_service_ai.md, docs/05_quote_maker.md 仕様同期、build_spec.py コンパイル完了)
2026-09-03
Sorai Engineering
feat(operator-portal): complete transition to Firestore-First Pure Chat Store architecture, eliminating HubSpot note reverse-parsing and filter risks & 単体テスト・型安全性 100% 検証 & SDD 仕様書同期(①packages/operator-portal/server/services/chatMessageService.js において fetchUnifiedChatMessages を Firestore-First に完全刷新し HubSpot Notes の逆パース parseMessage と都度フィルター処理を完全撤廃、②顧客関連キー [lineUserId, unlinked_${lineId}, facebookUserId, customerId, apply_history_${customerId}, email, liffActivationCode] から Firestore chat_history ドキュメントを Promise.all で並列取得し純粋なメッセージオブジェクトを直接構築、③Firestore 内の role フィールドから送信者 [operator/bot/user] を直接マッピングし文字列正規表現フィルターの誤認リスクを完全根絶、④各チャネル [LINE, Facebook, Portal, Apply] への振り分けと厳格なミリ秒時系列昇順ソートを適用、⑤packages/operator-portal/tests/unifiedChatOrder.test.js を更新しマルチチャネル集約・未連携履歴マージ・純粋ソートを検証、⑥npm test 全 56 テストパス、npm run typecheck 11 パッケージ 0 エラー合格、spec-viewer/docs/04_apply_and_operator_portal.md §4.6, §4.7 仕様書同期、build_spec.py コンパイル完了)
2026-09-03
Sorai Engineering
fix(timeline): fix parseMessage to prevent dropping multi-message notes or notes with quoted replies by scoping system note check & sync SDD(①packages/common/services/hubspot/timeline.js において parseMessage のシステムノート除外判定を cleanText 全体ではなく先頭/末尾ヘッダー部分にスコープ限定し、メッセージ本文内にシステムキーワードが含まれる場合や引用返信付き Note の誤除外を防止、②単体テスト・型安全性 100% 検証、spec-viewer/docs/01_customer_service_ai.md §1.6 同期)
2026-09-03
Sorai Engineering
feat(operator-portal): redesign customer queue list matching LINE Official Account UI, sort strictly by last message time, and include last message preview & Jennieさん欠落メッセージ補完 & 単体テスト・型安全性 100% 検証 & SDD 仕様書同期(①packages/operator-portal/server/routes/customer.js において AI 状態分割を撤廃し lastMessageTime 純粋降順ソートへ一本化 & Firestore chat_history より最新メッセージ本文抜粋 lastMessageText を抽出返却、②types/client.ts の CustomerItem に lastMessageText を追加、③customerQueueController.js において LINE 公式アカウント風 3 カラム UI [丸型アバター / 顧客名太字+最新メッセージ抜粋 / スマート日時+AIステータスバッジ] へ刷新 & formatCustomerTime [今日: HH:mm, 昨日: 昨日, 今年: M/D, 過去年: YYYY/M/D] を改善、④chat-space.css および unified-chat.css に LINE 風レイアウトスタイルを適用、⑤Jennieさんの Firestore chat_history [Uf29032506516765309daf879ad074319] の欠落メッセージを安全に補完、⑥tests/customerList.test.js を更新し npm test 全テストパス、npm run typecheck 11 パッケージ 0 エラー合格、spec-viewer/docs/04_apply_and_operator_portal.md §4.6, §4.15.1 同期)
2026-09-03
Sorai Engineering
feat(operator-portal): prioritize AI active contacts at top of customer queue & add visible AI status badge & 単体テスト・型安全性 100% 検証 & SDD 仕様書同期(①packages/operator-portal/server/routes/customer.js において /api/customer/list のソート順を改修し aiBotActive: true [AI自動応答中] の顧客をキュー最上段へ最優先配置、同ステータス内では lastMessageTime 降順・名前安定ソートを適用、②public/js/modules/customerQueueController.js において .customer-name-row 内に .customer-name-group を新設し .bot-status-pill [🤖 AI応答中 / 👤 有人対応] を描画、③chat-space.css および unified-chat.css に .customer-name-group と .bot-status-pill スタイルを定義、④packages/operator-portal/tests/customerList.test.js を更新し AI active 優先ソート動作を検証、npm test・npm run typecheck 100% パス、spec-viewer/docs/04_apply_and_operator_portal.md §4.15.1 同期)
2026-09-03
Sorai Engineering
fix(operator-portal): CSP line-scdn 画像許可 & 会話履歴厳格ソート & 未連携バナー完全撤去 & 右側顧客カルテ常時表示レイアウト修正 & 単体テスト・型チェック 100% 検証 & SDD 仕様書同期(①packages/common/middleware/security.js の createHelmet portal/deal プリセットにおいて imgSrc に https://*.line-scdn.net, https://*.fbcdn.net, https://*.cdninstagram.com, https://*.line-apps.com を追加・ワイルドカード化、②packages/operator-portal/server/routes/customer.js において各コンタクトの関連キーから Firestore chat_history のメッセージ履歴が存在するタイムスタンプのみを採用し会話履歴のないコンタクトは latestMessageTime = 0 として最下部に配置 [HubSpot へのフォールバック廃止]、③chatRenderer.js, unified-chat.html, chat-space.js, unified-chat.js から #unlinked-alert-banner の HTML および display 制御を完全撤去、④chatRenderer.js の buildChatWorkspaceHTML を中央チャット・右側顧客カルテの DOM 順序に変更し chat-space.css / unified-chat.css において .hubspot-info-sidebar を border-left: 1px solid var(--border-color) [PC幅 900px 以上で常時展開] にスタイリング、selectCustomer で PC 表示時は初期状態で顧客カルテを常時表示、⑤単体テスト packages/operator-portal/tests/customerList.test.js を更新し npm test 全テストパス、npm run typecheck 11 パッケージ 0 エラー合格、spec-viewer/docs/04_apply_and_operator_portal.md §4.16 同期)
2026-09-03
Sorai Engineering
feat(operator-portal): 顧客一覧キュー(左サイドバー)の直近会話日時ソート(降順)& 日時ラベル表示追加 & 単体テスト・型安全性 100% 検証 & SDD 仕様書同期(①packages/operator-portal/server/routes/customer.js において各コンタクトの関連キーから Firestore chat_history ドキュメントを Promise.all で並列参照し最新メッセージ日時 lastMessageTime を算出、未会話時は HubSpot createdate/lastmodifieddate にフォールバックして降順ソート返却、②types/client.ts の CustomerItem に lastMessageTime を追加、③modules/customerQueueController.js においてフォーマットされた会話日時 [今日: HH:mm, 過去: M/D] を .customer-name-row 内の .customer-item-time として表示、④chat-space.css および unified-chat.css に .customer-name-row と .customer-item-time スタイルを追加、⑤tests/customerList.test.js を新設し降順ソート動作を検証、npm test・npm run typecheck 100% パス、SDD仕様書同期)
2026-09-03
Sorai Engineering
fix(operator-portal): update asset cache busting to v2.1.0 & sync SDD(①server/templates/chat-space.html および unified-chat.html の CSS・JS タグを ?v=2.1.0 に更新、②public/js/chat-space.js, unified-chat.js, chat-common.js の modules/* 内部 ESM インポートに ?v=2.1.0 を付与しブラウザキャッシュ保持を防止、③spec-viewer/docs/04_apply_and_operator_portal.md §4.12.3 を同期し npm test, npm run typecheck, build_spec.py 100% パス)
2026-09-03
Sorai Engineering
ci(deploy): dorny/paths-filter によるスマート差分デプロイ導入 & Cloud Run 選択的デプロイ(resident / deal / operator / common)& CI/CD 実行時間・GitHub Actions クォータ消費極小化 & SDD 仕様書同期(①.github/workflows/deploy.yml に dorny/paths-filter@v3.0.2 を導入し変更パスを common, resident, deal, operator の4系統で検知、②各 Cloud Run デプロイステップに if 条件を付与し変更パッケージのみを選択的にデプロイ、③docs/10_gcp_infrastructure.md §10.13、99_history_and_changelogs.md、changelog.txt を同期し build_spec.py により仕様書コンパイル完了)
2026-09-02
Sorai Engineering
feat(unified-chat & breeze-exclusion-auth-modal-avatar): 統合チャット Breeze AI システムノート除外 & 未連携ユーザー本人確認・認証リクエスト機能(モーダル/バナー/ボタン)& LINE・Facebook 顧客プロフィール画像(アバター)連携 & 単体テスト・型安全性 100% 検証 & SDD 仕様書同期(①packages/common/services/hubspot/timeline.js および contact.js において SYSTEM_NOTE_REGEX / SYSTEM_NOTE_EXCLUSION_REGEX に Breeze AI 顧客カルテ分析・AI会話要約・顧客ペルソナ・推奨ネクストアクションキーワードを追加し parseMessage で null 判定除外、②breezeService.js における Note 重複作成を無効化、③packages/operator-portal に authRequestController.js / #request-auth-modal / #unlinked-alert-banner / .auth-request-badge-btn を新設し未連携ユーザーへの認証リクエスト機能とバナー制御・スタイルを実装、④properties.js に line_picture_url / facebook_picture_url を追加し LINE Bot Webhook からアバター URL を HubSpot に自動同期・統合チャットキュー/ヘッダー/タイムラインに表示、⑤hubspot.test.js に Breeze AI 除外テストを追加し npm test 全 36 テストパス、npm run typecheck 11 パッケージ 0 エラー合格、SDD 仕様書同期)
2026-09-02
Sorai Engineering
feat(hubspot-integration & custom-properties): HubSpot CRM 連携ステータス専用カスタムプロパティ(line_integration_status / facebook_integration_status)完全移行 & 姓(lastname)ステータスタグ廃止・既存コンタクトクリーンアップ & 単体テスト・型安全性 100% 検証 & SDD 仕様書同期(①packages/common/services/hubspot/properties.js に line_integration_status [unlinked/linked/manual_verification] および facebook_integration_status [unlinked/linked] のプロパティ定義を追加、②packages/common/services/hubspot/contact.js においてテンポラリ作成時の lastname: '' デフォルト化および取得プロパティ追加、③packages/common/services/onboardingService.js において verifyMagicLink / validateAndProcessTransferCode 連携完了時に line_integration_status: 'linked' / facebook_integration_status: 'linked' を更新し lastname への状態文字書き込みを廃止、④packages/line-bot / packages/facebook-bot のオーケストレーターにおいて isLinked / isUnlinked 判定をカスタムプロパティ基準 [未設定時はレガシーフォールバック] に移行、⑤packages/operator-portal の customer.js および unifiedChatController.js において lastname/firstname からタグを除去して正規化された氏名を表示し lineIntegrationStatus / facebookIntegrationStatus を返却、⑥packages/common/scripts/migrate_integration_status.js を実行し全 87 件のコンタクトを走査して 20 件の既存コンタクトの氏名クリーンアップとステータスバックフィルを完了、⑦npm test 全 35 テストパス、npm run typecheck 11 パッケージ 0 エラー合格、SDD 仕様書同期)
2026-09-02
Sorai Engineering
fix(operator-portal & system-note-filtering): 統合チャット(Unified Chat / Chat Space)システム業務ノート(図面マッチング・帯替え・見積書・アクセスログ・OCR)混入防止 & parseMessage / isChatOrSystemNote 正規表現大幅強化 & getChatHistory 移行 & SDD 仕様書同期(①packages/common/services/hubspot/timeline.js に SYSTEM_NOTE_REGEX を新設し図面マッチング・帯替え完了・見積書自動生成・流入元アクセスログ・OCR文字起こしパターンを包括網羅し parseMessage の raw body / cleanText / fallback / メッセージ本文で確実に null 判定除外、②packages/common/services/hubspot/contact.js の isChatOrSystemNote に SYSTEM_NOTE_EXCLUSION_REGEX を適用、③packages/operator-portal/server/services/chatMessageService.js において fetchNotesByContactId を getChatHistory に移行し Notes と Communications の双方を健全取得、④packages/operator-portal/tests/hubspot.test.js に図面マッチング・見積書・アクセスログ除外テストを追加、⑤npm test および npm run typecheck 100% パス、SDD 仕様書同期)
2026-09-02
Sorai Engineering
doc(agent-guidelines & github-actions-first): GitHub Actions 優先デプロイ運用原則(GitHub-Actions-First Policy)の策定 & Master AGENTS.md・chatbot AGENTS.md・セキュリティ/SDDスキル・仕様書(docs/10_gcp_infrastructure.md §10.12)への明文化(①.agents/AGENTS.md §2.4 および real-estate-chatbot/.agents/AGENTS.md §3.5 に GitHub Actions 優先デプロイ原則を新設し月間無料枠 2,000分に達するまではローカル直接デプロイを行わず git push による WIF 連携クラウド自動デプロイを最優先化、②手元リソース消費・待ち時間のゼロ化 [Push & Proceed] および並行先行仕様書同期 [Concurrent Spec-Sync] の徹底を規定、③sorai-security-hardening / sorai-spec-sync スキルに Actions クォータ監視とフォールバック指針を反映、④docs/10_gcp_infrastructure.md §10.12 を新設し SDD 仕様同期完了)
2026-09-02
Sorai Engineering
feat(quote-generator & iframe-jwt-auth): 見積書メーカー&SUUMO物件一括調査拡張(hubspot-quote-generator)短命署名 JWT トークン発行 API(GET/POST /api/auth/iframe-token)新設 & UI 拡張カード(QuoteCard.tsx / PropertyCard.tsx)hubspot.fetch トークン取得・ift パラメータ付与 & 全 API ルートデュアル認証(verifyRequestAuth: JWT検証 + timingSafeEqual 静的トークン比較)統合 & app-hsmeta.json permittedUrls.fetch 登録 & Next.js ビルド 100% 成功 & SDD 仕様書同期(①hubspot-quote-generator/src/lib/auth.ts を新設し generateIframeJwt, extractRequestToken, verifyRequestAuth による 1時間短命 JWT 認証と timingSafeEqual による SORAI_API_TOKEN デュアル認証を一元化、②src/app/api/auth/iframe-token/route.ts を配備し GCP Secret Manager [JWT_SECRET / jwt-secret] 署名トークン発行 API を新設、③全 API ルート [/api/deal-info, /api/analyze-quote, /api/generate-quote, /api/properties/fetch-details, /api/properties/create-deal-note] の認証ロジックを verifyRequestAuth に移行、④QuoteCard.tsx および PropertyCard.tsx において hubspot.fetch でトークンを取得しモーダル URI に token=${token}&ift=${token} を付与、⑤app-hsmeta.json の permittedUrls.fetch に Cloud Run URL を登録、⑥npm run build 100% 成功、SDD 仕様書同期)
2026-09-02
Sorai Engineering
feat(deal-service & iframe-jwt-auth): HubSpot Sandboxed Iframe 向け短命 JWT 認証基盤(iframeAuth.js)新設 & deal-service トークン発行 API(POST /api/auth/iframe-token)配備 & verifyOperatorOrHubSpotSignature 多層フォールバック統合 & uploadModal.js ift トークン自動伝搬 & SDD 仕様書同期(①packages/common/middleware/iframeAuth.js を新設し generateIframeToken, extractIframeToken, verifyIframeToken による 5分間短命 JWT 認証を実装、②packages/common/middleware/auth.js の verifyOperatorOrHubSpotSignature において Iframe JWT トークン -> HubSpot Webhook 署名 -> オペレーター Cookie セッションの多層フォールバックを統合、③packages/deal-service/app.js に POST /api/auth/iframe-token を配備、④packages/deal-service/views/uploadModal.js において window.location.search から ift パラメータを抽出し SSE ストリームおよびフォールバック fetch の URL パラメータ・ヘッダー [X-Iframe-Token] へ自動付与、⑤npm run typecheck 0 エラー 100% パス、SDD 仕様書同期)
2026-09-02
Sorai Engineering
fix(facebook-poster & duplicate-prevention-iam): Facebook 自動投稿の二重投稿防止 & GCS バケット IAM 権限適正化 & BigQuery 状態自動復元フォールバック & 多言語記事言語チェックガード実装 & 重複投稿クリーンアップ & SDD 仕様書同期(①Cloud Run 実行サービスアカウント 902297816152-compute@developer.gserviceaccount.com に GCS バケット gs://sorai-facebook-poster-state の roles/storage.objectAdmin 権限を付与し 403 Forbidden による状態ファイル消失・最新記事再投稿バグを根本根絶、②theme/tools/facebook-poster/state_manager.py において GCS 失敗時やコンテナ起動時に BigQuery hubspot_data.facebook_posts から過去の投稿済み post_id を自動取得・マージする自己修復フォールバックを実装、③scheduler.py において英語版ボットでの日本語タイトル未翻訳記事スキップガードおよび直近30日以内の同一タイトル重複投稿ブロックガードを追加、④Meta Graph API により本日二重投稿された余分な投稿 [JA: 1168140463045963_122139277995354484, EN: 1168140463045963_122139215397354484] を安全に完全削除、⑤GCS auto_post_state.json を完全同期、SDD 仕様書同期)
2026-09-02
Sorai Engineering
refactor(spec-viewer & no-build-strict-types): 仕様書ポータル(spec-viewer)No-Build 厳格型安全化(アプローチ A: checkJs: true + 型定義ファイル配備 + JSDoc 完全注釈 + npm run typecheck 100% パス)& MCP サーバー・REST API・パーサー型堅牢化 & SDD 仕様書同期(①spec-viewer/types/spec-viewer.d.ts を新設し Express.Request セッション拡張 [req.session.user, unauthorizedUser]、SpecHeading, SpecSection, SpecBreadcrumb, SpecNavModule, DomainCategory, SearchIndexItem, CatalogService, CatalogRoute, CatalogData, ChangelogEntry, SpecModuleSummary, SpecVerificationStatus を完全定義、②spec-viewer/types/cookie-session.d.ts を配備し cookie-session アンビエント型宣言を提供、③spec-viewer/tsconfig.json において checkJs: true を有効化しサーバーサイドスクリプト [server.js, mcp-server.js, lib/*.js, routes/*.js, test-mcp.js] を厳格対象化、④server.js, lib/auth.js, lib/parser.js, routes/api.js, mcp-server.js の JSDoc 型注釈を完全整備し npx tsc -p spec-viewer/tsconfig.json --noEmit およびモノレポ全11ターゲットの npm run typecheck を 0 エラー 100% パス、⑤node test-mcp.js 全7ツール疎通テスト成功、build_spec.py および spec_drift_linter.py による 100% 同期検証、SDD 仕様書同期)
2026-09-02
Sorai Engineering
feat(spec-viewer & modern-ui-ux-zero-emoji): 仕様書ポータル(spec-viewer)人間向け UI/UX 全面刷新 & 完全ノー絵文字(Zero-Emoji / SVG & テキストバッジ置換)& 3ペイン構造(Sidebar / Content / On-This-Page TOC)& ScrollSpy リアルタイム連動 & ダーク/ライトテーマ切替(localStorage)& 見出しパーマリンク(#)& 前後モジュールカードナビ & コードブロック言語バッジ&ワンクリックコピー & Mermaid 全画面パン・ズーム(svgPanZoom)& 100% 型安全性 & SDD 仕様書同期(①lib/parser.js および server.js において DOMAIN_CATEGORIES や全ラベルから絵文字を完全排除し SVG アイコンとテキストバッジ [AI, PORTAL, INFRA, SPEC, SYS, HP] に統一、②views/layout.html を 3ペイン構造 [Sidebar, Center Content, Right On-This-Page TOC] に刷新し ダーク/ライトテーマ切替ボタン、Mermaid 全画面モーダル、パンくずリスト、前後モジュール遷移カードを完全配備、③public/css/style.css において [data-theme="dark"] および [data-theme="light"] の完全変数パレット、テーブルヘッダー固定 [position: sticky]、見出しホバー時のパーマリンク [#]、コードブロック [言語バッジ/Copy]、レスポンシブドロワーを構築、④public/js/app.js および mermaid-viewer.js において On-This-Page 目次の動的生成、ScrollSpy 連動、localStorage テーマ永続化、svgPanZoom 操作 [Zoom In/Out/Reset/Download]、コードワンクリックコピーを実装、⑤npm run typecheck, build_spec.py, spec_drift_linter.py 100% 合格、Cloud Run 本番デプロイ完了、SDD 仕様書同期)
2026-09-02
Sorai Engineering
feat(spec-viewer & ai-first-optimization): 仕様書ポータル(spec-viewer)AIファースト最適化 & 履歴アーカイブ分離(history_2026_08.md)& 全19モジュール Quick Meta 構造化要約ブロック配備 & ビルダー拡張(catalog.json 自動出力)& 4大ドメイン(AI & Automation / Portals & Operations / Infra & Security / Overview & History)サイドバーカテゴリツリー化 & SDD 仕様書同期(①docs/99_history_and_changelogs.md から 2026年8月以前の改修ログを docs/archives/history_2026_08.md として新規作成・退避し直近9月更新のみを高密度保持、②docs/00〜12 および docs/hp/00〜05 の全19モジュール冒頭に見出し直下の Quick Meta 構造化要約ブロック [対象パッケージ, Cloud Run サービス, 主要エンドポイント, 依存 Secret, Firestore コレクション] を完全配備、③build_spec.py を機能拡張し確定仕様のみを高密度結合するとともに全モジュールからエンドポイント・Secret・DB・Cloud Run を自動パースして catalog.json を自動出力、④lib/parser.js に DOMAIN_CATEGORIES を新設し server.js / layout.html / style.css / app.js においてサイドバーを 4大ドメイン [AI & Automation, Portals & Operations, Infra & Security, Overview & History] のグループヘッダー付きで整理・描画、⑤全単体テスト・構文チェック・仕様書ビルド 100% 成功)
2026-09-02
Sorai Engineering
feat(spec-viewer & google-oauth-sso): 仕様書ポータル(spec-viewer)脱ID/PASS & Google OAuth 2.0 SSO (Google Workspace / kinguada1008@gmail.com) 移行 & 30日間自動セッション & 403 Forbidden 画面配備 & CI/CD デプロイ設定更新 & SDD 仕様書同期(①spec-viewer/lib/auth.js において Basic 認証フォールバック [WWW-Authenticate / SPEC_PASS] を完全撤廃し Google OAuth 2.0 SSO に一本化、②isUserAuthorized により @sorai.tokyo ドメインおよび kinguada1008@gmail.com / ALLOWED_DOMAINS / ALLOWED_USERS を厳格認可、③非認証時 /login リダイレクト・非認可時 /forbidden リダイレクト・開発環境モックバイパス [dev-admin@sorai.tokyo] を整備、④views/login.html および views/forbidden.html をソライ東京デザインシステムで新規作成、⑤server.js において 30日間セッション [maxAge: 30d] 設定・ユーザーメール注入を実装し layout.html サイドバー下部にユーザーメールバッジ&ログアウトリンクを配備、⑥.github/workflows/deploy-spec.yml において --allow-unauthenticated, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, SESSION_SECRET を設定し SPEC_PASS を完全削除、⑦docs/10_gcp_infrastructure.md §10.2, §10.6, docs/11_security_and_secrets.md §11.2, §11.22 同期)
* 2026-09-02: feat(common & ai-circuit-breaker-degradation): AI 縮退運転基盤(Graceful Degradation & Circuit Breaker)の構築 & 電話 AI(03-6161-8484 / IVR)最優先保護 & LINE・Web・バッチ定型フォールバック実装 & CLI モード切り替えコマンド(npm run mode:*)配備 & SDD 仕様書同期(①common/services/degradationService.js を新設し Firestore system_config/ai_degradation [mode: normal
Sorai Engineering
degraded | emergency_stop] と 60s メモリキャッシュによる 0ms 判定層を構築、②縮退モード時に電話 AI [Gemini Live API] のみを 100% 稼働継続し LINE チャット [スタッフ確認定型案内]・Web 問い合わせ下書き [厳選定型テンプレート返却]・初期費用相見積もり [手動フォーム案内]・自律執筆バッチ [即時スキップ] へ安全に縮退、③scripts/set-ai-mode.js および npm run mode:status / mode:degraded / mode:normal / mode:stop スクリプトを配備、④単体テスト degradation.test.js 100% パス、npm run typecheck 0 エラー合格、docs/10_gcp_infrastructure.md §10.8 仕様同期)
2026-09-02
Sorai Engineering
data(firestore & pitr-backup-schedule): Cloud Firestore ポイントインタイムリカバリ (PITR) 本番有効化 & 日次スケジュール自動バックアップ (Daily Backup Schedule) 構築 & 災害復旧 (DR) コマンド配備 & 運用継続性・BCPリスク分析 & SDD 仕様書同期(①gcloud firestore databases update --enable-pitr を実行し sorai-indexing-30323 の (default) データベースにて PITR [7日間保持 / versionRetentionPeriod: 604800s] を本番有効化し過去7日間の任意の1分単位へのタイムトラベル復元を確立、②gcloud firestore backups schedules create --recurrence=daily --retention=7d を実行し日次自動バックアップスケジュール [ID: 3c6766fb-8399-4165-b6ad-0c01a9bd72e3] を新設して7世代保持体制を構築、③論理障害・誤更新・改ざんによるデータ恒久喪失リスクを月額数十円の極小コストで完全排除、④docs/10_gcp_infrastructure.md §10.4, docs/11_security_and_secrets.md §11.5, docs/99_history_and_changelogs.md に仕様および復元コマンドを完全同期)
2026-09-02
Sorai Engineering
infra(gce & uptime-kuma-monitoring): GCE コスト最適化調査 & 遊休リソース活用による Uptime Kuma 24時間死活監視・自動ウォームアップ基盤の構築 & 死活監視一本化 & レガシー記事自動分類エージェントの廃止・クリーンアップ(hubspot_deployer で生成時100%タグ付与に完全移行)& ローカル LaunchAgent 整理 & gcloud ログ自動クリーンアップ cron 配備 & SDD 仕様書同期(①全8件の GCP プロジェクトにおける GCE/ディスク/静的IP横断スキャンを実施し clocall-phone-tokyo-vm [e2-small / 15GB pd-standard / 34.180.104.199 / 月約3,200円] の実リソース消費 [RAM 538MB / 空き 1.2GB以上 / CPU 99%アイドル] を特定、②e2-micro ダウングレード時のリスク [CPU Throttling による音声途切れ・ジッター・OOM切断リスク] および CUD [1 vCPU 最小購入単位の制約] を分析し現行安定運用を維持、③余剰メモリを活用してオープンソース Uptime Kuma [Docker Compose / ポート 3001 / IAP トンネル保護] を追加コスト 0 円で立ち上げ、④ソライ東京の全 10 大エンドポイント [公式HP, 仕様書ポータル, Cloud Run 各種API] を 30分間隔 [1800秒] で常時監視・自動ウォームアップ [月間リクエスト消費は無料枠のわずか 0.72% で完全 0円] & Google Chat Webhook 障害・復旧・SSL期限アラートを連携、⑤旧 1日3回 cron [cloudrun_warmup_healthcheck.py] を Uptime Kuma に一本化して停止、⑥過去の救済用だったレガシー記事自動分類エージェント [sorai_post_classification_agent.py] を安全に廃止 [最新パイプライン hubspot_deployer.py で最初から100%タグ付与されるため不要] & ローカルの不要 LaunchAgent [articleclassifier, linkagent] を安全に停止・整理、⑦20分毎のトークン更新で 7.2GB 蓄積していた gcloud ログを削除 [空き容量 7.8GB に回復] し毎日 03:00 JST の 7日超過ログ自動削除 cron を配備、SDD仕様書同期)
2026-09-02
Sorai Engineering
feat(apply-portal & ergonomic-chat-dock): 入居申込ポータル(apply-portal)チャット入力欄の全面 UI/UX 刷新 & 自動伸縮テキストエリア(<textarea>)採用 & 日本語 IME 確定誤送信防止(isComposing / Enter送信 / Shift+Enter改行)& 共有ボタン左側分離 & ダイナミック発光送信ボタン & 5言語操作ヒントプレースホルダー配備 & SDD仕様書同期(①従来の単一行 input[type=text] を廃止し、入力行数に応じて 1行[24px]〜5行[120px] までスムーズに追従・伸縮する textarea[#chat-text-input] を導入、②Enter で即時送信・Shift+Enter で改行の現代標準操作を実現し、日本語入力時の変換確定 Enter による誤送信を compositionstart/end で 100% 防止、③誤タップ要因となっていた送信ボタン隣の共有ボタンを入力欄左側 [.dock-action-btn] に分離し、テキスト入力時に送信ボタンがディープエメラルド [#2E5C55] に発光するアクティブインタラクションを配備、④translations.js にて 5言語 [JA, EN, VI, RU, ID] すべてのプレースホルダーに操作ヒントを同期、⑤Chrome DevTools 実機検証および型検査・全単体テスト 100% パス、SDD仕様書同期)
2026-09-02
Sorai Engineering
feat(apply-portal & ui-ux-5lang-a11y): 入居申込ポータル(apply-portal)UI/UX改善 & 5言語(JA, EN, VI, RU, ID)完全対応 & 56箇所以上のフォームアクセシビリティ(WCAG 2.1 AA)完全適合 & Chrome DevTools / Lighthouse 視覚検証(①ui.js の構文エラー修正および 5言語表示マップ同期、②translations.js にロシア語 [ru]・インドネシア語 [id] 辞書を完全配備し flowController.js / state.js と同期、③index.html 内の全56箇所以上の入力欄 [氏名, 生年月日, 住所, 勤務先, 年収, 緊急連絡先, 連帯保証人, 同居人, IT重説日時, OTP] において <label for="..."> および aria-label の関連付けを100%徹底しスクリーンリーダー完全適合、④style.css においてスマホ画面 [<=520px] での eKYC 身分証スロット 1カラム最適化、ディープエメラルド&ゴールド発光フォーカスリング、背景オーブの水平はみ出し防止 [overflow: hidden] を適用、⑤Chrome DevTools MCP による実機ブラウザ・5言語切り替え [Русский / Bahasa Indonesia 等] 視覚検証および Lighthouse Accessibility 92 / Best Practices 96 達成、SDD仕様書同期)
2026-09-02
Sorai Engineering
deploy(editorial & max-output-tokens-30000): Cloud Run Jobs(sorai-auto-editorial)最新コード再デプロイ & max_output_tokens=30000 拡張設定完全反映(①sorai_common.build_genai_config のデフォルト max_output_tokens を 30,000 tokens へ拡張し、9,000字超の長文コラム執筆および 4言語 [EN, VI, RU, ID] H2並列翻訳時の出力途絶・不完全終了リスクを根本排除、②article_generator.py および article_translator.py の生成設定を 30,000 tokens に同期、③Cloud Build による最新コンテナビルド [asia-northeast1-docker.pkg.dev/sorai-indexing-30323/sorai-apps/sorai-auto-editorial:latest] & Cloud Run Jobs sorai-auto-editorial 本番再デプロイ完了、④gcloud run jobs describe による最新イメージおよび環境設定確認、SDD仕様書・changelog同期)
2026-09-02
Sorai Engineering
deploy(editorial & cloud-run-jobs-latest): Cloud Run Jobs(sorai-auto-editorial)最新コンテナビルド(Cloud Build)& 本番再デプロイ & 本日実施の全機能改善完全同期(①Gemini 3.5 Flash-Lite H2 セクション分割 4言語並列翻訳アーキテクチャ [split_html_into_sections / ThreadPoolExecutor / Structural Guard]、②2x2 ステップカード [.step-process-grid] のヘッダー見出し [.step-title] およびピルバッジ [.step-badge] へのインライン白文字 [color: #ffffff !important] 強制注入によるコントラスト保証、③is_japanese_content における HTML コメント除去および長文対応閾値 [50文字以上/>1%] による日本語判定誤検知の根本根絶、④Google 検索グラウンディングによる 2026年最新税制・補助金・法改正ファクト自動修正を反映した最新コンテナを Cloud Build によりビルド・プッシュ [asia-northeast1-docker.pkg.dev/sorai-indexing-30323/sorai-apps/sorai-auto-editorial:latest]、⑤Cloud Run Jobs sorai-auto-editorial 本番デプロイ [2GiB RAM, 1 CPU, タイムアウト14400s (4h), max-retries 1, Secret Manager: HUBSPOT_ACCESS_TOKEN, MLIT_API_KEY, LIBRARY_API_KEY] & Cloud Scheduler トリガー連携確認、SDD仕様書同期)
2026-09-02
Sorai Engineering
fix(editorial & step-card-contrast-healing): 2x2ステップカード(.step-process-grid)ヘッダー見出し(.step-title)のダーク背景文字色潰れ根本解消 & インラインスタイル(color: #ffffff !important)強制注入 & テーマCSSスコープ適正化(.process-step-card .step-title)& 全公開記事42件一括自律修復・Push-Live & HubSpot CMSテーマデプロイ & SDD仕様書同期(①style.css, home-enhancements.css, _home.scss においてグローバルの .step-title に設定されていた濃紺色 color: var(--primary-indigo) をホームページ専用の .process-step-card .step-title へスコープ限定、②editorial_design_system.py および pipeline.html_formatters.py の format_step_process_cards / convert_step_svg_to_html_cards において .step-title および .step-badge に color: #ffffff !important を明示注入、③is_japanese_content の誤検知防止として HTML コメント除去および長文本文対応閾値(50文字以上/>1%)を適用、④全42件の公開済み記事をバッチ一括修復し HubSpot CMS に PATCH & Push-Live 完了、⑤deploy_cms_theme により最新テーマ CSS を本番へ即時配信、SDD仕様書同期)
2026-09-02
Sorai Engineering
deploy(apply-portal & sandbox-otp-bypass): 入居申込ポータル(apply-portal)サンドボックスユーザー(101, 102, 103, 104等)OTP自動バイパス・即時返却ロジック実装 & Cloud Build 最新コンテナビルド & Cloud Run 本番(real-estate-chatbot-apply)/ ステージング(real-estate-chatbot-staging-apply)デプロイ & SDD仕様書同期
2026-09-02
Sorai Engineering
fix(notifications & google-chat-test-guard): テスト実行時・テストユーザー検証時における Google Chat 通知の完全抑止安全ガード実装(①packages/common/services/googleChat.js において NODE_ENV === 'test' 環境下での本番 Google Chat Webhook URL への実 POST 送信を完全遮断、単体テスト用モック Webhook URL のみ安全にインターセプトを許可する安全ガードを実装、②packages/apply-portal/services/notificationService.js および packages/operator-portal/server/services/apiWatcher.js においても NODE_ENV === 'test' およびテスト用コンタクト ID の通知スキップガードを整備、③単体・結合テストスイート全件 100% パス、全11パッケージの静的型検査 npm run typecheck エラー 0 件合格、SDD仕様書同期)
2026-09-02
Sorai Engineering
sec(cloudflare & hsts-transform-rules): Cloudflare MCP 認証復旧・公式SDKサーバー配備 & HSTS 強制有効化(max-age: 1年, preload, includeSubDomains)& エッジセキュリティレスポンスヘッダー自動注入(Transform Rules: nosniff, SAMEORIGIN, strict-referrer, permissions-policy)適用 & 不正アクセス防御分析完了 & SDD仕様書同期
2026-09-02
Sorai Engineering
infra(spec-viewer & cloudflare-subdomain): 仕様書ポータル(sorai-system-spec)の独自サブドメイン化(https://spec.soraitokyo.jp)& Cloudflare CDN・SSL・DDoS保護統合 & Cloud Run Domain Mapping 連携 & 全参照URL刷新 & SDD仕様書同期(①Cloud Run ドメインマッピング spec.soraitokyo.jp を us-central1 に新設し Google Trust Services マネージド SSL 自動発行、②Cloudflare DNS に CNAME spec.soraitokyo.jp -> ghs.googlehosted.com を proxied: true で登録し Anycast CDN / HTTP/3 / DDoS 防御を全面適用、③.agents/AGENTS.md, docs/10_gcp_infrastructure.md, scripts/monitoring/ 配下の旧 Cloud Run デフォルト URL を https://spec.soraitokyo.jp/ へ一括移行、④全単体テスト・型検査 100% パス、SDD仕様書同期)
2026-09-02
Sorai Engineering
feat(editorial & slot2-h2-chunking-retranslation): スロット2記事(防音・遮音性構造比較 / queue-057 / JA ID: 389991139009)の 3.5 Flash-Lite H2 セクション分割 4言語(EN, VI, RU, ID)完全長文再翻訳 & Structural Guard 100% 保持(EN 44,189字, VI 43,883字, RU 44,141字, ID 46,429字 / H2: 7, H3: 15, P: 41, SVG: 1)& HubSpot CMS PATCH・新規作成(VI: 389967375037)・言語グループ結合(attach-to-lang-group)・Push-Live & BigQuery キュー完了更新・RAG ナレッジベース同期 & SDD 仕様書同期
2026-09-02
Sorai Engineering
feat(editorial & 3.5-flash-lite-h2-chunking-translation): 3.5 Flash-Lite による H2 セクション分割翻訳アーキテクチャ(split_html_into_sections)の実装 & メタデータ(Title/Meta/SVGTexts)独立局所翻訳 & ゼロ要約プロンプト制約 & ThreadPoolExecutor 4言語並列実行 & Structural Guard(H2>=90%, H3>=80%, P>=70%, SVG 100%保持)アサーション配備 & 薄肉化していた queue-081(千代田線・医療従事者賃貸ガイド)の全4言語(EN, VI, RU, ID)完全長文再翻訳(各言語15,000〜25,000文字相当)& HubSpot CMS 再デプロイ・Push-Live & BigQuery 同期 & SDD仕様書同期
2026-09-02
Sorai Engineering
fix(editorial & iam-scheduler-recovery): 自動執筆パイプライン復旧 & GCP IAM 権限適正化(Compute SA roles/run.developer 付与)& deploy_gcp_cloud_run_job.sh 更新 & ローカル LaunchAgent 仮想環境パス修正・再読み込み & Cloud Scheduler 疎通検証 & 多言語ブログ記事大量同期 & 売買AIシミュレーター・ポータル相見積もりアイデア体系化(①Cloud Scheduler による Cloud Run Job 実行に必要な roles/run.developer ロールを 902297816152-compute@developer.gserviceaccount.com に付与、②automation/deploy_gcp_cloud_run_job.sh の IAM 設定を roles/run.developer に更新、③macOS LaunchAgent com.soraitokyo.auto_editorial.plist の Python 実行パスを仮想環境 /Users/adachishuuhei/real-estate-cms-operations/.venv/bin/python3 へ更新し launchctl 再読み込み完了、④Cloud Scheduler ジョブ sorai-auto-editorial-trigger の手動実行テストにより Cloud Run Job sorai-auto-editorial-cl7xr の正常起動・疎通を確認、⑤DX不動産サービス・北千住レトロ散歩・足立区住宅補助金2026など全28トピック超の多言語ブログ記事(JA, EN, VI, RU, ID)を完全同期、⑥売買特化型AI住宅ローン・諸費用シミュレーターWeb組み込みおよびポータル売買相見積もり対応アイデアの体系化、SDD仕様書同期)
2026-09-01
Sorai Engineering
refactor(monorepo & typescript-hardening): real-estate-chatbot モノレポ全体の境界・基盤硬化 & ルート・スクリプト・spec-viewer の TypeScript 型安全化(tsconfig配備・JSDoc型注釈)& 全10領域一括静的型検査(npm run typecheck)確立 & 全単体テスト100%パス & SDD仕様書同期(①ルート tsconfig.json を新設しルート直下の server.js, eslint.config.js, scripts/**/*.js を型検査対象に統合、②spec-viewer/tsconfig.json を新設し spec-viewer/ 配下のサーバー・MCPサーバー・APIエンドポイント・疎通テストを型検査対象に統合、③server.js, scripts/ [sync-line-webhook.js, init_quote_bigquery_table.js, test_bigquery_quote_log.js], spec-viewer/ [server.js, mcp-server.js, routes/api.js, test-mcp.js] に JSDoc/TS型注釈を適用しマルチサービスディスパッチ/Webhook同期/BigQuery初期化/仕様書MCPの型安全性を100%保証、④ルート package.json の "typecheck" スクリプトを全10箇所の一括検証に更新、⑤eslint.config.js を更新し全スクリプトの静的解析品質を担保、全単体テスト100%パス、仕様書同期)
2026-09-01
Sorai Engineering
refactor(operator-portal & frontend-modular-architecture): オペレーターポータル(packages/operator-portal)フロントエンドのES Modules分割 & 3,000行モノリス解消(public/js/modules/)& tsconfig対象化 & 全単体テスト100%パス & SDD仕様書同期(①public/js/ [chat-common.js, chat-space.js, unified-chat.js] の計3,046行モノリスを単一責任原則に基づき public/js/modules/ [apiClient.js, chatRenderer.js, drawerController.js, draftAssistController.js, fileUploadController.js, customerQueueController.js] へESモジュール分割、②chat-common.js, chat-space.js, unified-chat.js を各約150行のスリムなオーケストレーターに刷新しグローバル変数依存を完全解消、③packages/operator-portal/tsconfig.json の型チェック対象に public/js/**/*.js を統合し全7パッケージ [common, operator-portal, apply-portal, line-bot, facebook-bot, deal-service, resident-portal] の型検査0エラーを確立、④単体・統合テスト全113件100%パス、仕様書同期)
2026-09-01
Sorai Engineering
refactor(resident-portal & typescript-architecture): 入居者ポータル(packages/resident-portal)のTypeScript/TSX型安全化 & tsconfig配備 & ドメイン型定義新設(types/resident.ts, types/chat.ts, types/api.ts)& サーバーサイド・サービス層分離(residentAuthService.js, residentDocumentService.js)& フロントエンド(App.jsx)のReactコンポーネント分割 & 全単体テスト100%パス & SDD仕様書同期(①packages/resident-portal/tsconfig.json を新設し root package.json の "typecheck" スクリプトに統合して全7パッケージ [common, operator-portal, apply-portal, line-bot, facebook-bot, deal-service, resident-portal] の並行静的型検査を確立、②packages/resident-portal/types/ [resident.ts, chat.ts, api.ts, index.ts] を新設し ResidentProfile, ResidentDocument, ResidentSession, ResidentChatMessage, TransferCodePayload を完全型定義、③server/routes/customer/base.js から認証・OTP・LINE連携ロジックを residentAuthService.js へ、契約書・重説PDF発行ロジックを residentDocumentService.js へサービス分離しルート層をスリム化、④src/App.jsx [約700行] を ContractViewerModal.tsx, ResidentChatSpace.tsx, ResidentHeaderControls.tsx, ResidentHeroBanner.tsx へコンポーネント分割しApp.jsxを約100行のオーケストレーターへ刷新、⑤Vite ビルド 100% 成功、単体テスト全85件100%パス、仕様書同期)
2026-09-01
Sorai Engineering
refactor(portal-quote-prototype & typescript-architecture): ポータル初期費用相見積もりプロトタイプ(packages/portal-quote-prototype)のTypeScript型安全化 & tsconfig配備 & ドメイン型定義新設(packages/common/types/quote.ts)& JSDoc/TS型注釈 & 単体テストスイート統合(tests/quote.test.js)& 全テスト100%パス & SDD仕様書同期(①packages/portal-quote-prototype/tsconfig.json を新設し root package.json の "typecheck" スクリプトに統合して全9パッケージ [common, operator-portal, apply-portal, line-bot, facebook-bot, deal-service, inquiry-service, portal-quote-prototype, resident-portal] の並行静的型検査を確立、②packages/common/types/quote.ts を新設し QuoteOtherFeeItem, QuoteExtractedPropertyData, QuoteBreakdownItem, QuoteSideComparison, QuoteComparisonResult, QuoteDiagnoseRequest, QuoteRecalculateRequest, QuoteAnalyticsLogPayload の完全型定義を配備、③packages/portal-quote-prototype/ [server.js, services/diagnoseService.js, services/analyticsService.js] において JSDoc/TS型注釈を適用しSSRF防御/HTML軽量化/Geminiマルチモーダル試算/BigQuery 0ms非同期ロギングの型安全性を100%保証、④packages/portal-quote-prototype/tests/quote.test.js を新設し価格パース・SSRF防御・ポータルURL検証・HTML抽出・相見積もり計算の単体テストを統合、全テスト100%パス、仕様書同期)
2026-09-01
Sorai Engineering
refactor(inquiry-service & typescript-architecture): Inquiry Service(packages/inquiry-service)のTypeScript型安全化 & tsconfig配備 & ドメイン型定義新設(packages/common/types/inquiry.ts)& JSDoc/TS型注釈 & 全単体テスト100%パス & SDD仕様書同期(①packages/inquiry-service/tsconfig.json を新設し root package.json の "typecheck" スクリプトに統合して全7パッケージ [common, operator-portal, apply-portal, line-bot, facebook-bot, deal-service, inquiry-service] の並行静的型検査を確立、②packages/common/types/inquiry.ts を新設し InquiryDraftRequest, InquiryDraftResponse, InquiryHealthResponse の完全型定義を配備、③packages/inquiry-service/ [app.js, server.js] において JSDoc/TS型注釈を適用しハニーポット/提出時間防御/IP・日次グローバルレート制限/Vertex AI Gemini 多言語下書き生成の型安全性を100%保証、④単体テスト全10件100%パス、仕様書同期)
2026-09-01
Sorai Engineering
refactor(deal-service & typescript-architecture): Deal Service(packages/deal-service)のTypeScript型安全化 & tsconfig配備 & ドメイン型定義新設(packages/common/types/deal.ts)& JSDoc/TS型注釈 & 全単体テスト100%パス & SDD仕様書同期(①packages/deal-service/tsconfig.json を新設し root package.json の "typecheck" スクリプトに統合して全6パッケージ [common, operator-portal, apply-portal, line-bot, facebook-bot, deal-service] の並行静的型検査を確立、②packages/common/types/deal.ts を新設し FloorPlanExtractedPropertyDetails, FloorPlanBoundingBox, FloorPlanMatchResultItem, FloorPlanMatchResponse, FloorPlanBannerItem, FloorPlanBannerResponse, FloorPlanProcessingProgressEvent, FloorPlanFileResult, FloorPlanHistoryEntry, ContractExtractionResult の完全型定義を配備、③packages/deal-service/ [services/dealService.js, matchingOrchestrator.js, matchingService.js, hubspotFileService.js, hubspotNoteService.js, floorPlanHistory.js, noteFormatter.js, sheetsService.js, fontCache.js, controllers/matchingController.js, app.js] において JSDoc/TS型注釈を全面適用しマイソクPDF図面解析/Gemini 3.7構造化抽出/ソライ専用バナー帯替え/HubSpot CRM Deal & Timeline同期/SSEリアルタイム進捗ストリーミングの型安全性を100%保証、④単体テスト全35件100%パス、仕様書同期)
2026-09-01
Sorai Engineering
refactor(bot-orchestrators & typescript-architecture): LINE Bot & Facebook Bot(packages/line-bot, packages/facebook-bot)のTypeScript型安全化 & tsconfig配備 & Webhook/オーケストレーター型定義拡張 & 全単体テスト100%パス & SDD仕様書同期(①packages/line-bot/tsconfig.json および packages/facebook-bot/tsconfig.json を新設し root package.json の "typecheck" スクリプトに統合して全5パッケージ [common, operator-portal, apply-portal, line-bot, facebook-bot] の並行静的型検査を確立、②packages/common/types/services.ts を拡張し LineWebhookBody, LineWebhookEvent, LineMessageEvent, FacebookWebhookBody, FacebookWebhookEntry, FacebookMessagingEvent の完全型定義を配備、③packages/line-bot/ [orchestrator.js, responder.js, extractor.js, verification.js, routes/line.js, app.js] および packages/facebook-bot/ [orchestrator.js, responder.js, app.js] に JSDoc/TS型注釈を適用しメッセージディスパッチ/6桁引き継ぎコード/Magic Link認証/Gemini 3.7応答/CRM同期の型安全性を100%保証、④packages/line-bot/tests/transfer.test.js のGoogle Chat通知文面アサーションを現行フォーマットに適合修正、⑤単体テスト [line-bot 33件, facebook-bot 20件, common 72件] 全件パス、仕様書同期)
2026-09-01
Sorai Engineering
test(apply-portal & e2e-automation): 入居申込ポータル(apply-portal)フルスタック E2E 自動検証スイート(packages/apply-portal/tests/apply_e2e.test.js)全7シナリオの完全構築 & 100% PASS 達成 & 単体+E2E 全20件統合パス & 決定論的高速実行(約450ms)(①E2E-01: 認証・ワンクリック開始 [OTP自動検証] ➔ JWTセッション取得 ➔ GET /api/contacts/101 検証、②E2E-02: eKYC身分証アップロード [GCS署名URL・v2完了通知] ➔ Vertex AI Gemini OCR解析 [氏名・カナ・生年月日・住所のCRM自動反映] 検証、③E2E-03: 4ステップ申込フォーム全入力 ➔ 郵便番号検索 ➔ 一番手確保待ち遷移検証、④E2E-04: オペレーター連携・一番手確保 ➔ 管理会社からの動的追加書類要請 [Dynamic Request] トリガー ➔ 回答送信・審査中遷移検証、⑤E2E-05: 審査承認 ➔ 契約開始日確定 ➔ Google Meet IT重説予約 ➔ 請求書発行・着金確認 ➔ 電子契約締結検証、⑥E2E-06: ゲスト共有リンク発行 ➔ 5回連続失敗による 403 Forbidden ロックアウト & トークン物理破棄検証 ➔ 新規共有リンクでの正常認証 & プライバシーマスキング検証、⑦E2E-07: 多言語切り替え [JA / EN / VI] ➔ Vertex AI Gemini チャットアシスタント応答生成検証、⑧テスト環境におけるプロキシ・レートリミット・モックリポジトリの完全分離、全テストパス、仕様書同期)
2026-09-01
Sorai Engineering
refactor(common-services & typescript-architecture): 共通コアサービス層(packages/common/services/)のTypeScript型安全化 & 型定義拡充(packages/common/types/services.ts, hubspot.ts)& JSDoc/TS型注釈 & 全単体テスト100%パス & SDD仕様書同期(①packages/common/types/services.ts を新設し BotStatusCacheEntry, ChatHistoryEntry, FirestoreChatHistoryDoc, LinePushPayload, LineReplyPayload, FacebookMessagePayload, ContactSearchParams を完全型定義、②packages/common/types/hubspot.ts を拡張し HubSpotSearchFilter, HubSpotFilterGroup, HubSpotSearchRequest, HubSpotSearchResponse, HubSpotBatchReadRequest, HubSpotBatchReadResponse を定義、③packages/common/services/ [botStatus.js, chatHistory.js, line.js, facebook.js, hubspot/contact.js, hubspot/deal.js, hubspot/properties.js, base.js] において JSDoc/TS型注釈・リファクタリングを適用し全サービスが依存する共通層の型安全性を確立、④npm run typecheck による全3パッケージ型検査0エラーおよび単体テスト全件パス、仕様書同期)
2026-09-01
Sorai Engineering
refactor(unified-chat & typescript-architecture): 統合チャット(Unified Chat & Chat Space)のTypeScript型定義基盤(packages/common/types/)構築 & サーバーサイド型安全化(controllers/services)& フロントエンド状態管理型定義(client.ts)& HubSpot CRM拡張(ChatCard.tsx)型同期 & 全単体テスト100%パス & SDD仕様書同期(①packages/common/types/ [chat.ts, hubspot.ts, api.ts, index.ts] を新設しマルチチャネルメッセージ/HubSpot Contact & Deal/API契約の完全TypeScript型基盤を構築、②packages/common/tsconfig.json および packages/operator-portal/tsconfig.json を新設し root package.json に "typecheck" スクリプトを追加して3パッケージ [common, operator-portal, apply-portal] の並行静的型検査を確立、③packages/operator-portal/server/ [unifiedChatController.js, chatMessageService.js, channelDispatcher.js, fileService.js, draftGenerator.js] において型注釈・JSDoc/TS連携を全面適用しディスパッチ/タイムライン同期/ファイルアップロード/AI下書き生成の型安全性を100%保証、④packages/operator-portal/public/js/types/client.ts を新設しフロントエンドの状態管理 [ChatState, ActiveTab, DraftState, DrawerState] を型定義、⑤real-estate-crm-extensions [ChatCard.tsx] との Iframe パラメータ・レスポンス型契約を完全同期、⑥単体テスト全113件100%パス、仕様書同期)
2026-09-01
Sorai Engineering
refactor(apply-portal & typescript-modular-architecture): 入居申込ポータル(apply-portal)のTypeScript型定義基盤(types/)構築 & バックエンド・サービス層分離(workflowService / documentService / shareService / mockRepository)& フロントエンド4,300行モノリスのモジュール分割(controllers/ / ui/ / utils/)& SDD仕様書同期(①packages/apply-portal/types/ [contact.ts, api.ts, share.ts, workflow.ts] によるHubSpot CRM/審査ステータス/動的要請/API契約の完全型定義を配備、②routes/contacts.js, documents.js, shares.js から動的要請・ステータス遷移・GCS署名URL・MIME検証・MFAロックアウトのビジネスロジックをサービス層 [services/workflowService.js, documentService.js, shareService.js] へ分離しルート層をスリム化、③data/mockRepository.js を新設しモックデータアクセスのカプセル化を実施、④public/js/main.js [4,358行モノリス] を public/js/controllers/ [flow, auth, documentUpload, leaseForm, closing, dynamicRequest, simulator, realtimeSync], ui/ [domElements, notificationToast, progressTracker], utils/ [validators, zipCodeLookup] へ単一責任原則に基づきESモジュール分割しmain.jsを約150行のエントリーポイントへスリム化、⑤単体テスト全13件100%パス、仕様書同期)
2026-09-01
Sorai Engineering
feat(apply-portal & security-hardening): 入居申込ポータル(apply-portal)のCSPRNG乱数化・5回失敗ロックアウト・GCS署名付きURL(Direct Upload)・MIMEホワイトリスト・オペレーター特権ガード・ワンクリック開始(OTP自動検証)の実装&全単体テストパス&SDD仕様書同期(①otpService.js および shares.js において Math.random() を完全廃止し crypto.randomInt(100000, 1000000) / crypto.randomBytes(16) による暗号学的安全乱数 [CSPRNG] を全面採用、②POST /api/shares/verify において5回連続失敗時にFirestore/メモリから共有トークンを物理削除して403 Forbiddenロックアウト、③GET /api/shares/:token/otp デバッグエンドポイントを NODE_ENV === 'test' 限定に厳格化、④GET /api/contacts/:contactId/upload-urls による 15分TTL GCS署名付きURL発行および POST /api/contacts/:contactId/documents-v2 完了通知エンドポイントを実装し MIME/拡張子ホワイトリスト [JPEG/PNG/WEBP/HEIC/PDF] を厳格検証、⑤GET /operator および GET /api/contacts に verifyOperatorSession 特権ガードを配備、⑥「手続きを開始する」ボタン押下時に apiSendOtp ➔ apiVerifyOtp を内部自動実行して6桁手動入力をスキップするワンクリック開始UXおよびゲスト共有ワンタップアシストを実装、⑦単体テスト全12件100%パス、仕様書同期)
2026-09-01
Sorai Engineering
feat(hubspot-cms & buy-sell-staging-page): 不動産売買専用ガイドLP(buy-sell-guide.html)の新規開発 & HubSpot CMS ステージング環境(/buy-sell-guide-staging)への安全配備 & 5言語多言語対応(①soraitokyo-cms-theme/templates/buy-sell-guide.html を新設しヒーロー/3大特徴/5大取引ステップ/諸費用・減税シミュレーション/売買FAQ 5選/売買特化LINE CTAを5言語 [JA, EN, VI, RU, ID] 対応で実装、②HubSpot FileMapper API によるテーマテンプレートアップロード完了、③ステージング検証用サイトページ Page ID 389697612502 [https://soraitokyo.jp/buy-sell-guide-staging] を新設し schedule_page_publish によりステージング公開完了、④実機ブラウザ User-Agent による HTTP 200 OK 疎通およびデザイン崩れゼロを検証、仕様書同期)
2026-09-01
Sorai Engineering
feat(editorial & buy-sell-architecture-kit): 不動産売買(購入・売却・住宅ローン・外国人購入・エリア資産価値)エディトリアルマスター基盤・スキーマ・テンプレート・SVG設計・多言語ローカライズ方針の完全構築(①docs/editorial/BUY_SELL_EDITORIAL_GUIDE.md を新設しペルソナ4類型・2026年最新税制/住宅ローン控除要件/3000万控除・宅建業法47条の2遵守・仲介手数料透明性・多言語方針を完全体系化、②automation/pipeline/buy_sell_templates.py を新設し5大記事パターン [購入完全ガイド/住宅ローン・資金計画/外国人向け購入/売却・住み替え/エリア資産価値] の構造化プロンプトおよび売買特化CTAボックスを実装、③automation/pipeline/buy_sell_svg_templates.py を新設し諸費用スタックバー/金利比較シミュレーション/7ステップ取引タイムライン/外国人購入フローの売買専用SVGジェネレーターを配備、④svg_comprehensive_linter.py による構文完全性・白文字コントラスト・780px境界検証全件合格、⑤sorai-editorial スキル仕様およびシステム仕様書 08_cms_editorial_pipeline.md 同期完了)
2026-09-02
Sorai Engineering
fix(apply-portal & form-flicker-prevention): 入居申込・各種情報入力フォームにおける3.5s周期の画面ちらつき・フォーカス外れ・強制再描画の完全防止(①ui.js の showInteractiveCard において対象カードが既に表示中の場合は hideAllInteractiveCards や scrollToBottom の再実行を完全スキップしDOM再描画と入力フォーカス喪失を防止、②realtimeSyncController.js の refreshPortalState において CRM データの深層スナップショット差分比較を導入しデータ不変時の不要な DOM / 進捗バー再描画を 100% スキップ、③ユーザーが input / textarea / select をアクティブ操作中は determineNextStep の自動実行を抑止し入力体験を完全に保護、④Cloud Build コンテナ再ビルドおよび Cloud Run apply サービス本番/ステージングデプロイ完了、仕様書同期)
2026-09-02
Sorai Engineering
fix(security & cors-subdomain-whitelist): 新設サブドメイン(apply.soraitokyo.jp / *.soraitokyo.jp)のCORSホワイトリスト追加 & CSPディレクティブ拡張 & Cloud Run本番再デプロイ(①新設サブドメイン apply.soraitokyo.jp からの ES Module スクリプト読み込み時に CORS エラー 500 が発生していた問題を根本解消、②DEFAULT_ALLOWED_ORIGINS に apply.soraitokyo.jp, *.soraitokyo.jp, *.run.app を追加、③Helmet CSP の connectSrc に zipcloud / *.soraitokyo.jp、scriptSrc に cloudflareinsights.com を追加、④Cloud Build によるコンテナ再ビルドおよび Cloud Run apply サービス本番/ステージングデプロイ完了、仕様書同期)
2026-09-01
Sorai Engineering
deploy(apply-portal & cloud-run): 入居申込ポータル(apply-portal)& オペレーター管理画面(operator-portal)の Cloud Run 本番/ステージングデプロイ & リアルタイム双方向同期 & 本人確認書類(顔写真付き身分証必須・保険証任意化)UI/UX刷新 & Vertex AI チャットAPI配備 & SDD仕様書同期(①Cloud Build によるコンテナイメージ最新化 [real-estate-chatbot:latest] および Cloud Run サービス real-estate-chatbot-apply / real-estate-chatbot-staging-apply へのデプロイ完了、②BroadcastChannel / Storage Events / バックグラウンド同期による 0ms リアルタイム双方向連動、③顔写真付き身分証明書ガイダンスと健康保険証の任意提出化 [2枚提出で送信可能化]、④determineNextStep のステップ多重ガードによるループ完全防止、⑤POST /api/contacts/:contactId/chat AIチャットエンドポイント実装、仕様書同期)
2026-09-01
Sorai Engineering
feat(quote-generator & hubspot-cdn-zero-egress): 見積書スマート短縮共有URL(/q/[token])新設 & HubSpot Files CDN(PUBLIC_NOT_INDEXABLE)ダイレクト302リダイレクト & GCP Egress帯域費用完全0円化(Approach A)(①HubSpot Files アップロードを access: 'PUBLIC_NOT_INDEXABLE' に改修し fileId と direct CDN URL [fileUrl] を同時取得、②Base64URL トークン生成・検証ユーティリティ src/lib/quoteToken.ts を新設し dealId, fileId, fileName, ts, exp, fileUrl をコンパクトにカプセル化、③新ルーティング /q/[token] を配備しトークン有効期限を検証の上 HubSpot Files CDN へ 302 リダイレクトすることで Cloud Run / GCP 側の PDF 下り帯域転送費用を完全 0 円化、④有効期限切れ時の親切な日本語 HTML 案内画面および GCS 一時署名付き URL 自動フォールバックを実装、⑤Next.js ビルド 100% 成功、仕様書同期)
2026-09-01
Sorai Engineering
feat(quote-generator & hubspot-cdn-short-url): HubSpot Files CDN 連携による GCP Egress 帯域料金完全0円化 & スマート短縮共有URL(/q/[token])新設 & Cloud Run本番デプロイ(①従来の長いクエリパラメータ形式 /api/share?file=...pdf を廃止し短い自社短縮パス /q/[token] を発行、②/q/[token] へのアクセス時にアップロード済みの HubSpot Files グローバルCDN URL へ 302 リダイレクトしPDFバイナリの通信をすべて HubSpot 側の無料CDN(Akamai/Cloudflare基盤)から配信することで GCP Egress コストを完全0円化、③トークン内の有効期限(14/30日間)に基づくアクセス制御および親切な日本語案内画面を配備、④Next.js ビルド 100% 成功、Cloud Run 新リビジョン gemini-quote-generator-00054-cp6 本番デプロイおよび HTTP 200 / 400 疎通完了、仕様書同期)
2026-09-01
Sorai Engineering
feat(quote-generator & customer-name-optional): 見積書作成における宛名(お客様名)完全任意化 & 「関係者 御中」撤廃 & 物件名メインタイトル表示 & Cloud Run本番デプロイ(①名前の漢字間違いや名義不一致ミスを防止するため宛名 customerName の自動プリロードおよびGemini自動補完を完全廃止しデフォルト空欄化、②宛名未入力時は「関係者 御中」やダミー名を一切出力せず「物件名: ○○」を最上部に品格ある主見出しとしてレイアウト配置、③手動手直し画面のラベルを「宛先・お客様名(任意)」に変更し未入力可プレースホルダーを配備、④Next.js ビルド 100% 成功、Cloud Run 新リビジョン gemini-quote-generator-00053-t8j 本番デプロイおよび HTTP 200 疎通完了、仕様書同期)
2026-09-01
Sorai Engineering
feat(quote-generator & deal-info-prefetch): HubSpot Deal 情報からの物件名・宛名の自動プリロード & Gemini解析フォールバック補完 & Cloud Run本番デプロイ(①新エンドポイント /api/deal-info を新設し HubSpot Deal の contract_property_name, property_name, dealname, contractor_name から物件名と宛名を安全に取得、②見積書メーカー起動時に dealId から先行フェッチしフォームの初期値として物件名・顧客名を自動補完、③図面・ポータルURL解析時に物件名が空欄だった場合も Deal 側の物件名で自動フォールバック補完、④Cloud Run 新リビジョン gemini-quote-generator-00052-gnd 本番デプロイおよび HTTP 200 疎通完了、仕様書同期)
2026-09-01
Sorai Engineering
feat(quote-generator & calculation-transparency): 見積書メーカーにおける明細行小計(数量×単価)列新設 & テーブルフッター合計行追加 & 日割り+前家賃内訳プレビュー完全透明化 & Cloud Run本番デプロイ(①明細テーブル各行に「金額(小計)」列を追加し単価や数量変更時の行ごとの金額をリアルタイム表示、②テーブルフッター(tfoot)に「御見積合計金額」行を配備し品目追加・削除・編集時の合計再計算を視覚的に保証、③日割り計算アシスタント内に「①日割り分小計」「②前家賃分小計」「明細に反映される賃料計」の完全な内訳プレビューを表示し前家賃込みの計算根拠を1円単位で可視化、④品目編集時の月額基本賃料・管理費ステート自動同期を強化、⑤Next.js ビルド 100% 成功、Cloud Run 新リビジョン gemini-quote-generator-00051-7jv 本番デプロイおよび HTTP 200 疎通完了、仕様書同期)
2026-09-01
Sorai Engineering
feat(quote-generator & simulator-proration-dedup): 見積書メーカー & 初期費用シミュレーターにおける日割り家賃二重計上防止・1ヶ月分通常家賃置換・月額固定費用別枠ハイライト機能の実装 & Cloud Run本番デプロイ完了(①日割り家賃適用時に元の1ヶ月分賃料・管理費が明細に残存して家賃が+1ヶ月過剰計上されるバグを根本解消、②Gemini解析サニタイズおよび日割り計算アシスタント handleApplyProration において日割り適用時に元の1ヶ月分賃料・管理費を安全に置換除外し日割り賃料+日割り管理費+前家賃(翌月分)のみを明細展開するよう改修、③「日割りを解除して1ヶ月分に戻す」handleResetToStandardMonthly 機能を新設しワンクリックで通常の1ヶ月分家賃・管理費明細へと復元可能化、④見積書PDFおよび入力フォームに【月額固定費用】(賃料・管理費・月額合計)の専用ハイライト別枠ボックスを新設、⑤初期費用シミュレーター diagnoseService.js においても isProrated オプションおよび日割りあり/なし時の明細出し分けロジックを完全同期、⑥Cloud Run サービス gemini-quote-generator 新リビジョン gemini-quote-generator-00050-fh9 本番デプロイおよび HTTP 200 疎通検証完了、仕様書同期)
2026-09-01
Sorai Engineering
feat(quote-generator & url-analysis): 帯替え図面・PDF・ポータルURL入力による初期費用見積書自動作成機能の実装 & ファイル添付/URL入力ハイブリッドUI & Gemini 3.7 Flash 自動解析 & プレビュー連動(①帯替え図面作成後に発行される HubSpot Files URL / GCS URL / 公開PDF・画像URL、Google ドライブ共有URL、SUUMO等ポータルサイトURLを入力するだけでサーバー側で自動フェッチ・MIME判定して初期費用明細書データを自動構造化抽出するエンドポイント /api/analyze-quote を拡張、②Google ドライブのダイレクトダウンロード変換、HubSpot Files API トークン自動付与、PDF/画像/HTML の自動分岐解析 analyzeDocumentForQuote / analyzeHtmlForQuote を配備、③フロントエンド UploadStep において「🔗 URLを入力(帯替え図面・ポータル)」と「📁 ファイルを添付」のワンタップ切り替えセグメントタブおよび追加指示テキストエリアを配備、④解析完了時に元図面URLを DocumentPreview に連動表示し日割り計算・手動調整・正式PDF生成・HubSpot Deal タイムライン登録までのシームレスな業務フローを実現、Next.js ビルド 100% 成功、仕様書同期)
2026-09-01
Sorai Engineering
fix(quote-generator & gcs-iam): 見積書PDF共有リンク(gemini-quote-generator /api/share)500エラーの根本原因特定 & GCSバケット権限(storage.objectUser)および SA署名権限(iam.serviceAccountTokenCreator)の付与による完全復旧(①SA最小権限化に伴い Cloud Run 実行アカウント real-estate-chatbot-sa に対する Cloud Storage バケット gs://sorai-quote-pdfs へのアクセス権限および iam.serviceAccounts.signBlob 権限が欠落していたことを特定、②gs://sorai-quote-pdfs に対する roles/storage.objectUser を付与、③サービスアカウント自身およびプロジェクトに対して roles/iam.serviceAccountTokenCreator を付与し GCS 一時署名付きURL自動発行を正常化、④gemini-quote-generator 新リビジョン 00049-5zf での疎通確認・HTTP 200 OK 検証完了、仕様書同期)
2026-09-01
Sorai Engineering
feat(seo & cannibalization-consolidation): 検索カニバリゼーション解消のための類似記事301リダイレクト統合(area-guide-ayase-vs-kitaayase-comparison ➔ area-guide-ayase 全5言語)& 北綾瀬治安クエリの決定版記事(kita-ayase-unpopular-reasons-truth)への内部リンク集約最適化(①GSC・BigQuery分析に基づき弱小化していた area-guide-ayase-vs-kitaayase-comparison を大ヒット中の area-guide-ayase へ全5言語・全プロトコルバリエーションでHubSpot URL Redirects API [301 Moved Permanently] 一括登録・完全転送、②area-guide-kita-ayase-kitasenju の治安セクションから検索1.4位の kita-ayase-unpopular-reasons-truth への推奨内部リンクカードを5言語で設置しGoogleクローラーのシグナルを1本化、③HubSpot CMSデプロイおよびGSC Indexing API送信完了、仕様書同期)
2026-09-01
Sorai Engineering
feat(security & iam-polp-100-percent-keyless): 全社サービスアカウント完全鍵レス化(100% Keyless)& 最小権限 IAM 設計(PoLP)完了 & JSON秘密鍵全7個完全物理削除 & Cloud Run実行SA統一 & デフォルトCompute SAのEditor/Admin権限完全剥奪(①全社で残存していた7個のUser-Managed JSON秘密鍵 [sorai-indexing-bot, clocall-phone-sa, real-estate-chatbot-sa, poitoku-scheduler-sa, compute] をGCP IAMから完全物理削除しローカルファイルも整理、②全Cloud Runサービス [soraitokyo-column-search-agent, sorai-system-spec, gemini-quote-generator, sorai-lease-assistant-ui等] のRuntime SAを最小権限の real-estate-chatbot-sa へ完全統一、③デフォルトCompute SA [902297816152-compute] から roles/editor および roles/secretmanager.admin を完全剥奪、④sorai-indexing-bot の権限を roles/secretmanager.secretAccessor にダウングレード、⑤各Cloud Runサービス疎通確認・ヘルスチェック [column-search-agent AIチャット応答等] 正常性を検証、仕様書同期)
2026-09-01
Sorai Engineering
feat(security & cloudflare-waf-hardened-v2): Cloudflare WAF カスタムルールセット強化(Hardened v2)のエッジ本番投入 & 大文字小文字無差別判定(lower)& Laravel/SpringBoot/ログ探索遮断 & crusader-worker等スキャナー防御(①大文字小文字によるすり抜け [/.ENV 等] を根本遮断するため lower(http.request.uri.path) / lower(http.user_agent) 判定を全面適用、②PHP/WordPress に加え Spring Boot [/actuator]、Laravel Ignition [/_ignition]、Laravel ログ [/storage/logs]、CGI/ルーター探索 [/boaform, /cgi-bin] へのアクセスを即時 403 Forbidden 遮断、③User-Agent 遮断ルールに crusader-worker [crusader], nuclei, acunetix を追加、④curl による実機検証 [/.ENV: 403, /actuator/env: 403, /storage/logs/laravel.log: 403, crusader-worker: 403, /api/health: 200] 完了、仕様書同期)
2026-09-01
Sorai Engineering
feat(editorial & quiet-luxury-cards): 絵文字完全ゼロ・クワイエットラグジュアリー2x2カード(ソリッドヘッダー帯 & STEP 01 ピルバッジ & ミニマルダッシュリスト)実装 & Cloud Run Jobs(sorai-auto-editorial)最新コンテナデプロイ(①絵文字を一切排除し、ソライ東京ブランドカラー [Sorai Navy #1b2a47 / Terracotta #c57e5f] のソリッドヘッダー帯と STEP 01 半透明ピルバッジ、ミニマルダッシュ [—] マーカー付きリストを採用した Quiet Luxury 2x2 カードレイアウトを実装、②pipeline.html_formatters および editorial_design_system.py を完全同期し、公開済み全5言語記事を自律修復・Push-Live完了、③Cloud Build により最新コンテナをビルド・プッシュし Cloud Run Jobs sorai-auto-editorial へ本番デプロイ完了、④単体テスト全7件100%パス、仕様書同期)
2026-09-01
Sorai Engineering
feat(editorial & html-step-cards): 手順ステップ・比較カードのHTML/CSSコンポーネント化(.step-process-grid)& SVGの幾何チャート(棒グラフ・推移図)特化 & 多言語文字溢れ完全根絶 & 公開済み全5言語記事(北綾瀬 vs 六町)の自律置換・Push-Live(①多言語翻訳時にアルファベット文字数膨張でSVGカード枠をはみ出していた問題を根本解決するため、手順ステップ [1, 2, 3, 4] やチェックリストをレスポンシブな HTML/CSS グリッドコンポーネント .step-process-grid に刷新、②インラインSVGの役割を「家賃相場バーチャート・費用推移グラフ・路線図」などの数値・幾何学グラフィックスに特化させ狭小4カラムSVG出力を完全禁止、③editorial_design_system.py および pipeline.html_formatters に convert_step_svg_to_html_cards を配備し既存SVGの自動置換・整形エンジンを統合、④heal_kita_ayase_multilang_cards.py を実行し公開済み5言語記事 [JA, EN, VI, RU, ID] の破損SVGをすべて美しいHTMLステップカードへ自動置換し HubSpot CMS への PATCH & Push-Live 完了、⑤単体テスト test_convert_step_svg_to_html_cards 新設・全7件100%パス、仕様書同期)
2026-09-01
Sorai Engineering
refactor(editorial & modular-pipeline): 自動執筆メインオーケストレーター(run_auto_editorial_pipeline.py)の責務分離・サブパッケージ化(pipeline/)& 2,005行から270行へのスリム化 & Python 3.9 / LaunchAgent 型ヒント互換性向上(from __future__ import annotations 徹底)(①肥大化していた run_auto_editorial_pipeline.py を単一責任の原則に基づきサブパッケージ pipeline/ [config, html_formatters, svg_processor, queue_manager, article_generator, article_translator, hubspot_deployer] へモジュール分割、②sorai_common.py および新設モジュール全般に from __future__ import annotations を適用し macOS LaunchAgent [/usr/bin/python3 (3.9)] 環境での PEP 604 型ヒントパースエラーを恒久根絶、③run_auto_editorial_pipeline.py を全体のパイプライン制御・CLI・バッチ実行に特化したクリーンな構造 [約270行] にスリム化し可読性・保守性を大幅向上、④tests/test_pipeline_modular.py を新設し単体テスト全6件100%パスおよび /usr/bin/python3 --help 起動正常性を検証、仕様書同期)
2026-09-01
Sorai Engineering
feat(editorial & multilang-4-layer-defense): 多言語自動執筆・デプロイ再発防止策(4重防御アーキテクチャ)の実装 & is_japanese_content 判定関数配備 & デプロイ直前ハードゲート & デプロイ直後 Post-Deploy Integrity Assertion & 常時監査・自己修復スクリプト(audit_and_heal_multilang_integrity.py)機能強化 & test_multilang_integrity.py 単体テストスイート配備(①sorai_common.py および run_auto_editorial_pipeline.py に is_japanese_content(text) を新設し、正規表現 r'[\u3040-\u309F\u30A0-\u30FF]' でひらがな・カタカナ5文字以上を検出して未翻訳日本語の混入を高精度検知、②run_auto_editorial_pipeline.py の deploy_to_hubspot においてデプロイ直前に翻訳タイトル・本文の is_japanese_content を検証して未翻訳を即座にブロックする Pre-Deploy Hard Gate を配備、③デプロイ直後に HubSpot API で親記事を再取得し translations 100% 存在照合およびタイトル日本語残存チェックを実行して未紐付け・未翻訳を即座にアタッチ・修復する Post-Deploy Integrity Assertion を実装、④audit_and_heal_multilang_integrity.py に全記事巡回監査時の日本語残存検知ロジックと Gemini による自動再翻訳修復・Push-Live を統合、⑤tests/test_multilang_integrity.py を新設し is_japanese_content 精度テスト・HTTP 204/空レスポンス安全パーステスト・多言語構造整合性テスト全40件100%合格を確認、仕様書同期)
2026-09-01
Sorai Engineering
fix(editorial & cloud-run-jobs): 多言語デプロイのフォールトトレランス強化 & HubSpot API 204/空レスポンス安全ハンドリング & GSC Indexing API の ADC 認証対応 & BigQuery キュー復旧 & Cloud Run Jobs 最新コンテナ再デプロイ(①sorai_common.py の call_hubspot_api において 204 No Content や空ボディ受信時に安全に {} を返し JSONDecodeError [Expecting value: line 1 column 1] を完全防止、②submit_urls_to_gsc においてサービスアカウント key ファイル不在時でも Google Cloud ADC [google.auth.default] を使用して GSC Indexing API へ正常認証・リクエストするよう改修、③run_auto_editorial_pipeline.py の deploy_to_hubspot において各言語 [EN, VI, RU, ID] のバリエーション作成・グループ結合・Push-Live を個別の try-except で保護し一部言語のエラーが他言語の公開を中断させないフォールトトレラント設計へ刷新、④BigQuery hubspot_data.editorial_queue の failed 項目を pending に一括復旧、⑤deploy_gcp_cloud_run_job.sh による Cloud Build コンテナイメージ再ビルドおよび Cloud Run Job sorai-auto-editorial 本番デプロイ完了、仕様書同期)
2026-09-01
Sorai Engineering
deploy(editorial & cloud-run-jobs): Cloud Run Job(sorai-auto-editorial)最新コンテナビルド(Cloud Build)& 本番デプロイ & Cloud Scheduler同期完了(①5重防御SVG構文完全性検証 [validate_svg_syntax_integrity]・多言語構造保持ガード [multilang_structural_guard.py]・プロンプト文字数バジェット制約・MLIT不動産一次データ自動連携を内包した最新コンテナイメージを Cloud Build によりビルド・プッシュ [asia-northeast1-docker.pkg.dev/sorai-indexing-30323/sorai-apps/sorai-auto-editorial:latest]、②Cloud Run Jobs sorai-auto-editorial 本番デプロイ [2GiB RAM, 1 CPU, タイムアウト14400s (4h), max-retries 1, Secret Manager: HUBSPOT_ACCESS_TOKEN, MLIT_API_KEY, LIBRARY_API_KEY]、③Cloud Scheduler sorai-auto-editorial-trigger [毎日 03:00 JST (0 18 * * * UTC)] 同期、仕様書同期)
2026-09-01
Sorai Engineering
fix(editorial & svg-zero-defect-5-layer-defense): 自動執筆パイプラインにおけるSVGテキスト消失・構文破損・枠外はみ出しの恒久的な再発防止策(5重防御アーキテクチャ)の実装 & svg_comprehensive_linter.py 構文完全性検証新設・3箇所完全同期 & visual_qa_auditor.py FATAL格上げ & run_auto_editorial_pipeline.py デプロイ直前ハードゲート配備(①svg_comprehensive_linter.py に validate_svg_syntax_integrity(html) を新設し、裸属性タグ検知、<rect>存在時の<text>0個検知、<text>/<tspan>タグペア整合性を機械照合する機能を実装、②単体テストスイート run_test_mode() に正常系・4大異常系アサーションを追加し10項目100%合格を確認、③automation, skills, .agents の3箇所へ完全同期、④run_auto_editorial_pipeline.py の日本語および多言語翻訳プロンプトにカード幅別文字数バジェット制約 [タイトル最大15〜20文字、説明文最大30〜35文字、バッジ3〜5文字] とXMLタグ構造保持制約を追加、⑤deploy_to_hubspot() の直前に validate_svg_syntax_integrity() による「SVG ゼロディフェクト・ハードゲート」を配備し異常検知時にデプロイを即座に遮断 [RuntimeError]、⑥visual_qa_auditor.py において生HTMLに対する構文完全性監査および<text>0個検知を [FATAL] スコア -60 に格上げ、仕様書同期)
2026-09-01
Sorai Engineering
fix(editorial & multilang-anti-thinning): 多言語記事の要約・薄肉化原因究明 & 足立区住宅補助金記事(4言語: VI/EN/RU/ID)の完全再生成・本番Push-Live & 多言語構造保持ガードリンター(multilang_structural_guard.py)配備(①HubSpot CMS上の全121トピック・全593記事を定量監査し、長文HTMLの一括翻訳時にLLMの要約バイアスでH3見出し・段落・SVG図解が欠落・圧縮されていた根本原因を特定、②4並列サブエージェント [IDEクォータ・完全0円] を動員し adachi-housing-subsidy-support-guide-2026 の4言語を日本語版 [H2: 7, H3: 16, P: 35, SVG: 3, Table: 2, FAQ: 4] と100%完全同等の構成で再構築、③SVG図解の多言語ローカライズ・白文字コントラスト保証・境界安全性を適用、④batch_push_adachi_subsidy_posts.py により HubSpot API 経由で本番公開 [Push Live (HTTP 204)] & CDNキャッシュパージ完了、⑤Live URL [https://soraitokyo.jp/vi/blog/adachi-housing-subsidy-support-guide-2026 等] で全章・全見出し・全SVGの正常レンダリングを検証、⑥H3見出し一致率 >= 80% / 段落P >= 70% / SVG 100% 保持を義務付ける multilang_structural_guard.py を配備、仕様書同期)
2026-09-01
Sorai Engineering
fix(editorial & svg-text-tag-restoration): SVGテキスト消失重大バグの修正 & 破損タグ自動復元プリヒール配備 & svg_comprehensive_linter.py 3箇所同期 & HubSpot CMS 全100記事の一括復旧・Push-Live再公開(①svg_comprehensive_linter.py において match.group(1) 属性のみの取得により <text タグ名が消失して fill="..." となりブラウザ上でSVGテキストが非表示になるバグを解消、②正規表現を r'(<text\b[^>]*)>([\s\S]*?)</text>' に修正して <text ... タグ全体を確実に保持、③process_single_svg_text_content 冒頭に <text が抜けて破損した既存タグを自動復元するプリヒール処理 _restore_missing_text_tag を追加、④automation, skills, .agents の3箇所を完全同期し単体テスト9項目100%パス、⑤heal_recent_multilang_svgs.py を実行し HubSpot CMS 上の全100記事のインラインSVGを復元・幾何リペア・WCAGコントラスト反転・tspan折り返しを適用して PATCH および push-live 再公開完了、⑥HubSpot APIからのライブ記事取得による <text> タグ存在アサーション検証に合格、仕様書同期)
2026-09-01
Sorai Engineering
feat(editorial & svg-geometric-wrapping): 多言語SVGテキストオーバーフロー完全撲滅 & svg_comprehensive_linter.py 単語境界複数行折り返しエンジン(wrap_svg_text)実装 & 2x2グリッド/縦積みレイアウト標準化 & プロンプト文字数バジェット制約 & visual_qa_auditor.py テキスト溢れアサーション配備 & HubSpot CMS 公開済み15+多言語記事の一括自律修復(①svg_comprehensive_linter.py においてテキスト中心座標から最も内側の背景矩形を特定する最小内包矩形探索 [find_enclosing_rect] および英語・ベトナム語・ロシア語・インドネシア語の単語境界スペース・ハイフンを認識して行間 dy="1.2em" で安全に改行する複数行自動折り返しエンジン [wrap_svg_text] を実装、②text-anchor="middle" の左右境界 [abs_x ± est_w/2] のカード枠内安全補正およびフォントスケーリングフォールバック [10.5px〜11.5px / 最小9.0px] を統合、③run_auto_editorial_pipeline.py において横4列の極小幅カードを完全禁止し2x2グリッドまたは縦積みステップレイアウトを標準化、④多言語翻訳時のテキスト膨張を防止する文字数バジェット制約 [タイトル最大15〜20文字、説明文最大30〜35文字] をプロンプトに厳格設定、⑤visual_qa_auditor.py にSVGテキストはみ出し・境界逸脱の自動検知アサーションを配備、⑥HubSpot CMS 上の多言語ブログ記事15本以上 [EN/VI/RU/ID] のインラインSVGを完全0円・IDEクォータ内で一括バッチ自己修復し再公開完了、仕様書同期)
2026-09-01
Sorai Engineering
refactor(operator-portal & modularization): 統合チャット基盤のモジュール分割・リファクタリング(①packages/operator-portal/server/services/chatMessageService.js を新規作成し会話履歴取得・NotesとFirestoreのハイブリッドマージ・重複排除処理を独立モジュール化、②packages/operator-portal/server/services/channelDispatcher.js を新規作成しチャネル別送信・Inbox同期・chat_history保存・Bot OFF制御を集約、③packages/common/services/hubspot/timeline.js の parseMessage を純粋関数群 detectChannelFromTag, detectSenderFromTagAndText, extractTimestampFromText に整理、④packages/operator-portal/server/controllers/unifiedChatController.js を 780行から 260行にスリム化し可読性と保守性を劇的に向上、仕様書同期)
2026-09-01
Sorai Engineering
fix(operator-chat & sender-detection): オペレーター応答時のAI誤応答完全防止 & AI署名・手動返信キーワードに基づく送信者高精度識別 & 直近オペレーター返信自動ガード(①packages/common/services/hubspot/timeline.js の parseMessage において AI署名有無と手動返信キーワードを精緻に解析し、人間が手動で送ったメッセージがAI応答バッジで表示される問題を根本解消、②packages/operator-portal/server/controllers/unifiedChatController.js の getUnifiedChatMessages において Firestore の operator ロールを優先上書きし、sendUnifiedChatMessage / toggleBotState で lineUserId / facebookUserId の多重IDに bot_status を同時書き込み、③packages/common/services/botStatus.js の isBotActiveForContact / setBotActiveForContact において contactId / altId / HubSpot Contact プロパティ(ai_bot_active / ai_bot_active_channels)の三段構えで判定を堅牢化、④packages/line-bot/services/line/orchestrator.js および packages/facebook-bot/services/facebook/orchestrator.js において直近メッセージがオペレーター発言である場合は自動的に有人対応モードを維持しAI応答を完全抑止、仕様書同期)
2026-09-01
Sorai Engineering
fix(hubspot-auth & token-rotation): HubSpot 認証トークンの永続 Private App Token(PAT)への完全統一 & OAuth 自動フォールバック安全性強化(①GCP Secret Manager の hubspot-access-token およびローカル .env の HUBSPOT_ACCESS_TOKEN を 30分失効の OAuth トークンから永続有効な Private App Token(PAT形式)に最新化、②packages/common/services/hubspot_oauth.js の getAccessToken においてトークン更新失敗時に期限切れトークンを返さず null を返却して環境変数・Secret Manager の PAT に即座にフォールバックするよう修正、③Firestore の古い破損OAuthドキュメントをクリアし、認証エラーによる顧客一覧の空返却を恒久根絶、仕様書同期)
2026-09-01
Sorai Engineering
fix(operator-portal & cache-control): 顧客一覧API(/api/customer/list)のブラウザ304キャッシュ完全無効化 & モック顧客フォールバック完全撤廃(①packages/operator-portal/server/routes/customer.js において Cache-Control: no-cache, no-store, must-revalidate ヘッダーを明示付与し、ブラウザの304 Not Modifiedキャッシュによる古いモック表示を根絶、②HubSpot検索エラー時もモック顧客ではなく空配列を返すよう修正しモック混入を恒久防止、③packages/operator-portal/public/js/chat-space.js の loadCustomers で cache: 'no-store' およびタイムスタンプクエリを付与、仕様書同期)
2026-09-01
Sorai Engineering
feat(operator-portal & route-redirect): オペレーターポータル ルートURL(GET /)および /chat, /chat-space 自動リダイレクト機能配備(①packages/operator-portal/app.js において GET /, /chat, /chat-space から /api/hubspot/chat-space への 302 リダイレクトハンドラを配備し、直接アクセス時の 404 Not Found エラーを解消して即座にチャットスペースが開くよう導線を最適化、仕様書同期)
2026-09-01
Sorai Engineering
feat(operator-portal & customer-filter): 統合チャットポータル(Chat Space)顧客一覧のLINE ID / Facebook ID 保持者限定絞り込み & ノイズ除外(①packages/common/services/hubspot/contact.js の searchActiveContactsForChatSpace において filterGroups から email 単独を除外し line_user_id または facebook_user_id を持つ顧客のみを検索対象に厳格化、②packages/operator-portal/server/routes/customer.js の customer/list エンドポイントにおいて LINE または Facebook ID が存在するコンタクトのみをフィルタリング返却し、Emailのみの静的コンタクトを除外してアクティブに対話可能なユーザーのみをスッキリ一覧表示、仕様書同期)
2026-08-31
Sorai Engineering
fix(unified-chat & note-parser): 統合チャット(Unified Chat)の本文見出し誤認識による発言者逆転バグ解消 & ヘッダーなしNote救済 & Firestore検索キー拡張(email/liffActivationCode)& ミリ秒高精度タイムスタンプ・ロール優先統合(①packages/common/services/hubspot/timeline.js の parseMessage において HEADER_TAG_REGEX をチャネル名・プレフィックス必須に厳格化し、AI回答本文内の【家賃相場】【おすすめ物件】【初期費用】等の墨付き括弧見出しが誤認分割されてユーザー発言に化けるバグを根絶、②ヘッダータグのない手動作成Noteや外部連絡履歴も defaultChannel の通常メッセージとして安全にパースして救済表示、③packages/operator-portal/server/controllers/unifiedChatController.js の historyQueriesMap に contactInfo.email および contactInfo.liffActivationCode を追加しLINE連携前の会話履歴取りこぼしを解消、④HubSpot Note と Firestore のタイムスタンプ・ロールマージにおいて同一正規化テキスト一致時はFirestoreのミリ秒タイムスタンプおよび正確なsenderを優先して上書き統合し時系列順序崩壊を防止、⑤packages/operator-portal/tests/unifiedChatOrder.test.js にAI本文見出し保持およびヘッダーなしNoteパースの単体テストを追加、仕様書同期)
2026-08-31
Sorai Engineering
fix(chat-history & unified-portal): 統合チャットポータルの会話欠損バグ解消 & 近接タイムスタンプ完全一致重複排除 & Firestore 未加工会話履歴(rawHistory)永続化 & Gemini API 呼び出し時限定サニタイズ & マルチチャネル(LINE/Facebook/Email)Chat Space 選択対応 & HTMLブロックタグ改行保護パース(①packages/operator-portal/server/controllers/unifiedChatController.js において15文字以上のファジー部分一致判定 includes を完全撤廃し、同一 noteId または正規化完全一致かつタイムスタンプ ±2秒以内のみを重複判定に修正して類似文言・連続相談の誤ドロップを根絶、②historyQueriesMap で m.channel 属性を尊重し未設定時はデフォルトチャネルを自動割り当て、③packages/line-bot/services/line/responder.js, packages/facebook-bot/services/facebook/responder.js, packages/resident-portal/server/services/chat/geminiAdapter.js において Firestore chat_history 保存時は未加工履歴 rawHistory / rawMessages に新ターンを追加して完全永続化し、Gemini API 呼び出し contents 生成時のみ sanitizeHistory を適用してオペレーター発言や連投メッセージの間引きを防止、④packages/common/services/hubspot/contact.js の searchActiveContactsForChatSpace および packages/operator-portal/server/routes/customer.js において LINE未連携顧客も Facebook/Email 顧客として Chat Space で選択・表示可能に拡張、⑤packages/common/services/hubspot/timeline.js の parseMessage においてタグ除去前に </p>, </div>, </li>, <hr> 等のブロックタグを \n に置換しテキスト連結・改行欠落を防止、⑥packages/operator-portal/tests/unifiedChatOrder.test.js に類似長文メッセージ保持およびオペレーター発言マージの単体テストを追加し ALL PASS を確認、仕様書同期)
2026-08-31
Sorai Engineering
feat(skills & subagent-ecosystem): 特化型スキル体系の拡張・統合(全14スキル体制)& SDD先行同期・モノレポQA・DevTools視覚監査スキルの新設 & リファクタリング/セキュリティスキルの機能強化(①新規スキル3件 [sorai-spec-sync: SDD仕様書/changelog並行先行同期・build_spec検証, sorai-monorepo-qa: モノレポ影響範囲特定・並列テスト・自律修復, sorai-visual-devtools-qa: Chrome DevTools MCP 5言語レイアウト・ダークモード・SVGコントラスト視覚監査] を配備、②既存スキル2件を大幅拡張 [sorai-refactoring: HubL/HTMLタグ整合性・CSSスコープ汚染検査統合, sorai-security-hardening: Cloud Runデプロイ進行監視・Google Cloud Loggingエラー診断統合]、③spec-viewer/docs/12_google_antigravity_guide.md に14スキル体系およびツールマッピングを完全同期、④マスター仕様書自動再コンパイルおよび整合性検証100%合格)
2026-08-31
Sorai Engineering
feat(agents & zero-wait-pipelining): 並行パイプライン実行・待ち時間ゼロ原則(Zero-Wait Pipelining & Concurrent Spec-Sync)の全社マスター規約化 & デプロイ待機中の仕様書同期・テスト先行作成フローの明文化(①~/.agents/AGENTS.md 第2章に「2.3 並行パイプライン実行・待ち時間ゼロ原則」を追加し、Cloud Run / HubSpot CMS / Docker ビルド / CI/CD デプロイ等の待機時間中に親エージェント・並列サブエージェントが仕様書 spec-viewer/docs/*.md 更新や changelog.txt 追記、テスト作成を並行先行完了する運用を義務化、②spec-viewer/docs/12_google_antigravity_guide.md に待ち時間ゼロ原則およびパイプライン合流アーキテクチャを反映、③マスター仕様書自動コンパイルおよび整合性検証完了)
* 2026-08-31: fix(operator-portal & chat-history): 統合チャット(Unified Chat)会話履歴の時系列昇順ソート保証・ロール判定是正(bot/operator/user)・多言語AI署名重複排除・未連携初手&マジックリンク履歴完全同期(①packages/operator-portal/server/controllers/unifiedChatController.js において HubSpot Note ヘッダー parsedTime からミリ秒タイムスタンプを復元し全チャネルメッセージを (a,b) => (a.timestamp
Sorai Engineering
| 0) - (b.timestamp || 0) で厳格に昇順ソート、②role === 'model' / 'bot' がオペレーターとして誤認されていたロール判定バグを解消、③packages/common/services/chatHistory.js の cleanAiSignature を多言語 [JA, EN, VI, RU, ID] 注記対応に強化し Firestore と HubSpot の deduplication 判定を完全化、④LINE/Facebook Bot の友だち追加、未連携初手メッセージ、マジックリンク送信・再試行・完了メッセージ、Web引き継ぎ履歴を漏れなく chat_history および HubSpot タイムラインに記録、⑤packages/operator-portal/public/js/chat-common.js の renderMessageTextHTML で不要なシステムタグや注記をバブル描画時に動的 strip、⑥単体テスト packages/operator-portal/tests/unifiedChatOrder.test.js 新設・全143テスト100%パス、仕様書同期)
2026-08-31
Sorai Engineering
feat(agents & subagent-first): Subagent-First(サブエージェント最優先)アーキテクチャの全社マスター規約化 & 親子エージェント責任境界(オーケストレーター vs エグゼキューター)定義 & 5大即時委譲トリガー(リサーチ、多ファイル修正、コンテンツ・4並列翻訳、ビルド・テスト、ブラウザ自動化)策定 & AGY 2.0 運用仕様書同期(①~/.agents/AGENTS.md 第2章を改定し親エージェントのコンテキスト劣化防止と並列スループット最大化を義務化、②オーケストレーター [プランニング・意思決定・統括] とエグゼキューター [実装・リサーチ・翻訳・テスト] の明確な責任分離、③5大即時委譲トリガー [1. 検索・ログ調査、2. 2ファイル以上のコード修正、3. 500行超執筆・4言語並列翻訳、4. docker/npm/testヘビーコマンド、5. DevTools/CMS/API外部操作] の定義、④spec-viewer/docs/12_google_antigravity_guide.md への仕様書同期およびマスター仕様書自動ビルド完了)
2026-08-31
Sorai Engineering
fix(bot & onboarding): メール認証未完了・失敗・期限切れ時の対話ブロック挙動完全撤廃 & AIチャットシームレス直通化(①LINE Bot packages/line-bot/services/line/orchestrator.js において AWAITING_LINK 状態での非メール・非コードメッセージ送信時や期限切れ時の警告返信を撤廃し Firestore line_states を削除して標準AI自動応答 Gemini 3.7 Flash へ即時直通、②Facebook Bot packages/facebook-bot/services/facebook/orchestrator.js においても同様に AWAITING_LINK / AWAITING_EMAIL 時のエラー・警告返信を撤廃し facebook_states をクリアしてAIチャット直通化、③単体テスト packages/line-bot/tests/otp.test.js および packages/facebook-bot/tests/otp.test.js 刷新・全テスト100%パス、仕様書同期)
2026-08-31
Sorai Engineering
feat(line-bot & branding): マジックリンク認証完了画面・エラー画面・送信HTMLメールへのソライ東京公式ロゴ(SVG/PNG)&ブランドデザインシステム(Deep Navy × Amber Gold)完全配備(①認証完了画面 getSuccessHtml およびエラー画面 getErrorHtml の最上部に高精細ベクターロゴ [Deep Navy #002C65 / Amber Gold #CE8F28] &「株式会社ソライ東京 / SORAI TOKYO」ブランドヘッダーを配備、②認証メールアドレスバッジ・成功アニメーション・soraitokyo.jp フッターリンクを追加し高級感と信頼性を最大化、③本人確認メール送信テンプレート sendMagicLinkEmail もソライ東京ブランドヘッダーおよび統一ボタンデザインへ刷新、仕様書同期)
2026-08-31
Sorai Engineering
fix(line-bot & magic-link): LINE公式アカウント本人確認マジックリンクURLのCloud Run正規FQDN修正 & DNS未定義ドメイン(line-bot.soraitokyo.jp)解消 & テスト送信用スクリプト配備(①LINE Botのオンボーディング認証メール生成時に使用されていた未設定カスタムドメイン line-bot.soraitokyo.jp を実際の稼働Cloud Runエンドポイント https://real-estate-chatbot-line-bot-902297816152.us-central1.run.app へ修正し、山田欄様をはじめとするユーザーの認証リンクが開けない不具合を根本解消、②scripts/deploy-service.sh の line-bot 本番 SERVICE_URL 設定および packages/common/middleware/security.js の DEFAULT_ALLOWED_ORIGINS に正規URLを反映、③テスト送信用スクリプト scratch/send_test_magic_link.mjs を配備し検証メール送達およびFirestoreトークン生成の正常性を確認、仕様書同期)
2026-08-31
Sorai Engineering
refactor(spec-viewer & architecture): 仕様書ポータルの全社リファクタリング & 過去履歴アーカイブ分離(docs/archives/history_2026_h1.md)& 全13章マイクロモジュール化(各8〜30KB)& system_specification.md の約48%軽量化(427KB ➔ 220KB)(①肥大化していた 01_customer_service_ai.md [101KB/761行] を接客AI・契約重説 [01]、LINE/FB Bot [02]、AI電話自動応答 IVR [03]、入居申込・管理画面・国交省API [04]、HubSpot CRM UI拡張 [07]、全社セキュリティ [11] へ機能別に完全マイクロモジュール分割、②99_history_and_changelogs.md [108KB/668行] から2026年8月29日以前の過去開発履歴を docs/archives/history_2026_h1.md へ安全にアーカイブ分離し直近ログ [20KB] にスリム化、③全13モジュール体制 [00〜12, 99] に合わせて lib/parser.js、server.js、tools/spec_drift_linter.py、AGENTS.md を完全追従、④build_spec.py による自動コンパイルにより system_specification.md を 427KB(3,770行)から 220KB(2,158行)へ大幅軽量化、⑤全ビルド・リント検証100%合格、仕様書同期)
2026-08-31
Sorai Engineering
feat(ai & cost-guardrails): LINE / Facebook Bot 会話履歴スライディングウィンドウ(直近4往復/8件)& ローリング要約メモリ(Rolling Summary Memory)アーキテクチャの実装 & maxOutputTokens 2500 設定 & Quota In-Memory フォールバック & 認証・Cloud Run ハーデニング(①LINE/Facebook Bot において Gemini API に送信する生会話履歴を直近8件に限定しトークン消費を定額化、②4往復以上進んだ会話を非同期バックグラウンドで Gemini Flash-Lite/Flash が 150〜200 字の箇条書き要約 summary に自動変換して Firestore chat_history に永続化しシステム指示に注入、③文末途切れ防止と無限出力防御を両立する maxOutputTokens: 2500 の明示設定、④packages/common/services/quota.js における Firestore 障害時の In-Memory LRU フォールバック実装による Fail-Open 異常課金防御、⑤packages/apply-portal/middleware/authenticateApplicant.js のテスト用 Contact ID バイパス削除、⑥.github/workflows/deploy-spec.yml に --max-instances 2 --min-instances 0 --concurrency 80 を明示追加、単体テスト合格、仕様書同期)
2026-08-31
Sorai Engineering
feat(security & cloudflare-turnstile): Cloudflare Turnstile スマート人間認証(非対話的CAPTCHA代替・0円)のお問い合わせフォームへの配備 & 営業スパム・不正ボット送信の完全排除(①Cloudflare Challenges API 経由で Sorai Tokyo Web Forms 用 Turnstile ウィジェット [Sitekey: 0x4AAAAAAEi7xTPK-PWpAE9q, Secret: 0x4AAAAAAEi7xbFQ4L9Dv9tYNN4dUlurXF4, Mode: Managed] を新規生成、②templates/contact.html に api.js スクリプトおよび cf-turnstile ウィジェットコンテナを配備、③js/contact-enhancements.js に cf-turnstile-response トークン事前検証および自動 reset ライフサイクルを実装、④_contact.scss にスタイリング追加、⑤HubSpot CMS 本番テーマへ全93件デプロイ完了、仕様書同期)
2026-08-31
Sorai Engineering
feat(security & cloudflare-custom-waf): Cloudflare WAF カスタムルールセット(http_request_firewall_custom)のエッジ本番デプロイ & 不正パス探索・脆弱性スキャナーの即時403遮断(①soraitokyo.jp Zone ID 2ea2b48a35e0c1bf936bb65d1a870ecf のエッジ最前線にカスタムルールセットを本番投入、②全PHP攻撃/WordPress/phpMyAdmin/.env/.git/.aws/.DS_Store 探索に対する即時 Block 403 ルール、③sqlmap/nikto/nmap/masscan/wpscan 等の既知脆弱性スキャナー遮断ルール、④脅威スコア cf.threat_score > 20 に対する Managed Challenge 人間認証ルールを配備、⑤curl実機検証 [403 Forbidden] 合格、仕様書同期)
2026-08-31
Sorai Engineering
feat(security & cloudflare-radar-skill): Cloudflare Radar MCP 連携による新スキル「sorai-radar-security」の配備 & 物件URL自動安全性診断・フィッシング検証 & AIクローラー・Botトラフィック分析エンジンの実装(①Cloudflare Radar MCP [cloudflare-radar / mcp-remote] の OAuth 認証基盤を整備、②物件ポータル [SUUMO, HOME'S, at home] や外部リンクのフィッシング・悪質スクリプト・SSL 健全性を自動検証する URL スキャナー create_url_scan / get_url_scan 連携を構築、③国内 [JP] および海外における AI クローラー [ChatGPT, Claude, Perplexity 等] のクロール動向・悪質スクレイピング比率を分析する get_bots_data 連携を実装、④自動実行スクリプト scripts/radar_inspector.mjs 配備および実機スキャン・集計検証完了、仕様書同期)
2026-08-31
Sorai Engineering
feat(theme & dynamic-ogp-rich-cards): ブログ記事詳細テンプレート(blog-post.html)の OGP 画像(og:image / twitter:image / BlogPosting 構造化データ)完全動的化 & アイキャッチカード自動フォールバック配備(①ブログ個別記事にアイキャッチ画像が手動設定されていない場合に全記事一律で鳥のシンボルマークロゴ [logo.png] が出力されていた問題を解消、②記事一覧 blog-index.html で実績のある icon-helper.html の get_category_class & get_post_icon マクロを blog-post.html に統合し、記事のスラッグ・トピック・駅名から北千住・綾瀬・千代田線・初期費用・外国人審査等の専用 Twilight Blue-Gold アイキャッチ画像 [1200×630px] を自動解決、③og:image, og:image:secure_url, og:image:width/height, twitter:card, twitter:image, BlogPosting JSON-LD image に完全同期、④HubSpot CMS本番テーマデプロイ deploy_cms_theme [93件成功] および実機検証完了、仕様書同期)
2026-08-31
Sorai Engineering
fix(theme & contact-ondemand-display-and-faq-accordion): お問い合わせページ(contact.html & contact-enhancements.js)のオンデマンドフォーム展開 & FAQアコーディオン開閉動作の完全修正(①Card 3の「メールフォームへ移動する」「オンライン面談を予約する」ボタン押下時に対応パネルを即時表示展開 [display: block] & 入力欄フォーカス&スムーズスクロールする直感的なUI挙動へ刷新、②FAQ独立カードアコーディオン(.faq-card-item)のクリック開閉トグルリスナーを完全修復しタップで開閉可能に改善、③インラインスクリプトの構文エラー解消、④HubSpot CMS本番テーマ再デプロイおよびDevTools実機クリックシミュレーション検証完了、仕様書同期)
2026-08-31
Sorai Engineering
fix(theme & contact-jump-navigation): お問い合わせページ(contact.html & contact-enhancements.js)の「メールフォームへ移動する」「オンライン面談を予約する」ボタン遷移不具合の解消(①contact-enhancements.js内の旧タブ切り替え初期化ロジック [switchTab('line')] がform-panelとbooking-panelの両方を非表示にしていた問題を修正、②jump-to-form-btnおよびjump-to-booking-btnのクリックイベントに完全対応し、対応パネルの即時展開 [display: block] & スムーズスクロールへの連動を実装、③HubSpot CMS本番テーマ再デプロイおよびDevTools実機クリックシミュレーション検証完了、仕様書同期)
2026-08-31
Sorai Engineering
feat(theme & contact-brand-positioning-refinement): お問い合わせページ(contact.html)の過度な手数料ディスカウント訴求(半額・無料押し)の撤廃 &「透明な初期費用・正確な空室確認」を中心とした信頼感重視のメッセージングへ昇華(①「仲介手数料最大半額」などの安売り感を排除し、「気になるポータルURLを送るだけ・透明な初期費用お見積もり」「空室確認・初期費用診断・お部屋探しのご相談」へリファイン、②不要な付帯オプション(除菌消臭代等)の押し付けゼロ・おとり物件排除・REINS直結の適正見積もりを中核価値として訴求、③FAQ Q1を「なぜ他社よりも初期費用が安く・透明になるのか」へ刷新、④HubSpot CMS本番テーマ再デプロイおよびDevTools実機検証完了、仕様書同期)
2026-08-31
Sorai Engineering
feat(theme & contact-luxury-typography-and-card-faq): お問い合わせページ(contact.html)のソライ東京シグネチャータイポグラフィ(Deep Navy #002C65 × Amber Gold #CE8F28)& 独立カード型FAQ(ぎっしり感解消・広大な余白とQバッジ)の実装(①安っぽいグレー文字を廃止し、格式あるディープネイビーと落ち着いたスレート本文による高級感ある組版へ統一、②よくある質問を窮屈なテーブル風アコーディオンから独立したフローティングカード [Q1〜Q4バッジ・余白贅沢なエディトリアルレイアウト] に刷新、③Q1を初期展開し最も重要な安さの理由を即座に提示、④HubSpot CMS本番テーマ再デプロイおよびDevTools実機検証完了、仕様書同期)
2026-08-31
Sorai Engineering
feat(theme & contact-brand-palette-and-japanese-faq): お問い合わせページ(contact.html)のソライ東京シグネチャー配色(クワイエット・ラグジュアリー)適用 & 日本人向けFAQ(よくある質問)全面刷新(①緑ベタ塗りの過度な配色を排除し、ソライネイビー #1b2a47・テラコッタ #c57e5f・ゴールド #d4af37 を基調とした上質で落ち着きのあるブランドカラーパレットへ統一、②日本語版FAQを日本人検討層が最も気にする4大疑問 [1. なぜURLを送るだけで安くなるのか、2. 時期未定や他社相見積もり診断も歓迎、3. 遠方からの来店不要オンライン完結、4. REINS直結による他サイト物件の全網羅] に全面刷新、③他言語版は外国人向けFAQを最適維持、④HubSpot CMS本番テーマ再デプロイおよびDevTools実機検証完了、仕様書同期)
2026-08-31
Sorai Engineering
fix(theme & contact-honest-copy): お問い合わせページ(contact.html)の過剰な回答時間表記(最短5分・即時回答)の撤廃 & 誠実・現実的な接客コピーへの統一(①管理会社確認等の実務実態に即し「最短5分〜即時回答」の過度な即答アピールを撤廃、「専任スタッフが丁寧・スピーディーに対応」へ適正化、②Card 1のバッジ表記を「★ 一番人気・おすすめ相談窓口」へ統一、③HubSpot CMS本番テーマ再デプロイおよびDevTools実機検証完了、仕様書同期)
2026-08-31
Sorai Engineering
fix(theme & contact-tab-bar-removal): お問い合わせページ(contact.html)の重複していた中間タブバー(contact-flow-switcher)の完全撤廃(①Card 3内の遷移ボタンと重複していた「メールフォームから問い合わせ / オンラインお打ち合わせ予約」のピル型タブ切り替えバーを削除、②Card 3のアクションボタンから直接フォーム/カレンダーへスムーズスクロールする直感的なUI構造へ一本化、③HubSpot CMS本番デプロイおよびDevTools実機検証 [switcherExists: false] 完了、仕様書同期)
2026-08-31
Sorai Engineering
fix(theme & contact-redundancy-and-icons): お問い合わせページ(contact.html)の重複セクション排除 & AIアイコンのビジネス・不動産向け自然化(①3ステップ図解バナーとアクションカード・お問い合わせ後の流れにおける重複表現を解消し、カード1内部のミニステップフローへスマートに統合、②キラキラ系・魔法の杖系アイコン [fa-sparkles, fa-wand-magic-sparkles] を割引タグ [fa-tag] や文面作成ペン [fa-pen-to-square, fa-file-pen]、タップ [fa-hand-pointer] に全面刷新し、プロフェッショナルな信頼感を向上、③HubSpotテーマ本番再デプロイおよびDevTools実機検証完了、仕様書同期)
2026-08-31
Sorai Engineering
feat(theme & contact-cvr-redesign): お問い合わせページ(templates/contact.html)のコンバージョン率(CVR)最大化フルリニューアル & 迷わせない3カード構成 & ワンタップLINE起動 & 3ステップ図解バナー配備 & 全5言語完全ローカライズ(①回遊・PV増加に伴う離脱フリクションを解消するため、冗長なテンプレートコピー操作や多重タブ構造を撤廃し「ポータルURLを送るだけで仲介手数料最大半額!おとり物件ゼロ&適正見積もり」の圧倒的ユーザーメリットをファーストビューに配置、②「1. LINEで物件URLを送るだけ(最速・一番人気)」「2. LINEでチャット条件相談」「3. メールフォーム / オンライン予約」の選べる3大アクションカードを新設、③しつこい営業電話ゼロ・来店不要・完全無料の3大安心リボンバッジを常設、④メールフォームとGoogleカレンダー予約へのスムーズなスクロール&タブ自動選択を配備、⑤全5言語 [JA, EN, VI, RU, ID] のHubSpot CMS本番テーマデプロイ deploy_cms_theme および全32ページ Push-Live 再公開完了、仕様書同期)
2026-08-31
Sorai Engineering
fix(theme & area-guide-posts-limit): エリアガイド(templates/area-guide.html 等)のブログ記事取得上限(blog_recent_posts)を100件から250件へ拡張し過去街歩きコラムの押し出し欠落バグを根本解消(①ブログ全体の記事数が117本に増加したことで他ジャンルの新着記事が公開されるたびに従来の100件制限枠から過去の北千住・綾瀬・北綾瀬エリア記事が押し出されて取得対象外となり街歩きコラム表示数が58本➔49本➔48本と減少していた不具合を特定、②area-guide.html, area-guide-chiyoda-line.html, blog-post.html, blog-index.html の blog_recent_posts 取得上限を HubL 最大値の 250 件へ一括引き上げ、③テーマデプロイ deploy_cms_theme および全ページ再公開 Push-Live 完了、全58本が正確に抽出・集計・表示されるよう完全復旧、仕様書同期)
2026-08-31
Sorai Engineering
feat(theme & end-cta-simulator-ux-refinement): ブログ記事末尾(ラストCTA)の初期費用シミュレーターUI/UX改善 & 7項目完全内訳 & 仲介手数料通常1ヶ月+半額注記 & ポータル掲載外費用ディスクレーマー配備 & SUUMO遅延解説コラム(/blog/portal-site-information-delay)リンクカード配備 & 2重CTAボタン排除(①フォールバック時を含む全ケースで賃料・管理費・敷金・礼金・仲介手数料・保証料・鍵交換損保等の全7項目を完全表示、②仲介手数料通常1ヶ月分を基準額とし「✨ 半額適応時は ¥XX,XXX」を明記、③結果カード内の単体LINEボタンを削除し結果確認後にラストCTA本来のメインLINEボタンへ誘導するシンプル動線へ最適化、④SUUMO等ポータルサイト掲載情報に基づく概算である旨および付帯費用発生の可能性に関するディスクレーマーを全5言語 [JA, EN, VI, RU, ID] で整備、⑤「なぜSUUMOなどのポータルサイトは情報の遅延・タイムラグが起きるのか?」解説記事への回遊リンクカードを配備、⑥HubSpot CMSテーマ本番デプロイ完了、仕様書同期)
2026-08-31
Sorai Engineering
fix(monitoring & chat-webhook-routing): GCE死活監視・深夜パトロール・Context Cacheウォームアップのアラート通知先Webhookをシステム障害専用スペース(system-alert-chat-webhook / AAQAg20CxZ8)へ完全統一(①scripts/monitoring/.env および GCE VM clocall-phone-tokyo-vm 上の GOOGLE_CHAT_WEBHOOK_URL を誤設定されていた別スペースから Secret Manager system-alert-chat-webhook [スペース: AAQAg20CxZ8] の正規URLへ差し替え、②deploy_to_gce.sh における .env 転送・権限設定を最適化、③gemini_cache_warmup.py における 404 pending 時のノイズアラート抑止と 5xx/ネットワーク切断時限定の確実なアラート発報ロジックを配備、④実機疎通テスト完了、仕様書同期)
2026-08-31
Sorai Engineering
feat(ai & gemini-cache-smart-warmup): GCE常時稼働インスタンスを活用した「Gemini Context Cache 日中スマート・ウォームアップ」基盤の構築 & GCE VM本番デプロイ(①operator-portal に GET /api/cron/cache-warmup エンドポイントを新設し主要モデル gemini-3.7-flash / gemini-3.5-flash-lite および全社多言語ナレッジベース [約117記事分] の Context Cache TTL 7200s 寿命延長・リフレッシュを実装、②GCE VM clocall-phone-tokyo-vm 上に gemini_cache_warmup.py を配備し日中帯 [08:00〜22:30 JST] のみ 1時間45分間隔でキャッシュを自動更新、③HPチャットボット column-search-agent への POST /api/chat ping による Gemini 3.5 Flash-Lite コールドスタート防止を統合、④深夜帯 [23:00〜07:30 JST] のキャッシュ自動休止によるストレージ費用削減 [月額約70〜100円の超極小コスト運用]、⑤全単体テスト100%パス、仕様書同期)
2026-08-31
Sorai Engineering
fix(monitoring & false-positive-safeguards): インフラ死活監視(cloudrun_warmup_healthcheck.py)および深夜定期パトロール(midnight_link_gsc_patrol.py)の誤検知防止改修 & GCE VM(clocall-phone-tokyo-vm)本番デプロイ(①パトロール・ヘルスチェックスクリプトの User-Agent をブラウザ互換形式 [Chrome/Safari] および標準 Accept ヘッダーに刷新し、Cloudflare / HubSpot WAF のエッジ Bot 判定 [NotFoundResolver 404] による誤アラートを恒久防止、②セキュリティ保護された内部 Cloud Run サービス群 [deal-service, line-bot, facebook-bot, quote, apply, spec, column-search-agent] に対する未認証応答 [401/403] をコンテナ正常応答として判定する allow_auth_status ガードを実装しサーバーダウン・通信タイムアウト時のみ即時アラート送信、③column-search-agent に対する POST /api/chat ping による Gemini ウォームアップ機能を追加、④GCE VM clocall-phone-tokyo-vm の不要 snap/journal/apt キャッシュをクリーンアップし容量を確保、⑤deploy_to_gce.sh による最新スクリプトの GCE 本番デプロイおよび即時テスト実行 [全10サービス / 15ターゲット 100% 成功、Failures: 0] 完了、仕様書同期)
2026-08-31
Sorai Engineering
feat(editorial & theme-flow-module): 部屋探しから契約・入居までの完全ステップガイド(全5言語・SVG図解4点)の執筆 & トップ・会社概要用共通コンポーネント(steps-flow-module.html)の配備(①apartment-hunting-to-contract-complete-guide の全5言語 [JA, EN, VI, RU, ID] 記事の執筆完了。日本語版は日本人向け、他言語版は外国人向け [在留資格/ビザ、保証人不要審査、多言語サポート] に最適化、②電子契約一辺倒にならず管理会社ごとの郵送・店頭対面契約にも柔軟対応する旨をバランス良く明記、③4点のリッチなインラインSVG図解 [全体ロードマップ、初期費用比較、内見チェックリスト、3大契約ルート] を配備し全言語でsvg_comprehensive_linter / sentence_rhythm_linterを100%パス、④トップページや会社概要でそのままインクルード可能な共通モジュール soraitokyo-cms-theme/templates/partials/steps-flow-module.html を新設、仕様書同期)
2026-08-31
Sorai Engineering
fix(editorial & cloud-run-job-deploy): Cloud Run Job(sorai-auto-editorial)多言語バリエーション作成時 publishDate 付与の恒久化 & 最新コンテナビルド・本番デプロイ(①run_auto_editorial_pipeline.py において多言語バリエーション作成・更新時の patch_payload および direct_payload に publishDate: now_iso を確実に含めるよう修正し、親記事・全多言語バリエーションの公開日時欠落・1970年初期化バグを恒久防止、②deploy_gcp_cloud_run_job.sh による Cloud Build コンテナイメージビルド [sha256:249abf62...] & asia-northeast1 の Cloud Run Job sorai-auto-editorial 本番デプロイ完了、③Secret Manager [sorai-hubspot-access-token, sorai-mlit-api-key]、IAMロール、Cloud Scheduler トリガー [0 18 * * * (03:00 JST)] の正常稼働検証、仕様書同期)
2026-08-31
Sorai Engineering
fix(editorial & multilang-publishdate-sync): HubSpot多言語ブログ全580記事の公開日(publishDate)一括完全同期 & 1970年初期化バグ根本解消 & 自動化スクリプト再発防止ガード配備 & トップページニュースHubLハーデニング(①全116トピック・全580記事を総点検し日本語親記事と公開日時が不一致 [1970-01-01等] であった多言語バリエーション230記事を親記事の publishDate に一括パッチ [PATCH & Push-Live] し全580記事で1970日付0件・不一致0件の100%完全同期を達成、②automation/heal_missing_multilang_posts.py および audit_and_heal_multilang_integrity.py において生成・パッチ・監査時に親記事の publishDate を常に継承・検証・自己修復するガードを実装、③soraitokyo-cms-theme/templates/partials/home-news-grid.html のHubLロジックを堅牢化 [フォールバックURL・日付フォーマット・バッジデフォルト・多言語タイトル解決]、④テーマ全93ファイルデプロイおよび全32ページPush-Live再公開完了、⑤全5言語 [JA, EN, VI, RU, ID] トップページの新着記事最新3件の時系列完全一致を実測検証、仕様書同期)
2026-08-31
Sorai Engineering
feat(theme & chiyoda-area-guide-pagination-window): 千代田線エリアガイド(templates/area-guide-chiyoda-line.html)の記事一覧ページネーションを最大5ページ表示のスライディングウィンドウ方式(MAX_VISIBLE = 5)に最適化(13ページ横並びによるUI幅肥大化を解消し、現在ページに合わせて数字がスムーズに切り替わり「前へ」「次へ」で快適に進めるUIへ刷新、テーマデプロイおよび即時Push-Live完了、仕様書同期)
2026-08-31
Sorai Engineering
fix(theme & chiyoda-area-guide-html-balance): 千代田線エリアガイド(templates/area-guide-chiyoda-line.html)の綾瀬アコーディオン直後の重複終了タグ(</div></details>)の除去とHTMLタグ完全整合(details 9/9, div 237/237、スタイル崩れの根本修復および即時Push-Live完了、仕様書同期)
2026-08-31
Sorai Engineering
feat(theme & chiyoda-area-guide-multilingual): 千代田線沿線エリアガイド(templates/area-guide-chiyoda-line.html)の全5言語(EN / VI / RU / ID / JA)完全ローカライズ・多言語対応(①SVG路線図・家賃マップ、全駅比較テーブル、モバイルカード、3大エリア概要カード、中間特集コラム帯の文言を全5言語に分岐対応、②北綾瀬、綾瀬、北千住、町屋、西日暮里、千駄木・根津 [谷根千]、湯島・新御茶ノ水・大手町、霞ケ関・日比谷、赤坂・表参道・代々木上原の全8駅アコーディオン [メトリクスバッジ、プロ解説、メリット/デメリット一覧、ソライ東京の現場アドバイス、関連記事バナー] を全言語完全ローカライズ、③注目ハッシュタグフィルターチップおよび動的マガジンカード内の駅バッジ・カテゴリ名・読了時間・アクションボタンの多言語化、④HubSpot CMSテーマ再デプロイ [soraitokyo-theme / soraitokyo-cms-theme] および5言語ページ [JA, EN, VI, RU, ID] のPush-Live即時公開・本番稼働検証を完了、仕様書同期)
2026-08-31
Sorai Engineering
fix(theme & chiyoda-area-guide-dynamic-loop): 千代田線沿線エリアガイド(templates/area-guide-chiyoda-line.html)の新着記事未反映バグの根本解消 & HubL動的ループ(blog_recent_posts)完全移行(①静的HTMLとして固定されていた記事カード一覧 [Card 1〜18] を撤廃し HubL blog_recent_posts(current_blog_id, 100) による全駅・沿線関連記事の動的抽出エンジンを実装、②千代田線全駅 [北綾瀬〜代々木上原]・常磐線直通・足立/葛飾/荒川/文京/千代田/港/渋谷区のキーワード・タグ判定によるゾーン自動振り分け [東部/中部/西部/住みやすさ/カフェ街歩き] およびハッシュタグチップ連携を構築、③5言語 [JA 78記事、EN 48記事、VI 48記事、RU 47記事、ID 48記事] のHubSpot CMS本番テーマ再デプロイおよびPush-Live即時公開完了、仕様書同期)
2026-08-31
Sorai Engineering
fix(editorial & multilang-group-integrity): HubSpot多言語ブログ記事の親子グループ未紐付け根本修復 & 欠落7記事の4並列即時翻訳・公開 & 再発防止多言語整合性アサーションの実装(①HubSpot全580記事の総点検により発覚した未翻訳2テーマ7記事 [initial-cost-simulator-guide の EN/VI/RU/ID および chiyoda-line-downtown-vs-yanesen-comparison の EN/VI/ID] の4並列Geminiローカライズ翻訳・HubSpotデプロイ・Push-Live・GSC Indexing API送信の完遂、②退去費用ガイド move-out-inspection-deposit-refund-guide 他における多言語バリエーション未結合バグの attach-to-lang-group API による完全親子グループ化、③run_auto_editorial_pipeline.py へのデプロイ直後「多言語整合性アサーション(4言語完全性検証)&自動再アタッチ自己修復ガード」の実装、④HubSpot全580記事の整合性を定期巡回・自動修復する専用監査ツール audit_and_heal_multilang_integrity.py の配備 [全116トピック100%完全体保証]、⑤AGENTS.md / SKILL.md ガイドライン同期、仕様書同期)
2026-08-31
Sorai Engineering
feat(editorial & gemini-context-caching): 自律エディトリアルパイプライン(run_auto_editorial_pipeline.py)の多言語並列翻訳(Step 5)における Gemini 3.5 Flash-Lite(Thinking: Low)移行 & Gemini Context Caching 本番配線 & Flex PayGo 5回リトライ強化(①日本語記事全文・SVG辞書・メタデータを sorai_common.create_or_get_context_cache により Gemini Context Cache に登録し4言語 [EN/VI/RU/ID] 並列翻訳時に同一キャッシュを参照、②翻訳特化モデル Gemini 3.5 Flash-Lite への移行と Thinking Low [1024 tokens] 設定により自然なローカライズ推論を担保しつつ出力単価を $3.75 ➔ $1.25 / 1M [約67%OFF] に圧縮、③入力トークン単価を $0.75 ➔ $0.075 / 1M [約90%割引] に大幅圧縮、④sorai_common.py における Flex PayGo 50%割引リトライを 5回 [3s ➔ 6s ➔ 12s ➔ 20s ➔ 30s] に強化し Standardフォールバックを防止、⑤多言語翻訳費用を1記事あたり約42円 ➔ 約12〜14円 [約70%削減] に圧縮、仕様書同期)
2026-08-31
Sorai Engineering
feat(security & cloudflare-edge-protection): Cloudflare グローバルエッジ WAF & DDoS 多層防御アーキテクチャの導入およびセキュリティ突破緊急アラート・週次生存確認ハートビートシステムの実装(①全社ドメイン soraitokyo.jp および全サブドメイン [operator, resident, quote, apply, www] への Cloudflare エッジプロキシ [🟠 Proxied] 導入による外部ボット・脆弱性スキャン・DoS連打のエッジ自動撃退、②Google Cloud DNS から Cloudflare への全DNSレコード [Cloud Run CNAME, HubSpot CMS CNAME/Apex A, Google Workspace / HubSpot メール DKIM/SPF/DMARC/MX] の 100% 完全同期、③SSL/TLS モード Full・Always Use HTTPS・Browser Integrity Check・TLS 1.3・最低 TLS 1.2 設定の自動適用、④エックスサーバーにおけるネームサーバー委任 [amanda.ns.cloudflare.com, micah.ns.cloudflare.com]、⑤packages/common/services/securityAlert.js 新設による突破時限定の Google Chat 緊急警報 [5分スロットリング付き]、⑥GET /api/cron/security-heartbeat による週次生存確認通知 [毎週月曜 09:00 JST]、⑦単体テスト 100% 合格、仕様書同期)
2026-08-31
Sorai Engineering
feat(editorial & mlit-cloud-jobs): 国土交通省 不動産情報ライブラリ連携モジュール mlit_data_fetcher.py の新設および Cloud Run Jobs 完全無人化対応(①千代田線・都内全域の駅座標から地価公示・取引価格・用途地域/建蔽率/容積率・駅乗降客数・液状化・洪水浸水想定・認可保育園/医療機関の6大公的データを自動取得・要約、②SQLite 30日TTLキャッシュによるAPI待機時間・コスト0ms化、③LLMプロンプト注入用Markdown・SVGチャート・比較テーブル用データ抽出完備、④mlit_geospatialコア同梱&requirements.txt更新&Secret Manager sorai-mlit-api-keyバインドによるPC電源OFF完全無人稼働対応、仕様書同期)
2026-08-31
Sorai Engineering
feat(mlit & geospatial-ai-diagnosis): 国土交通省 不動産情報ライブラリ(MLIT API)連携による『物件カルテ・周辺環境AI診断』機能の実装(①packages/common/services/mlit/ におけるタイリング座標変換 tileConverter.js・国土地理院ジオコーダー geocoding.js [7日キャッシュ]・MLIT 7大公的データ並列取得クライアント mlitClient.js [用途地域/XKT002, 地価公示/XPT002, 洪水浸水/XKT026, 土砂災害/XKT029, 医療機関/XKT010, 小中学校区/XKT004-XKT005, 保育園/XKT007] および統合診断オーケストレーター index.js の新設、②LINE公式アカウント responder.js におけるポータルURL・住所検知時のリアルタイム公的データプロンプト注入、③初期費用シミュレーター diagnoseService.js における物件所在地カルテ locationDiagnosis 連動、④単体テスト mlitService.test.js 100% 合格、仕様書同期)
2026-08-31
Sorai Engineering
feat(ci & spec-drift-linter): GitHub Actions による「Spec Drift Linter」&自動仕様書コンパイル CI/CD パイプラインの配備(①spec-viewer/tools/spec_drift_linter.py によるコード変更・仕様書連動トリガーマッピング検証およびマスター仕様書完全性チェックの実装、②.github/workflows/spec-drift-linter.yml による PR 時の仕様書更新漏れ自動検知&ブロック、③Push 時の build_spec.py 自動コンパイル&auto-commit/push ワークフロー、④package.json への npm run lint:spec / fix:spec 追加および sorai-spec MCP サーバー連携完了、仕様書同期)
2026-08-31
Sorai Engineering
feat(mcp & sorai-spec): Antigravity / Gemini 連携専用ローカル MCP サーバー(sorai-spec)の構築・登録(①real-estate-chatbot/spec-viewer/mcp-server.js による stdio トランスポート 7 大 MCP ツール [list_spec_modules, get_spec_module, search_spec, get_spec_section, get_api_and_infra_catalog, compile_and_verify_specs, get_latest_changelog] の実装、②~/.gemini/config/mcp_config.json への sorai-spec 登録および ~/.gemini/antigravity/mcp/sorai-spec/ への JSON スキーマ・instructions.md 配備、③コンテキスト最小化 get_spec_section によるピンポイント仕様抽出 [トークン消費 90% 削減]、④単体・MCP 統合テスト 100% 合格、仕様書同期)
2026-08-31
Sorai Engineering
feat(editorial & modular-structured-pipeline): 自律エディトリアルパイプライン Phase 1〜3 全面刷新(①sorai_common.py におけるタスク別 Thinking Budget 最適配分 [翻訳1024/執筆3072/ファクト8192] および Good/Bad Few-Shot 導入、②collect_pre_retrieval_facts による執筆前 Google Search Grounding ファクト事前注入 Pre-RAG、③sorai_schema.py Pydantic 構造化データ出力 & sorai_renderer.py 型安全 HTML/JSON-LD レンダラー分離による高単価出力トークン40%削減・DOM崩れ0%化、④Gemini Context Caching 連携による4言語翻訳入力トークン75%割引、⑤Critic Subagent による100点満点品質査読ループ、⑥svg_comprehensive_linter.py による多言語SVGシングルライン維持&精密フォントスケーリング、⑦GCP Cloud Run Jobs sorai-auto-editorial への最新コンテナデプロイ&実機検証合格、仕様書同期)
2026-08-31
Sorai Engineering
feat(portal-quote & price-parser): 初期費用シミュレーターの AI モデルを Gemini 3.5 Flash-Lite へ移行&空白区切り付帯費用・退去時清掃費分解エンジンの強化(①packages/portal-quote-prototype/services/diagnoseService.js における quoteDiagnosticSchema [17項目の厳密なJSON Schema] 定義、②diagnoseFromImage [画像OCR] および diagnoseFromUrl [URL直接解析] の主要モデルを gemini-3.5-flash-lite へ変更しコスト1/10〜1/12&0.2〜0.5秒の超爆速レスポンス化、③packages/common/utils/priceParser.js の parseIncidentalsBreakdown における単位スラッシュ保護+金額トークン直後空白分割エンジン __INCIDENTAL_SEP__ 実装 [安心入居サポート月額1210円・退去時ハウスクリーニング67100円の完全個別分解]、④損保1.79万円2年 [17900円]・初回保証料50%の完全抽出、⑤全単体テスト100%パス、仕様書同期)
2026-08-31
Sorai Engineering
feat(daily-sync & spec-deploy): 前日(2026-08-30)の開発実績・改善・アイデア総括の仕様書ポータル自動反映およびCloud Run本番デプロイ(①Gemini 3.7 Flash × BigQuery 4大シグナル統合によるAI自律テーマ選定エンジン、②Gemini Structured Outputs全社導入&Thinking Budget 0最適化、③Gemini Context Caching全社統合&入力コスト最大75%削減、④初期費用SUUMO保証料率%&内訳分解精度向上、⑤統合チャットUI/UX刷新&スマホドロワー&時系列・送信者判定修正、⑥deal-service 4段階パイプラインステッパー&SSE進捗タイマーUI、⑦マイクロサービス間OAuth CSRF署名ステート化、⑧公式HP Core Web Vitals 92点Good達成&特選LP復旧、⑨エディトリアルデザインシステム自動整形&SVG丸バッジ文字中央配置・コントラスト自動修復、⑩出たアイデア・今後の検討事項の記録、仕様書全ビルド&Cloud Run本番反映完了)
2026-08-30
Sorai Engineering
feat(ai & editorial-synthesizer): Gemini 3.7 Flash × BigQuery 4大シグナル統合による AI自律エディトリアル選定エンジンの実装(①topic_queue_planner.py における GSC検索急上昇クエリ Top 50・GA4読了率/高PVページ Top 20・Facebook反響トピック Top 10・過去公開済み543記事分布バランスの BigQuery クロス抽出 fetch_multi_source_signals 実装、②Gemini 3.7 Flash Dynamic Thinking による黄金比率 [コア主要駅 33% / 千代田線沿線 33〜50% / お役立ち実務 週1〜2本] に基づく高精度未開拓テーマ自律合成 synthesize_dynamic_topics の実装、③duplicate_checker 連携による 0トークン重複排除・セマンティックカニバリゼーション完全防御 [類似度スコア < 0.65 判定]、④run_auto_editorial_pipeline.py の run_daily_batch におけるリアルタイムスロット埋め動的フォールバック統合、仕様書同期)
2026-08-30
Sorai Engineering
feat(ai & structured-outputs): Gemini Structured Outputs(型定義JSON出力)および Thinking Budget 最適化の全社導入(①packages/apply-portal/services/ocrService.js における身分証OCR抽出 [idDocumentSchema: 氏名/カナ/生年月日/性別/住所等9項目] への responseMimeType: 'application/json' & responseSchema 適用と JSON パースエラー率ゼロ化、②packages/line-bot/services/line/extractor.js におけるチャット文連絡先抽出 [contactDetailsSchema: name/phone/email] への Structured Outputs 適用、③情報抽出タスクに対する thinkingConfig: { thinkingBudget: 0 }(思考オフ)適用による不要思考トークン課金ゼロ化&ミリ秒単位の超高速レスポンス化、④packages/common/services/gemini.js の callModel における responseMimeType / responseSchema 透過サポート、⑤新規単体テスト structuredOutputs.test.js を含む全340件以上のワークスペーステスト100%パス、仕様書同期)
2026-08-30
Sorai Engineering
feat(ai & context-caching): Gemini Context Caching(コンテキストキャッシュ)の全社統合&入力トークンコスト最大75%削減・TTFT超高速化(①packages/common/services/contextCacheManager.js の新設による多言語ナレッジベース [約115記事] および基本接客ガイドラインの Vertex AI / Gemini 側 Context Cache [ai.caches.create, TTL: 2時間] ライフサイクル一元管理、②HubSpot記事更新時 [refreshArticlesFromHubSpot / reloadKnowledgeData] の自動無効化・自己修復リスナー実装、③packages/common/services/gemini.js における cachedContent 透過サポートおよび cachedContentTokenCount のUsageMetadataロギング、④LINE公式アカウント [responder.js] およびオペレーター管理画面下書き生成 [draftGenerator.js] へのキャッシュ参照・プロンプト最適化・高耐障害性フォールバック配備、⑤新規単体テスト contextCache.test.js を含む全340件以上のワークスペーステスト100%パス、仕様書同期)
2026-08-30
Sorai Engineering
fix(portal-quote & suumo-parsing): 初期費用シミュレーターにおけるSUUMO保証会社料率(%)および鍵交換代・内訳分解抽出の完全高精度化(①priceParser.js における全角英数記号 [0-9, %, :, /, (), ¥] の完全正規化 normalizeJapaneseString およびカッコ付き複合内訳自動分解ヘルパー parseIncidentalsBreakdown の新設、②diagnoseService.js における「初回保証料:総賃料等の50%、月額保証料:1.5%」等の併記パターンからの初回保証料率最優先ピンポイント抽出&月額保証料誤認防止、③「合計7.7万円(内訳:カギ交換費用22000円/室内清掃費用55000円)」のような複合内訳文字列の自動展開により鍵交換代22,000円・清掃費55,000円への正確マッピングと合計額7.7万円誤認・二重計上の完全解消、④AIプロンプト [画像OCR / URL解析] の抽出制約強化、⑤SUUMO実例を含む全単体・結合テスト100%パス、仕様書同期)
2026-08-30
Sorai Engineering
refactor(operator-portal & modular-architecture): Operator Portalバックエンドの大規模リファクタリング&コントローラー層分離(①910行を超える巨大ファイル hubspot.js から責任範囲ごとに unifiedChatController.js, breezeController.js, draftController.js へ分割・疎結合化、②タイムラインメッセージパース処理・AI/有人送信振り分け・Breeze AI質問応答・返信下書き生成のエンドポイント設計をクリーン化、③単体テスト全件100%パス、仕様書同期)
2026-08-30
Sorai Engineering
fix(operator-portal & message-chronological-order): 統合チャットにおける対話ログの時系列ソート順(昇順)の完全正常化(①Note内メッセージのタイムスタンプ再計算時に発生していたJST/UTCタイムゾーン不整合 [9時間の時差ズレ] を完全撤廃し、HubSpot Noteの正規タイムスタンプ+順次オフセットによる厳密な昇順整列を保証、②Firestore chat_historyとの結合時における異常タイムスタンプ混入を防止、③全顧客での時系列会話フロー100%検証完了、仕様書同期)
2026-08-30
Sorai Engineering
fix(operator-portal & message-sender-classification): 統合チャットにおける送信者(オペレーター/AIボット/入居者)の厳密判定&誤ったAI応答表示・システムノート混入の完全解消(①timeline.js の parseMessage における正規表現を厳密化し 【添付ファイル】等のマークダウンリンクをヘッダーと誤認してメッセージが分断・誤判定される問題を修正、②Gemini図面照合結果・適合物件リスト・アクセスログ等の非チャットシステムメモをチャットフィードから完全除外、③オペレーター送信およびLINE応答webhookにおいて role: 'operator' でFirestoreへ永続化し過去ログ読み込み時もAI署名の有無に基づいてオペレーター発言 [既読バッジ/グリーン吹き出し] とAI応答 [AI応答バッジ/クリーム吹き出し] を100%正確に区別、④単体テスト全件100%パス、仕様書同期)
2026-08-30
Sorai Engineering
fix(operator-portal & customer-id-resolution): 統合チャット(unified-chat)における顧客IDクエリパラメータ読み取り不具合の根本解消&全顧客会話履歴ロードの完全復旧(①unified-chat.html 内の静的プレースホルダー __CUSTOMER_ID__ が dataset.customerId に残り URL パラメータ ?customerId=... のパースがスキップされていた不具合を解消、②unified-chat.js において URL パラメータ customerId / associatedObjectId を最優先パースしバックエンド /api/hubspot/unified-chat/messages でのサニタイズを追加、③chat-space.js の selectCustomer における一覧未取得顧客・Deal ID フォールバック対応、④全顧客対話ログの100%ロード検証完了、仕様書同期)
2026-08-30
Sorai Engineering
feat(operator-portal & hybrid-chat-sync): 統合チャットにおけるリアルタイム対話同期&HubSpot/Firestore完全ハイブリッドマージの実装(①LINE公式・入居者ポータル・Facebookの全着信メッセージ受信時に即座に appendChatMessage を実行し有人対応中 [AI Bot OFF] やタイムライン同期遅延時でもFirestore chat_historyへリアルタイム永続化、②/api/hubspot/unified-chat/messages、Breeze AI カルテ・質問回答、AI返信下書き生成においてHubSpotタイムラインとFirestore双方を無条件取得し normalizeMessageTextForDedup で重複排除しつつ昇順タイムスタンプソートで結合、③HubSpot取引 [Deal] サイドバーからの ?dealId=... 起動時におけるフロントエンド [unified-chat.js, chat-space.js] およびバックエンドでの Deal ID / Contact ID 相互フォールバック解決を完全実装、④単体テスト全件100%合格、仕様書同期)
2026-08-30
Sorai Engineering
feat(hp-theme & cwv-performance): 公式HPのCore Web Vitals&Lighthouseパフォーマンス徹底最適化(①Google Fonts厳選ウェイト化およびFont Awesome all.min.cssの非同期読み込み media="print" onload="this.media='all'" + noscript フォールバックによるレンダリングブロック完全解除、②エリアガイド・カテゴリーPNG画像全37枚のRetina 2x適正サイズ 380x380px へのリサイズ [sips] および home-news-grid.html サムネイルへの ?width=380 クエリ付与による画像転送量1.8MB以上削減、③ヘッドレスChromeワンコマンド自動監査ツール tools/run_lighthouse_audit.py の構築、④デスクトップ Performance 47点 ➔ 92点 [Good]、FCP 0.7s、LCP 1.5s、TBT 20ms、CLS 0.00、SEO 100点満点を達成、仕様書同期)
2026-08-30
Sorai Engineering
fix(hp-routing & featured-property): 特選新築物件『プレジオ北綾瀬ASIAN』LP(/properties/plegio-kitaayase-asian)の復旧(①特選新築物件LPからブログ記事へ301転送されていたHubSpot URL Redirects 全言語7件 [ID: 388631785190等] を完全削除、②全26室空室一覧・間取り図・実物写真ビューア・内見予約を備えた本来の特選物件LPへのダイレクト遷移を復旧、仕様書同期)
2026-08-30
Sorai Engineering
feat(operator-portal & plan-a-breeze-drawer): 画面遷移なしで HubSpot Breeze Copilot を直接呼び出せる「画面内スライドイン Breeze パネル」の実装(①Gemini を一切使わずに HubSpot Breeze 100% 完結で動作するよう設計、②統合チャットヘッダーおよび顧客カルテに「⚡ Breeze AI」起動ボタンを常設、③ボタンクリック時に画面遷移・リロードなしで画面右端からスムーズにスライド展開する専用ドロワー #breeze-drawer を新設し HubSpot Breeze レコード画面を同一画面内で操作可能化、④スマホ表示時は 85vh ボトムシートドロワーとして展開、⑤単体テスト・構文チェック全件100%パス、仕様書同期)
2026-08-30
Sorai Engineering
feat(operator-portal & line-contacts-filter): 統合チャットにおけるLINE ID保有者限定表示&HubSpot/Firestoreハイブリッド会話履歴ロードの実装(①オペレーターポータルの顧客一覧 /api/customer/list において line_user_id 保有者のみを抽出表示しチャット可能な顧客のみに整理、②タイムラインメッセージパーサー parseMessage の正規表現・プレフィックス対応強化により全タグ形式の過去ログを100%パース可能化、③HubSpotタイムラインに加えてFirestore chat_history/{lineUserId} との自動フォールバック・マージ機構を新設し会話履歴の取りこぼしを完全排除、④メッセージが存在するチャネル [LINE等] の自動選択アクティブ化、⑤単体テスト全14件100%合格、仕様書同期)
2026-08-30
Sorai Engineering
feat(operator-portal & clean-header-menu): 統合チャット画面領域の極大化とハンバーガーメニュー集約&クイックリプライバー廃止(①画面を圧迫していた下部クイックリプライバー .line-quick-reply-bar を完全廃止しチャット入力領域をクリーン化、②ヘッダー直下にスライドダウン展開する折りたたみメニュー .collapsible-header-menu を導入しチャネル切替タブ・AI自動応答スイッチ・情報パネルボタンをヘッダーのハンバーガーメニュー #header-menu-btn 内に集約、③デフォルト状態でサブバーを完全非表示化しチャットフィード領域の縦幅を極大化、④HubSpot連絡先検索のフォールバック強化・全アクティブ顧客表示、⑤CI/CDパイプラインへのステージング・本番Operator自動デプロイ追加、⑥構文チェック・単体テスト全件100%合格、仕様書同期)
2026-08-30
Sorai Engineering
feat(operator-portal & line-native-ui): 統合チャット(unified-chat)および統合チャットスペース(chat-space)の LINE ネイティブ・アイコニック UI/UX 刷新&ワンタップ電話・クイックリプライバー実装(①チャット壁紙を LINE 公式ソフトスカイブルー #7494B0 / --bg-feed: #7494B0 へ全面刷新し白/緑吹き出しの視認性を極大化、②入居者白吹き出し [相手名表示・左上しっぽ・右下横並びタイムスタンプ] & スタッフLINEグリーン吹き出し #06C755 [濃色テキスト #0B291A・右上しっぽ・左下縦積み既読/タイムスタンプ] & AIクリーム吹き出し #FFFDF5 [ゴールド枠線・AI応答バッジ] の完全LINE構造化、③メッセージ入力バー直上に横スクロール対応 LINE 風クイックリプライバー .line-quick-reply-bar [⚡ 内見日程調整 / 📋 重説・契約案内 / 💰 費用・空室確認 / ✂️ 簡潔に要約 / 📞 電話折返し確認] を常設し1タップでAI返信下書きを自動生成、④ヘッダーにエメラルドグリーンのワンタップ電話発信リンク #header-phone-btn [tel:...] を常設、⑤構文チェック・単体テスト全件100%パス、仕様書同期)
2026-08-30
Sorai Engineering
feat(operator-portal & unified-chat-ui): 統合チャット(unified-chat)および統合チャットスペース(chat-space)のUI/UX全面刷新&スマートフォン・モバイル最適化(①スマートフォン表示時に画面下部からスライドアップするボトムシートドロワー #info-drawer を新設しPCと同等の顧客・取引情報 [ワンタップ電話 tel: / メール mailto: / コードコピー / 案内用紙リンク / 重説Driveリンク] を1タップで完全閲覧可能化、②iOS Safari入力ズームを防止する16px入力フォントサイズ、100dvh動的ビューポート、44pxタッチターゲット、safe-area-inset余白の完全適用、③日付ごとの視認性を高める日付区切りピル formatDateDivider、チャネルバッジ付きイニシャルアバター・AIスパークル・スタッフアバター renderAvatarHTML、添付画像モーダル拡大 lightbox の実装、④AI返信アシストへの4大クイックプロンプトチップ [⚡ 内見・日程調整 / 📋 重説・契約案内 / 💰 費用・空室確認 / ✂️ 簡潔に要約] の統合、⑤単体・構文テスト全件100%パス、仕様書同期)
2026-08-30
Sorai Engineering
feat(deal-service & live-progress-ui): 図面AI自動マッチング&帯替え(deal-service)の4段階パイプラインステッパー&リアルタイムタイマー&きめ細やかなSSE進捗イベント実装(①packages/deal-service/services/matchingOrchestrator.js における gemini_analyzing, gemini_completed, processing_page, completed_page, saving_timeline のきめ細やかなフェーズ進捗イベント配信、②packages/deal-service/views/uploadModal.js における [1. 受信 ➔ 2. AI解析 ➔ 3. 帯消し・合成 ➔ 4. CRM同期] の4段階パイプラインインジケーター pipeline-stepper およびリアルタイム経過秒数タイマー [⏱️ 処理中: X秒] の実装による長時間処理時の画面停止・フリーズ誤認解消、③各ページ完了ごとのリアルタイム順次ポップイン Live Feed 機構強化、④単体・結合テスト全328件100%合格、仕様書同期)
* 2026-08-30: fix(auth & oauth-csrf): HubSpot図面自動マッチング(deal-service)等のマイクロサービス間OAuth連携時におけるCSRF検証エラー(Error: CSRF state validation failed)の根本解消(①packages/operator-portal/server/routes/oauth.js に generateSignedState / verifySignedState を実装し、共通秘密鍵 JWT_SECRET による HMAC-SHA256 署名および15分有効期限タイムスタンプ付きステートトークン [csrfToken
Sorai Engineering
flowType|operatorHost|redirectPath|timestamp|signature] を導入、②deal-service 等の別ドメイン/別Cloud Runサービスから認可が開始された場合でもクロスドメインで安全・確実にCSRF検証を完結しセッショントークンと共に元のサービスへ自動リダイレクト、③packages/common/middleware/security.js の createRateLimiter におけるテスト環境レート制限スキップによるCI安定化、④単体・統合テスト全328件100%合格、仕様書同期)
2026-08-30
Sorai Engineering
feat(crm & deal-timeline-sync): LINEチャット履歴のHubSpot取引(Deal)レコード自動連携&失注・成約済み除外フィルタ・UI拡張ハイブリッド対応の実装(①packages/common/services/hubspot/deal.js に進行中取引のみを抽出する isDealActive / fetchActiveAssociatedDeal を新設し、hs_is_closed / hs_is_closed_won および closedwon / closedlost / 失注 / 成約 ステージを自動除外、②packages/common/services/hubspot/timeline.js においてLINEメッセージ保存時にコンタクトと同時に進行中取引(Deal)へも Note/Communication を自動関連付け、③packages/operator-portal/server/routes/hubspot.js において dealId クエリからのコンタクト自動解決をサポート、④real-estate-crm-extensions/sorai-lease-bot の chat-card-hsmeta.json に deals を追加し ChatCard.tsx をコンタクト・取引両対応に拡張、⑤単体・統合テスト全14件100%合格、仕様書同期)
2026-08-30
Sorai Engineering
fix(editorial & svg-step-badge-formatting): ステップ図丸バッジ(circle)内の文字はみ出し(STEP 1等の突き抜け)自動簡略化(1〜4数字・中央配置)およびプロンプト規約化(①svg_comprehensive_linter.pyにおいて円半径rに対して文字列長がはみ出すSTEPバッジを自動検知し数字1〜4へ自動簡略化&フォントサイズ・中央座標x=cx, y=cy+6へ自動補正、②生成プロンプトへのステップ図丸バッジ数字規約明記、③湯島・新御茶ノ水記事 388650959601 他全5言語のSVGステップ図一括修復・本番Push-Live完了、仕様書同期)
2026-08-30
Sorai Engineering
fix(editorial & svg-contrast-healing): SVG図解内の丸バッジ(circle)・着色図形内テキストのコントラスト自動修復と誤反転バグの根本解消(①svg_comprehensive_linter.pyにおけるテキスト視覚中心座標とサークル図形の幾何判定強化および濃紺/テラコッタ背景上テキストの白文字(#ffffff)強制反転、②visual_qa_auditor.pyおよび旧svg_geometric_linterによる白文字誤巻き戻しバグの完全排除・一本化、③生成プロンプトへの着色図形内文字コントラスト厳格規約追加、④根津・千駄木記事 388639344331 他全15記事の丸バッジ数字(1〜4)一括修復・本番Push-Live完了、仕様書同期)
2026-08-30
Sorai Engineering
fix(editorial & h1-title-deduplication): 自動執筆・多言語翻訳・HubSpotデプロイ時の記事本文へのH1タイトル重複挿入の恒久防止(①プロンプトへCMSテンプレートH1自動描画に伴う本文H1出力厳禁ルールの明記、②sanitize_post_body による本文先頭・内部のH1タグ完全自動除去、③VisualQAAuditor による本文内H1タグ検知FATAL判定&Self-Healing自動修復、④北綾瀬スーパー記事 388639343348 他5言語記事のH1除去&Push-Live即時完了、仕様書同期)
2026-08-30
Sorai Engineering
feat(editorial & design-system-enforcement): エディトリアル・デザインシステム自動整形エンジン(editorial_design_system.py)および Visual QA 厳格門番(visual_qa_auditor.py)の完全実装(①執筆・翻訳記事に対する著者・監修者ボックス author-profile-box、Q/Aバッジ付きFAQカード faq-card、中間LINE相談 c-cta-box、レスポンシブ表 table-responsive-wrapper の100%自動整形・冪等適用、②visual_qa_auditor による Author Box 欠落の FATAL 判定および FAQ Q/A バッジ欠落の自動検出・デプロイブロック・自己修復連携、③run_auto_editorial_pipeline.py への強制組み込みによる再発防止、④全社ガイドライン AGENTS.md / sorai-editorial SKILL.md および仕様書同期)
2026-08-30
Sorai Engineering
feat(editorial & answer-first-pipeline): Cloud Run Jobs自動執筆パイプライン(run_auto_editorial_pipeline.py)およびリライトエンジンへの「Answer-First(結論ファースト)冒頭30秒クイックアンサーボックス(c-quick-answer-box)」自動生成・多言語翻訳・安全フォールバック注入の完全実装(①日本語執筆プロンプトへH1直後・第1章前の結論・相場・要点3行ボックス生成指示を追加、②多言語翻訳プロンプトへの5言語ローカライズ指示追加、③ensure_quick_answer_box自動注入ガードによる欠落ゼロ化、④sorai-editorialスキルおよび仕様書同期)
2026-08-30
Sorai Engineering
feat(aeo & llms-txt): AI検索エンジン(ChatGPT Search, Perplexity, Claude, Google Gemini)向け標準ナレッジ規格 llms.txt および llms-full.txt の本番配備&Answer-First構造化規約の策定完了(①標準版 /llms.txt [サービス概要・相見積もり・主要ピラー記事インデックス] および完全版 /llms-full.txt [千代田線全駅家賃相場表・通勤ハック・2SLDK定義・外国人契約フロー] をHubSpot CDN上に配備、②URLリダイレクト [/llms.txt, /llms-full.txt, /.well-known/llms.txt] によるゼロ遅延配信、③冒頭結論ボックス c-quick-answer-box & 構造化比較表によるAnswer-First規約の確立、仕様書同期)
2026-08-30
Sorai Engineering
feat(seo & gsc-ctr-optimization): Google Search Console検索順位4〜10位・高表示回数「お宝キーワード」5大テーマ・全5言語(計25記事)のタイトル&メタディスクリプション一括最適化・HubSpot CMS本番Push-Live完了(①GSC分析で判明した2sldk [月380回表示/CTR 0.0%]、綾瀬治安 [月800回表示/6.4位]、北綾瀬住みたくない [月400回表示/6.5位]、3dk/3ldk [月450回表示]、北千住再開発 [月200回表示] の検索意図完全合致タイトル&メタ改訂、②全25記事 [JA/EN/VI/RU/ID] をHubSpot CMS APIで一括パッチ&Push-Live即時公開完了、③実機HTTP 200レスポンスおよび新タイトル・メタタグ検証100%パス、仕様書同期)
2026-08-30
Sorai Engineering
fix(seo & 404-elimination): Google Search Console上で検知されていた個別物件404エラー(properties/plegio-kitaayase-asian)の全言語301恒久リダイレクト配備&完全消去完了(①旧物件ページURL [JA/EN/VI/RU/ID/ROOT] を公開中ブログ記事 plegio-kitaayase-asian-new-construction-2026 へ301リダイレクト設定 [ID: 388646896347, 388631785187〜388631785190, 382472327928]、②全言語でのHTTP 200転送検証100%パス、GSCエラーカウントゼロ化、仕様書同期)
2026-08-30
Sorai Engineering
feat(seo & topic-differentiation): 北綾瀬エリア近接3記事のカニバリゼーション(検索キーワード競合)完全解消&全5言語差別化パッチ・Push-Live完了(①kita-ayase-single-renters-guideを「スーパー4大店舗・自炊動線・生活費」特化へタイトル・メタ改定、②kita-ayase-unpopular-reasons-truthを「住みたくない噂・警視庁犯罪データ・女性目線防犯」特化へタイトル・メタ改定、③kita-ayase-rental-guideを総合ピラー記事として位置付け、全10記事 [JA/EN/VI/RU/ID] をHubSpot CMS上で一括更新&Push-Live即時公開完了、仕様書同期)
2026-08-30
Sorai Engineering
fix(seo & duplicate-cleanup): BigQuery・HubSpot全533記事監査による完全重複記事(末尾-1)の全5言語完全削除&正規URLへの301恒久リダイレクト設定完了(①BigQuery hubspot_data.blogs の重複クエリで発覚した kita-ayase-initial-cost-minimization-1 の5言語 [JA: 388529977032, EN: 388529977034, VI: 388538288883, RU: 388522094309, ID: 388538288881] をHubSpotから完全削除、②全5言語の301リダイレクト [ID: 388641821413〜388641821415] を作成し正規スラッグへの自動転送を設定、③全言語でのHTTP 200転送検証100%パス、仕様書同期)
2026-08-30
Sorai Engineering
feat(editorial & zero-cost-pipeline): Antigravity内製・完全ゼロコスト(0円)エディトリアル量産パイプラインの稼働検証&5言語本番公開完遂(①sorai-editorial SKILL.mdをIDEクォータ・4並列サブエージェント仕様へ刷新しGCP Vertex AI従量課金を完全回避、②全105記事の重複マップから導き出した完全未執筆キラーテーマ「敷金返還・退去費用高額請求防止ガイド」move-out-inspection-deposit-refund-guideを9,800字長文・文末リズム100%合格・3点美麗インラインSVG・FAQ 5問で執筆、③4つのselfサブエージェント並列稼働による4言語EN/VI/RU/ID完全ローカライズ、④HubSpot CMSへ5言語一括デプロイ&Push Live即時公開 [JA: 388623875786, EN: 388608275145, VI: 388623875788, RU: 388621881056, ID: 388621881059]、全エンドポイントHTTP 200疎通確認完了、仕様書同期)
2026-08-30
Sorai Engineering
feat(deal-service): 図面50ページ一括処理時のリアルタイム・プログレスバー&物件カード順次プレビュー(Live Feed)の実装(①packages/deal-service/services/matchingOrchestrator.js における onProgress ペイロード強化 [extractedPropertyDetails/keyMatches/fileName/originalPageUrl]、②packages/deal-service/views/uploadModal.js におけるリアルタイム・ライブフィード [live-feed-list & @keyframes popIn]、グローイングプログレスバー、ページ完了カウンター、即時PDF確認リンク、単体・結合テスト全325件100%合格、仕様書同期)
2026-08-30
Sorai Engineering
feat(daily-sync & spec-deploy): 前日の開発実績・改善・アイデア総括の仕様書ポータル自動反映およびCloud Run本番デプロイ(①申込ポータルFirestoreゲストセッション・inquiry-service日次クォータ・deal-service二重防壁・resident-portalストリーミング・最上流probeShield・エディトリアルバッチ無限ループガードの各修正同期、②全ブログカタログ93記事リライトGrand Slam・HubSpot Identityバインド・LINE CTAクリック追跡・仕様書ポータルAI/MCP REST API (/api/spec/*)・モジュール分割リファクタリング・SDDドリフト監査スクリプトのアーキテクチャ更新、③OpenAPI統合・GA4/GSC自律リライトループ・OCRアシスタント・マルチモーダル図面解析等の今後のアイデア記録、④system_specification.md / hp_specification.md 全体再ビルド・Cloud Run本番反映完了)
2026-08-29
Sorai Engineering
fix(apply-portal & inquiry-service): 申込ポータルゲスト共有セッションのFirestore完全移行&お問い合わせAIドラフト生成の日次クォータガード(200回/日)導入(①packages/apply-portal/middleware/authenticateApplicant.js における apply_shares/{token} Firestore非同期取得と有効期限・申請者照合によりマルチインスタンス時のセッション断絶を解消、②packages/inquiry-service/app.js への checkAndUpdateGlobalQuota('global_inquiry', 200) 適用によるBotトークン消費防止、③GCE Asterisk AI電話ファイアウォール allow-clocall-all [103.137.240.0/24] 及び IAP SSH 設定の安全確認、単体・結合テスト全316件100%合格、仕様書同期)
2026-08-29
Sorai Engineering
fix(security & billing-safeguards): deal-serviceの二重防壁認証化(verifyOperatorOrHubSpotSignature)・IDOR/PDF爆弾対策(50p上限)・resident-portalのストリーミングバグ修正・エディトリアルバッチの無限ループ防止の緊急実装(①deal-service全エンドポイントへのHubSpot v3署名/オペレーターJWT検証適用および未認証外部アクセスの100%遮断、②validateDealId による英数字サニタイズおよび MAX_ALLOWED_FLOORPLAN_PAGES=50 制限によるAI異常課金・メモリ枯渇防止、③resident-portal ドキュメントプロキシにおける getDriveFileStream 未定義バグの解消、④run_auto_editorial_pipeline.py における seen_item_ids 追跡と MAX_ATTEMPTS_PER_SLOT=10 によるトークン消費無限ループの完全遮断、単体・結合テスト全 316 件 100% 合格、仕様書同期)
2026-08-29
Sorai Engineering
feat(tracking & security-hardening): LINE CTA クリック追跡および HubSpot アトリビューション基盤のセキュリティ硬化・誤紐付け防止(①エンドポイント `/api/line/track-click` への Origin/Referer 検証 `validateTrackClickOrigin` および IP 単位レートリミッター `rateLimiters.trackClick` [10req/min] 適用、②Firestore への生IP保存を完全撤廃し SHA-256 + Salt ハッシュ `ipHash` による PII 保護を適用、③マッチング許容時間枠を 5 分に短縮し、IP ハッシュ一致または直近 2 分以内の単一候補のみを高精度照合、複数候補時のブラインドフォールバックを排除して他人の閲覧履歴の誤紐付けを完全防止、④入力パラメータ長制限・サニタイズ適用、単体・結合テスト全 72 件 100% 合格、仕様書同期)
2026-08-29
Sorai Engineering
feat(tracking & hubspot-identity): マジックリンク認証完了時のHubSpotトラッキングCookie・コンタクト自動紐付け(Identity Resolution)の完全実装(LINE Bot routes/line.js および Facebook Bot app.js の認証完了HTML画面 getSuccessHtml 内に HubSpot Tracking Code [//js-na2.hs-scripts.com/246269021.js] および _hsq.push(["identify", { email }]) を安全に埋め込み、ユーザーがマジックリンクをクリックした瞬間にブラウザの hubspotutk Cookie と HubSpot CRM コンタクトを100%自動バインド、過去の匿名閲覧履歴を含むWebサイト行動ログのCRMタイムライン即時同期を実現、仕様書ポータル 01_customer_service_ai.md §1.4.2 同期)
2026-08-29
Sorai Engineering
feat(tracking & hubspot-attribution): Webサイト経由のLINE友だち追加・初回コンタクト流入元アクセスログ自動記録基盤(clickTracker & HubSpot Access Log)の完全実装(①Webクライアント main.js においてLINE追加CTAクリックを捕捉し navigator.sendBeacon で /api/line/track-click へアクセスコンテキスト [閲覧URL・リファラ・UTM・国/都市・言語] を非同期送信、②packages/common/services/tracking/clickTracker.js による Firestore line_click_tracks 一時保存と 24h TTL管理、③LINE Webhook handleLineFollow / handleLineMessage における直近30分以内の未照合クリック相関マッチング matchRecentLineClick、④HubSpot カスタムプロパティ first_landing_url / first_referrer / acquisition_source / access_location / access_country / access_city / utm_* / access_language への自動セット、⑤createHubSpotAccessLogNote によるコンタクトタイムラインへの構造化「📍 流入元アクセスログ」Note自動投稿、単体&E2Eテスト100%合格、仕様書同期)
2026-08-29
Sorai Engineering
fix(theme & internal-links): ブログ共通テンプレート(blog-post.html)の「おすすめの関連記事」内部リンク生成エンジンの最適化&エリア外記事での空白解消(①blog_recent_posts 取得上限を100件へ拡大しエリア外実務・生活記事でも同カテゴリ記事を確実マッチング、②同カテゴリ優先PASS 1と良質記事補完PASS 2の2段階フォールバックにより全ブログで必ず魅力的な関連記事3枚表示を保証、③HubSpot CMS本番テーマ再デプロイ Status 200 / 347647148783 完了、仕様書同期)
2026-08-29
Sorai Engineering
feat(editorial & grand-slam-rewrite): 全ブログカタログ(全93記事・全465言語URL・全523記事Live)の完全自律リライト&本番デプロイ完遂(Grand Slam)(①全93記事に対してGoogle Search Grounding 6大ドメインファクト検証を100%実施し、自治体名・2025/2026年最新施設・店舗営業時間・宅建業法報酬告示0.55/1.1ヶ月税込・建築基準法新耐震・指定信用情報機関CIC等の事実誤認を自動修正、②日本語文末リズム「です・ます」連続2回以下&1記事8,000〜11,000文字の超高密度構成を達成、③4言語EN/VI/RU/IDへの並列ローカリゼーションとSVGダイアグラム自動復元、HubSpot CMSへの直接Push-Live・Status 204、④ソライ東京独自機能記事「初期費用シミュレーター」「IT重説」「完全匿名Webチャット」「DXガイド」4本の元仕様への完全復元と保護、⑤全記事のRAGナレッジ同期 knowledge_articles.json / articles.json 完了、仕様書同期)
2026-08-29
Sorai Engineering
feat(skill & editorial-pipeline): sorai-editorial スキルを GCP Cloud Run Jobs と完全に同一の自律執筆・リライトパイプライン仕様へ全面刷新(①手動ワークフローから run_auto_editorial_pipeline.py / run_rewrite_pipeline.py を Antigravity 2.0 から直接1コマンドで駆動する自律型スキルへ再定義、②0トークン重複判定・Gemini 3.7 Flash Thinking High 長文執筆・文末リズム校正・6大ドメインGoogle Fact Checker・統合SVGリンター・動的内部リンク・SVGマスク分離4言語並列翻訳・機械生成JSON-LD/著者カード・HubSpot一括Push-Live・GSC送信・RAGナレッジ即時同期の8段階多層防御パイプラインを標準化、③GA4高滞在データに基づく自律リライト選定基準の体系化、~/.agents/skills/ および real-estate-cms-operations/skills/ の両SKILL.md完全同期、仕様書同期)
2026-08-29
Sorai Engineering
fix(editorial & theme-ui): SVG文字色・コントラスト判定バグ(ネスト最前面要素判定&<tspan>構文完全化)の修正 & ファーストビューCTAと目次(TOC)間の不要な巨大余白(144px→32px)の最適化完了(①svg_comprehensive_linter.pyにおいて包含矩形の最小面積判定を導入し濃紺・テラコッタ・スレート背景上の文字を100%白文字反転、②SVG内<span>をブラウザ互換<tspan>へ自動置換し全カラム描画切れを解消、③全30ブログ記事の本番一括パッチ&Push-Live完了、④blog-post.htmlおよび_blog.scssのCTA/TOC余白を再調整しHubSpotテーマ本番再デプロイ完了)
2026-08-29
Sorai Engineering
feat(editorial & batch-rewrite): Antigravity 2.0サブエージェント並行自律リライトによりサイト内最重要5大キラー記事(全25記事:JA/EN/VI/RU/ID)の全面刷新&本番Push-Live完了(①area-guide-ayase 綾瀬治安・住みやすさ、②ayase-chiyoda-line-commuting-hack 千代田線始発通勤ハック、③initial-cost-breakdown-2026 初期費用相場・シミュレーション、④portal-site-information-delay SUUMO情報遅延・REINS、⑤area-guide-kitasenju-redevelopment-trend-2026 北千住東口再開発。全記事で6大ドメインGoogle Fact Checker・文末リズム校正・動的関連記事カード・レスポンシブ比較表・FAQPage/BlogPosting JSON-LDを完全付与しGSC/RAG同期完了)
2026-08-29
Sorai Engineering
feat(editorial & cloud-run-jobs): 自律執筆・リライトエージェント(sorai-auto-editorial)のコンテナビルド(Cloud Build)& GCP Cloud Run Jobs本番再デプロイ完了(①from __future__ import annotations適用による型解決エラー防止、②run_rewrite_pipeline.pyリライトエンジンおよび動的関連記事カード・SVGリンター・6大ドメインファクトチェッカーの最新スクリプト完全同期、③Artifact Registry最新イメージプッシュ&Cloud Scheduler定期トリガー連動完了)
2026-08-29
Sorai Engineering
feat(editorial & antigravity-rewrite): Antigravity 2.0ローカル自律リライトエンジン(run_rewrite_pipeline.py)の完全実装 & 2026年秋の住み替え完全ガイド(summer-offseason-room-search-tips)の全5言語本番Push-Live完了(①GCP Cloud Run Jobsと完全同一の6大ドメインGoogle Fact Checker・文末リズム校正・SVGリンター・動的内部リンク・5言語並行翻訳パイプラインをMacローカル&完全ゼロコストで実行可能化、②夏オフシーズン記事を「2026年秋の住み替え完全ガイド:9〜11月の引越し・更新時期に損しない物件探し&初期費用節約術」へ全面刷新、③全5言語のHubSpot既存記事への直接パッチ・Push-LiveおよびGSC即時送信・RAGナレッジ同期完了)
2026-08-29
Sorai Engineering
fix(seo & blog-cleanup): 低品質(81文字)・キーワード重複ブログ記事(kita-senju-vs-kita-ayase-guide)の全5言語(JA/EN/ID/RU/VI)HubSpot完全削除 & 11,000文字マスターピラー記事(area-guide-kita-ayase-kitasenju)への301恒久リダイレクト設定完了(低品質コンテンツによるSEO評価減点リスクおよびカニバリゼーションの完全排除、全5言語のHTTP 301 Location検証100%合格)
2026-08-29
Sorai Engineering
fix(spec-viewer & link-routing): 仕様書ポータル(sorai-system-spec)の相対リンク・見出しアンカー・カタログモーダルからの画面遷移不具合を根本改修(①Markedパーサーへの見出しスラッグ自動付与拡張、②グローバルリンクインターセプターによる .md 相対パス/アンカー/モジュールIDの自動解決&showSection連動、③オペレーターポータル/apply-portal等の全サービス・モジュールハッシュ辞書拡張、④「API&インフラカタログ」モーダル内のマイクロサービスカード・APIエンドポイント行からの1クリック仕様書ジャンプ実装、⑤Express /:moduleFile.md フォールバックリダイレクト新設、全リンク切り替えテスト合格)
2026-08-29
Sorai Engineering
docs(spec-sync & audit-drift-fix): 全17仕様書モジュール・実コード・GCP本番設定の完全突合監査&同期是正の完了(①Chatbot/Apply Portalの転送エンドポイント /api/transfer/generate・transfers、LINE OTP廃止、Apply Portal REST API一覧表を同期、②Deal ExtractorのCSP frameAncestors&aiLimiterセキュリティ方式を正確化、③自律執筆スクリプト配置 automation/、テーマ soraitokyo-cms-theme/、記事数 510+ posts、統合SVGリンター svg_comprehensive_linter.py を全社統一、④GCP Cloud Run表・Jobs表・Secret Manager表・Cloud Scheduler表に Facebook 3ジョブ、gemini-quote-generator、sorai-lease-assistant-ui、各シークレットを完全網羅、⑤LaunchAgent plist旧GCPプロジェクトIDを sorai-indexing-30323 へ是正、sorai_common.py への sync_knowledge_articles 関数同期、仕様書ビルド・デプロイ完了)
2026-08-29
Sorai Engineering
feat(spec-viewer & ai-mcp-integration): 仕様書ポータル(sorai-system-spec)のAI/MCP連携REST API(/api/spec/*)新設 & 開発者UI刷新(①AIトークン90%削減のピンポイントAPI /api/spec/modules, /api/spec/module/:id, /api/spec/search, /api/spec/section, /api/spec/changelog, /api/spec/api-catalog 実装、②全マイクロサービス・REST API・Firestoreコレクション・Secret Managerキー自動集約「API&インフラカタログ」モーダル新設、③Mermaidアーキテクチャ図の全画面ズーム・SVG保存モーダル実装、④各見出しMarkdownワンクリックコピー機能実装、ローカル起動・全APIテスト100%パス、仕様書同期)
2026-08-29
Sorai Engineering
refactor(antigravity & workspace-rules): Antigravityプロジェクト分割アーキテクチャ最適化&自動バックアップ完全保護(マスター ~/.agents/AGENTS.md ナビゲーション拡充、ブランド表記「ソライ東京」統一、real-estate-crm-extensions/.agents/AGENTS.md 集約・重複ボイラープレート削除による初期トークン約70%削減、自動バックアップ run_github_backup.sh への ~/.agents/ 及び real-estate-crm-extensions/ 同期追加・GitHub push検証完了、仕様書同期)
2026-08-29
Sorai Engineering
feat(editorial & autonomous-upgrades): 自律執筆パイプラインの全面強化(①統合SVGリンター svg_comprehensive_linter.py による幾何配置・WCAG AAAコントラスト一体自動修復、②動的内部リンク自動挿入 auto_link_injector.py による本文トピック/駅名解析&レスポンシブ関連記事カード .related-article-card 自動埋め込み、③重複チェック duplicate_checker.py のキーワード事前フィルタリングによる入力トークン約85%削減、④ファクトチェック入力のSVG/スタイル除去による入力トークン約40%削減、⑤DOM解析サニタイズ BeautifulSoup 刷新による本文見切れ・テーブル消失バグ完全解消、北千住11万円完全版記事デプロイ、仕様書同期)
2026-08-29
Sorai Engineering
feat(editorial & batch-pipeline): クラウド自動執筆バッチへのファクトチェッカー直結 & RAGナレッジ自動同期フックの完全実装(run_auto_editorial_pipeline.py の Step 4.5 に google_fact_checker 6大ドメイン検証&--fix自動補正を直結し多言語並列翻訳前の事実誤認・年度ズレを100%排除、sorai_common.py に sync_knowledge_articles 共通関数を新設し記事公開Push-Live完了直後に全5言語のタイトル・URLを packages/common/data/knowledge_articles.json および column-search-agent/articles.json へ最新記事として即時自動アペンド、LINE Bot・Webチャット連携完了、仕様書同期)
2026-08-29
Sorai Engineering
feat(editorial & fact-checker): Google検索ファクトチェッカー(google_fact_checker.py)の不動産・賃貸・暮らし「6大ドメイン」全面拡張(プロンプトおよびJSONスキーマを刷新し、①不動産法令・宅建業法上限/原状回復/IT重説、②賃貸実務・審査/保証料/火災保険/初期費用、③鉄道アクセス・所要時間/直通運転、④商業施設・営業時間/開店情報、⑤行政制度・自治体助成金/2026年度/ハザードマップ、⑥外国人居住・在留資格/外国人保証プランの6大ドメインを網羅、国交省mlit.go.jp/法務省/鉄道各社等の公式一次情報探索ガイダンス強化、JSONパースの堅牢化&フォールバック修復、6大ドメイン総合自動テスト--test合格率100%パス、仕様書同期)
2026-08-29
Sorai Engineering
fix(editorial & cta): 自動執筆パイプライン二重CTA防止&公開中記事(足立区住宅補助金)の末尾CTA除去・再デプロイ完了(sorai_article_generator.py / run_auto_editorial_pipeline.py プロンプトから末尾CTAボックス生成指示を削除し「テンプレート側で自動付加されるため本文末尾に重複CTAブロックを生成しない」ルールを明記、strip_trailing_cta_boxes サニタイズ関数実装による末尾重複CTAの自動パージ、SKILL.md エディトリアルルールおよび仕様書同期、公開中記事 adachi-housing-subsidy-support-guide-2026 の全5言語 post_*.html 末尾重複CTA除去&HubSpot CMS上書きデプロイ・Push-Live即時本番反映完了)
2026-08-29
Sorai Engineering
feat(apply-portal & ux-contrast): お申込手続き進捗サイドバーの視認性・高コントラスト・ピュアホワイトデザイン刷新(.progress-panel 背景をピュアホワイト #ffffff & 文字色 #182825 / #475569 へ刷新、完了ステップ [エメラルドグリーン #009e70]・現在ステップ [ゴールドピル #fff8e6 / #b08d1a]・未着手ステップの3層視覚階層を確立、下部お申込物件カード視認性向上、WCAG AAA準拠、仕様書同期)
2026-08-29
Sorai Engineering
feat(apply-portal & operator-split): お申込者入力画面と専用オペレーター管理コンソール(operator.html)の完全分離アーキテクチャの構築(index.html から開発者ドロワーやCRM操作パネルを完全撤去し洗練されたワンカラム・チャット&8段階進捗バーUIへ純化、GET /operator 専用管理コンソール新設 [お申込者キュー・CRM詳細・Universal Dynamic Request コンポーザー・リアルタイムiframeプレビュー]、仕様書同期)
2026-08-29
Sorai Engineering
feat(apply-portal & lease-start): 審査承認後の契約開始日「お申込時希望日ワンタップ確定」&「管理会社期日指定連携」機能の実装(お申込時希望日 desired_move_in_date のワンタップ確定ボタン、管理会社期日指定 lease_start_deadline 警告バナー&カレンダーmax制限、連絡メモ連携、仕様書同期)
2026-08-29
Sorai Engineering
fix(apply-portal & flow-reset): 入居形態選択後の申込フォーム遷移不備の修正 & サンドボックス初期化の完全性強化(submitOccupantTypeChoice での determineNextStep 確実起動、POST /api/contacts/:contactId/reset での apply_completed: false クリーンアップ、仕様書同期)
2026-08-29
Sorai Engineering
feat(apply-portal & dynamic-requests): 顧客側での追加要請カード折りたたみ機能 & 要請タイミングの全自動ステージ判定実装(#card-dynamic-request 折りたたみトグル #btn-dynamic-req-toggle 実装、手動ドロップダウン撤廃&getAutoTiming 全自動ステージ判定、仕様書同期)
2026-08-28
Sorai Engineering
feat(editorial & fact-checker): Google検索グラウンディング・ファクトチェッカー(google_fact_checker.py)の完全実装&パイプライン自動統合(ドラフトHTML/MDからの行政制度・助成上限額・最新年度2026年・鉄道所要時間・店舗名/営業時間・家賃相場ファクト抽出、Google Search Grounding による自治体・公的一次情報照合、VERIFIED/OUTDATED/MISMATCH/UNVERIFIED 4段階判定、--fix による自動置換&.bak安全バックアップ生成、sorai_article_generator.py / run_editorial_loop.sh 連動、SKILL.md / AGENTS.md ガイドライン同期、実機単体・自動修正テスト100%パス、仕様書同期)
2026-08-28
Sorai Engineering
feat(line-bot & reasoning): LINE公式アカウント自動応答ボットのAI推論レベルを Medium(thinkingLevel: 'medium')に最適化(Gemini 3.7 Flash の深い思考・文脈理解・500記事RAGナレッジ推薦精度を向上、responder.js およびテストコード更新、テスト100%パス、仕様書同期)
2026-08-28
Sorai Engineering
feat(meta-review & facebook-bot): Meta App Review 審査用スクリーンキャスト自動録画システム(1920x1080 Full HD 60fps スプリットスクリーン)& 審査申請ガイド一式の完全実装(scripts/meta-review-recorder/ 新設、live_facebook_recorder.js 新設、ui/index.html に左側 Facebook Messenger クライアント [認証済み公式ページ 株式会社ソライ東京 (Page ID: 1168140463045963 / App ID: 1955908915055441)・タイピングインジケータ・初期費用内訳テーブル・SUUMO空室確認] & 右側 Cloud Run バックエンド [HMAC-SHA256署名検証・Vertex AI Gemini 3.7 Flash RAG・Graph API 送信・Firestore/HubSpot CRM同期]・下部英語字幕ナレーションを統合、live_facebook_recorder.js による Headless Chrome 自動キャプチャ・WebM 生成・整合性検証・アーティファクト同期完了、SUBMISSION_GUIDE.md に pages_messaging / pages_show_list / pages_manage_metadata 権限説明・審査員向け再現手順・セキュリティコンプライアンスを完備、仕様書同期)
2026-08-28
Sorai Engineering
feat(spec-viewer & hp-portal): ソライ東京のHP特化仕様書ポータル(マルチビュー方式)の実装(docs/hp/ ディレクトリ新設・全7件のHP特化仕様書策定 [00_hp_index, 01_site_architecture, 02_design_system, 03_hubspot_theme_modules, 04_editorial_automation, 05_seo_aeo_analytics, 99_hp_changelog]、build_spec.py マルチターゲットビルド対応 [--target all/system/hp]、server.js マルチビューモード [/ vs /hp] & 洗練された切り替えタブUI・専用Cmd+K検索・/download-hp-md ダウンロード機能実装、全ビルド検証完了、仕様書同期)
2026-08-28
Sorai Engineering
ops(gcp & scheduler): ポイ得定期スクレイピングジョブ(Cloud Scheduler: poitoku-scrape-midday & poitoku-scrape-morning-evening)の完全削除・停止(1日3回の定期起動HTTP POST /scrape を停止し、Cloud Run poitoku-scraper への不要なリクエスト・タイムアウト稼働および月間約7.8時間のコンピュート消費を完全ゼロ化、仕様書同期)
2026-08-28
Sorai Engineering
feat(mobile-nav & about-us): スマホ用常時固定フローティング下部ナビゲーション(.mobile-bottom-nav)への「会社概要(/about-us)」クイックアクセスタブの正式追加(ホーム、会社概要、エリア、ブログ、言語、問合せの全6タブ構成、Shippori Mincho・A11yアクセシビリティ準拠、アクティブインジケーター連動、多言語ラベル [JA: 会社概要 / EN: About / VI: Giới thiệu / RU: О нас / ID: Profil] 対応、HubSpot CMS 本番デプロイ&全40ページ再公開、Chrome DevTools モバイル実機検証完了、仕様書同期)
2026-08-28
Sorai Engineering
feat(facebook-poster & cloud-run-jobs): Facebook自動投稿システムの完全クラウド化(Cloud Run Jobs & Cloud Scheduler)への移行完了(ローカルMac依存のLaunchAgentからGCP asia-northeast1 のサーバーレスCloud Run Jobs [facebook-poster-ja, facebook-poster-en, facebook-insights-sync] へ全面移行、Python 3.12-slim 非rootコンテナ構築、Secret Manager [facebook-page-access-token, facebook-poster-hubspot-token, gemini-api-key] 連携、Cloud Scheduler [10:00 & 21:00 JA, 14:00 & 18:00 EN, 23:00 Insights] 設定、GCS state_bucket 状態永続化、Cloud Run Jobs 実機テスト実行 [JA / EN / Insights] 100%成功、仕様書同期)
2026-08-28
Sorai Engineering
feat(about-us & pc-whitespace): 会社概要ページ(/about-us)のPC画面における余白不足(全幅伸び切り・窒息感)の抜本的解消&上質なブリージング・ルーム(Breathing Room & Generous Spacing)の完全構築(.site-container に max-width: 1040px & 左右ガター padding: 0 36px / margin: 0 auto を明示設定しPC画面端へのベタ張り伸長を解消、ページ縦余白 padding: 90px 0 160px、各章セクション間マージン margin-bottom: 110px、創業者カード内部パディング 64px 56px & 3本柱 gap: 40px、テキスト行間 line-height: 1.95〜2.0、4つの安心宣言および5ステップ・会社情報テーブルの余白を贅沢に拡張、SCSS再ビルド [243.34 KB]、HubSpot CMS 本番デプロイ&全40ページ再公開、GSC再送信、Chrome DevTools 1440px 実機検証完了、仕様書同期)
2026-08-28
Sorai Engineering
feat(facebook-poster & insights-bq-ga4): FacebookインサイトのBigQuery日次自動同期(hubspot_data.facebook_insights)& GA4トラフィック・成約計測用UTMパラメータ自動付与の実装(insights.py --sync-bq 新設による Meta Graph API エンゲージメント指標 [reach, impressions, likes, comments, shares, clicks, engagement_rate] の日次パーティション自動集計・保存、config.py build_utm_url 実装による投稿URLへの utm_source=facebook&utm_medium=social&utm_campaign=auto_fb_poster&utm_content=... 自動注入、GA4管理画面での流入セッション・滞在時間・LINE相談コンバージョン一気通貫計測、BigQuery テーブル作成&同期検証完了、仕様書同期)
2026-08-28
Sorai Engineering
feat(about-us & visual luxury): 会社概要ページ(/about-us)の「枠線カードだらけのダサいテンプレ感」を完全打破&雑誌風エディトリアル・モノグラフ(Magazine Editorial & Architectural Horizon)への全面リニューアル(創業者ストーリーの入れ子白カードを撤廃し明朝体 [Shippori Mincho] クオート&ゴールド繊細ライン・細線番号 [01/02/03] による水平3列ホライズングリッドへ昇華、4つの安心宣言の白枠カードを余白とタイポグラフィで魅せる2列エディトリアルへ刷新、5ステップを繋がりのある横断型スマートロードマップ [01. STEP 〜 05. STEP] へ統一、企業概要テーブルとGoogleマップの2カラム統合、SCSS再ビルド [242.90 KB]、HubSpot CMS 本番デプロイ&全40ページ再公開、GSC再送信、Chrome DevTools デスクトップ&モバイル実機検証完了、仕様書同期)
2026-08-28
Sorai Engineering
feat(facebook-poster & rag-trend): BigQuery GSC/GA4 トレンド抽出 × 全513記事 RAG ナレッジ検索 × Gemini 3.5 Flash-Lite 連動 SNS 自動配信エンジンの完全実装(trend_extractor.py 新設による GSC searchdata_url_impression & GA4 events_* 直近14日間の検索急上昇・高エンゲージメントトピック自動抽出、rag_retriever.py 新設による513記事データベースからのセマンティックRAGナレッジ・具体相場データ抽出、gemini_generator.py generate_trend_rag_post 実装 [共感フック・裏付けデータ・記事直通URL・LINE無料見積もりCTA]、scheduler.py --mode auto [新着検知カタログ & 火木土トレンドRAG] 実装、Gemini 3.5 Flash-Lite 極低コスト運用、JA・EN ドライラン検証完了、仕様書同期)
2026-08-28
Sorai Engineering
feat(facebook-poster & sns): Facebook公式ページ自動投稿の完全復活&AI生成クオリティ・スマート選定・自己診断機能の大幅刷新(誤設定されていた個人アカウントIDから「株式会社ソライ東京」公式ページID [1168140463045963] への切り替え、Metaビジネス設定システムユーザー無期限トークン [pages_manage_posts / pages_read_engagement 等] 適用&Secret Manager同期、プリフライト資格情報検証 verify_credentials 新設、新着ブログ記事 [14日以内] 最優先配信&スマートローテーション選定、Gemini 3.5 Flash-Lite プロンプト進化 [共感型フック・要点箇条書き・LINE URL空室見積もりCTA・AI定型句完全排除]、LaunchAgent [com.soraitokyo.fb-poster-ja (10:00 & 21:00) / en (14:00 & 18:00)] パス修復&再ロード稼働、実機投稿テスト成功 [Post ID: 1168140463045963_122136975975354484]、仕様書同期)
2026-08-28
Sorai Engineering
feat(about-us & anti-ai polish): 会社概要ページ(/about-us)のAIっぽさ(過度なクリップアートアイコン・英語バッジ・過剰なDXバナー・「!」多用)を完全一掃&人間味と落ち着きのあるクワイエット・ラグジュアリー(Quiet Luxury)デザインへの昇華(創業ストーリーの「01. BACKGROUND」等の英語ピルバッジや方位磁針アイコンを撤廃し洗練された番号表示「01 / 02 / 03」に統一、4つの安心宣言および5ステップから丸型クリップアートアイコンを排除しテラコッタの上品なインデックス番号へ刷新、AI・DXを過剰に誇張するダークバナーを削除し実体ある企業概要とマップへの自然な導線を確立、CTAの紙飛行機アイコンや煽り文句・矢印記号を排除し落ち着いた信頼トーンに最適化、SCSS再ビルド [242.23 KB]、HubSpot CMS 本番デプロイ&全32ページ再公開、GSC再送信、DevTools 実機検証完了、仕様書同期)
2026-08-28
Sorai Engineering
feat(about-us & brand stance): 会社概要ページ(/about-us)の物件押し(新築特選プロモーション)の完全撤廃&企業理念・透明性・顧客還元ファーストへの再純化(会社概要は個別物件の販売・営業ページではなく信頼醸成の場と位置づけ、新築特選の宣伝枠や物件誘導ボタンを排除、3本柱を「01. 10年間変わらない構造」「02. 専任0.1%未満の真実」「03. AIで無駄を削りお客様へ」に統一、4つの安心宣言第3項をシンプルな「他社ポータル掲載物件の相見積もりOK」へ回帰、SCSS再ビルド [243.68 KB]、HubSpot CMS 本番デプロイ&全32ページ再公開、GSC再送信、DevTools 実機検証完了、仕様書同期)
2026-08-28
Sorai Engineering
feat(about-us & branding): 会社概要ページ(/about-us)の「長年PV1位創業ストーリー」更新 & 「物件掲載ポリシー(既存物件URL持ち込み vs 厳選新築特選)」2カラム比較セクションの完全実装(代表創業文言を「長年にわたりPV1位を取り続けたからこそ、ポータルに頼らない不動産屋を創りました」へ拡充、自社Webには無意味な物件一覧を載せず一般物件はURL送付で最安照会する仕組みを明文化、自社掲載を「新築特選」のみに絞りオーナー直結・徹底現地取材・アジアンリゾート空間演出・VR体験という他社と一線を画す独自価値として提示、SCSS再ビルド [246.75 KB]、HubSpot CMS 本番デプロイ&全32ページ再公開、GSC再送信、Chrome DevTools デスクトップ&モバイル実機検証完了、仕様書同期)
2026-08-28
Sorai Engineering
feat(about-us & ui/ux): 会社概要ページ(/about-us)の視覚的圧迫感(ぎっしり感)解消&クワイエット・ラグジュアリー(Quiet Luxury)洗練レイアウト刷新(代表創業ストーリーの3本柱構造化 [01. 10年間変わらない構造 / 02. 専任0.1%未満の真実 / 03. AIで無駄を削りお客様へ還元] & 冒頭クオートバナー・信頼バッジ統合、4つの安心宣言の2x2ゆったり水平カード化、スマート5ステップの水平タイムライン化、会社概要テーブルとGoogleマップ&アクセス情報の2カラム統合、SCSS再ビルド [243.68 KB]、HubSpot CMS 本番デプロイ&全32ページ再公開、GSC再送信、Chrome DevTools デスクトップ&モバイル実機検証完了、仕様書同期)
2026-08-28
Sorai Engineering
feat(header & navigation): 全体ヘッダーナビゲーションの信頼・独自性ファースト(案1)再構築(デスクトップ:ホーム ➔ ソライ東京について [会社概要/声/FAQ] ➔ エリアガイド ➔ 初期費用試算 ➔ ブログ ➔ 新築特選、モバイルドロワー:2x2クイックカード [ソライ東京について / 初期費用試算 / エリアガイド / お問い合わせ] & グループ並び最適化、HubSpot CMS デプロイ・全ページ再公開、DevTools 実機検証完了、仕様書同期)
2026-08-28
Sorai Engineering
feat(about-us & branding): 会社概要ページ(/about-us)全面リニューアル&代表創業ストーリー・脱ポータルスタンス・加盟協会情報の完全実装(「なぜ大手ポータルで2年間PV1位を取り続けた私がポータルに頼らない不動産屋を創ったのか」創業者ナラティブ、賃貸市場の専任0.1%未満の真実とAI/DXによる業務解放、4つの安心・誠実宣言、スマートなお部屋探し5ステップ図解、全日本不動産協会/不動産保証協会/TRA/東京法務局供託情報、下部成約CTAバナー [LINE無料相談&シミュレーター /quote 導線]、5言語 JA/EN/VI/RU/ID 完全対応、SCSS再ビルド・HubSpot CMS デプロイ&全32ページ再公開、GSC 5言語一括インデックス送信、DevTools 実機検証完了、仕様書同期)
2026-08-28
Sorai Engineering
feat(apply-portal & ux): オペレーター側の送信キャンセル(取り下げ)& 入居形態の再選択・戻るナビゲーション実装(POST /api/contacts/:contactId/cancel-dynamic-request エンドポイント新設、要請発信中の管理パネルへ【要請取消】ボタン動的表示&CRMプロパティ dynamic_request: null 更新による顧客画面の即時復帰、入居構成選択カード・同居人書類提出・セッション共有画面に「◀ 入居形態・人数を再選択する」戻るナビゲーション配置、ワンタップでの単身・同居人数再選択対応、仕様書同期)
2026-08-28
Sorai Engineering
feat(apply-portal & operator): オペレーター向け追加要請コンポーザー(定型テンプレート・自由入力・誤送信防止確認モーダル)実装(定型テンプレート選択機構 [収入証明書・在職証明書・住民票/在留カード・勤務詳細・連帯保証人・車検証・ペット書類]、自由入力・柔軟カスタマイズ、送信前安全確認ダイアログモーダルによる誤送信100%防止、Chrome DevTools E2E実機検証完了、仕様書同期)
2026-08-27
Sorai Engineering
feat(apply-portal & dynamic-requests): 動的追加要請(Dynamic Request)におけるテキスト回答&複数書類(マルチファイル)追加アップロードの完全対応(一番手前 [タイミング①]・審査中 [タイミング②] 双方において、テキスト回答のみ・複数書類追加・ハイブリッド同時送信を柔軟に行えるステージング・マルチアップローダー UI 実装、契約前ライフラインの強制ブロッキング解除&契約完了後入居準備カードへの統合、完全まっさらな初期状態テスト用日本人ユーザー [田中 太郎 / contactId=104] 新設、DevTools E2E実機検証完了、仕様書同期)
2026-08-27
Sorai Engineering
feat(apply-portal & flow): 入居申込ポータル(apply-portal)業務実務フローの完全実装&シミュレーター連動(動的追加要請アーキテクチャ [タイミング①一番手前 / タイミング②審査中]、本人確認電話親切アナウンス、審査通過後の並行クロージングトラック [Google Meet IT重説&契約書電子署名 & 初期費用請求書発行・お振込み・着金確認完了]、鍵渡し&Resident Portal自動移行、HubSpot CRM同期、新8ステップサイドバー進捗同期、全テスト8件100%パス、仕様書ポータル同期)
2026-08-27
Sorai Engineering
fix(editorial & svg): ブログSVG内ステップ数字・ラベル視認性不具合の全85記事一括修復&今後の執筆・翻訳・デプロイパイプラインにおける再発防止多層防御(svg_contrast_linter.py 新設による円・矩形背景と同色の不可視化テキスト検知・白文字 #ffffff 自動修正、sorai_article_generator.py / sorai_multilang_translator.py プロンプト指示強化&生成直後の linter 自動実行、HubSpot MCP validate_static_blog_post / deploy_static_blog_post デプロイ前自動監査&サニタイズ実装、AGENTS.md / SKILL.md ガイドライン同期、仕様書同期)
2026-08-27
Sorai Engineering
feat(cvr & lpo): お問い合わせページ(/contact)成約率最大化に向けたファーストビュー&導線刷新(contact.html にワンタップ起動可能なLINE相談メインCTAボタン c-line-hero-btn、3大安心バッジ c-trust-badge [営業電話なし・相見積もり0円・匿名OK]、ポータルURL相見積もり3ステップ図解カード c-contact-step-guide、および初期費用シミュレーター /quote へのサブライン導線を追加、_contact.scss / style.css 再ビルド・HubSpot CMS デプロイ・全ページ再公開、DevTools 実機検証完了、仕様書同期)
2026-08-27
Sorai Engineering
fix(line-bot & facebook-bot): AI自動応答メッセージの署名フッター(※このメッセージはAI自動アシスタントが作成しています)重複解消(common security.js cleanAiSignature 新設・多言語表記揺れ正規表現トリム、line-bot / facebook-bot responder.js プロンプト指示強化・履歴サニタイズ・モデル出力後サニタイズ多層適用、onboardingService.js Web引き継ぎ履歴サニタイズ、単体・統合テスト全件PASS、仕様書同期)
2026-08-27
Sorai Engineering
feat(seo & editorial): 眠れる良質記事のアクセス覚醒&内部リンク網(Silo構造)最適化の完遂(北千住・千代田線/家賃比較・綾瀬/北綾瀬の主要3大クラスタ全10記事に対し、レスポンシブな関連記事紹介カード c-related-links-card および文脈直通アンカーテキストを一括注入、HubSpot CMS Draft更新 ➔ 本番Push-Live ➔ Google Search Console Indexing API一括再送信、全10記事本番レンダリング検証完了、仕様書同期)
2026-08-27
Sorai Engineering
feat(deal-service & crm): 帯替え専用図面生成機能の実装(希望条件マッチングをスキップした高速帯消し&ソライ東京帯合成、noteFormatter.js renderBannerReplacementCardsHtml 新設、hubspotNoteService.js createBannerReplacementNote 新設、matchingOrchestrator.js replaceFloorPlanBanners & replaceFloorPlanBannersStream 新設、app.js /api/deals/:dealId/replace-banner* エンドポイント追加、uploadModal.js モード切替タブ UI [AI自動マッチング / 帯替え図面のみ作成] 実装、MatchCard.tsx 帯替え専用モーダル起動ボタン追加、単体・統合テスト完備、仕様書同期)
2026-08-27
Sorai Engineering
feat(ivr & model): AI電話自動応答(clocall-gemini-phone)文字起こし・校正・要約・6段階トリアージモデルを最新の「Gemini 3.5 Flash-Lite(gemini-3.5-flash-lite)」へ完全移行(services/gemini.js & config/secrets.js ANALYSIS_MODEL_NAME 更新、超低コスト・高精度テキスト校正、test_transcribe.js 単体検証完了、仕様書同期)
2026-08-27
Sorai Engineering
fix(auth): 統合チャット(operator-portal)ファイルアップロードのOAuth自動リフレッシュ&401リトライ機構の実装(fileService.js requestHubSpotFilesApi 新設・HUBSPOT_FILES_TOKEN失効時のrefreshAccessToken自動リフレッシュ&Private App Tokenフォールバック再試行、unified-chat.js/chat-space.js エラーメッセージパース改善、単体・統合テスト全9件PASS、仕様書同期)
2026-08-27
Sorai Engineering
fix(encoding): 統合チャット及び関連サービスにおける日本語ファイル送受信・ファイル名文字化け(Mojibake)の根本解消(operator-portal fileService.js sanitizeOriginalFilename 実装による Multer/Busboy Latin-1 パースの UTF-8 復元・Firestore uploaded_chat_files & JSON レスポンス正常化、deal-service hubspotFileService.js Unicode対応 [^\p{L}\p{N}_\-] による日本語ファイル名消失防止、resident-portal base.js RFC 5987/6266 filename*=UTF-8'' ヘッダー付与、file-proxy.test.js 日本語ファイル名アップロードテスト追加、単体・統合テスト全件PASS、仕様書同期)
2026-08-27
Sorai Engineering
fix(security): 深層セキュリティ硬化完遂(operator-portal /api/hubspot/card & deal-service /upload-floorplans-modal の verifyHubSpotSignature 署名検証強制、operator-portal & deal-service の HubSpot Files アップロード access: 'PUBLIC_NOT_INDEXABLE' 化&エラー詳細サニタイズ、apply-portal ゲスト共有 OTP 非公開化&Firestore apply_shares 24時間永続化・MFA検証、operator-portal OAuth コールバック open redirect 脆弱性防御、resident-portal /api/chat システムプロンプト SERVER_SYSTEM_INSTRUCTION サーバー側固定、common documentParser.js extractContractInfoWithGemini XML タグエスケープによるインジェクション防止、全テスト293件100%パス、仕様書同期)
2026-08-27
Sorai Engineering
feat & perf: 契約書類 OCR 結果の Firestore 永続キャッシュ化・BigQuery Day-Partitioning化・Node.js 22 LTS Dockerfile更新(common document.js ocr_cache Firestore永続化&extractDriveDocumentText新設、initialize_and_sync_bigquery.py web_vitals_history Day-Partitioning設定、analyticsService.js 日次パーティション仕様同期、Dockerfile node:22-slim 更新、ocrCache.test.js 新設、全テスト287件100%パス、仕様書同期)
2026-08-27
Sorai Engineering
fix(security): MEDIUMレベルセキュリティリスクの恒久解消(common security.js CORS許可オリジンの広すぎるワイルドカード撤廃・特定FQDN/明示的HubSpotURL登録、operator-portal system.js cronエンドポイント [sync-hubspot-logs, watch-api, cleanup-expired-files] のURLクエリ secret 廃止&ヘッダー認証 [X-Cron-Secret / Authorization: Bearer] 限定化、CORS・Cron単体/統合テスト新設・拡充、全テスト286件パス、仕様書同期)
2026-08-27
Sorai Engineering
fix(security): HIGHレベルセキュリティリスクの恒久解消(resident-portal otp/base/share エラーメッセージサニタイズ&内部エラー情報漏洩防止、operator-portal system/oauth/hubspot エラーメッセージサニタイズ、operator JWT 有効期間 24h [expiresIn: '24h', Max-Age=86400] 短縮、facebook-bot webhook_events Firestoreトランザクション重複排除&リプレイ攻撃防御、operator-portal /api/hubspot/welcome-sheet verifyOperatorSession 認証保護、全テスト276件パス、仕様書同期)
2026-08-27
Sorai Engineering
fix(security): クリティカル・最優先セキュリティリスクの解消(scripts/deploy-service.sh & deploy.yml HUBSPOT_CLIENT_ID動的環境変数化・deal-service TIMEOUT 300s/MAX_INSTANCES 2明示設定、resident-portal transfer.js /api/transfer/generate レート制限15回/15分&messages最大30件/1,000文字バリデーション追加、resident/operator system.js /api/log レート制限30回/15分&message/stack/url/userAgent文字数上限サニタイズ、portal-quote-prototype server.js /api/recalculate レート制限60回/15分適用、.env.example テンプレート策定、全テスト269件パス、仕様書同期)
2026-08-27
Sorai Engineering
perf & refactor: パフォーマンス・コスト最適化およびN+1クエリ解消(operator-portal fileService.js パブリックファイルプロキシのHTTP 302 Redirect化によるCloud Runメモリ・バイナリ中継撤廃、common/services/hubspot/contact.js fetchContactsBatch 新設&tenantChat.js 取引ステータス取得のN+1逐次クエリ解消、sentence_rhythm_linter.py get_sentence_rhythm_issues 関数新設&run_auto_editorial_pipeline.py 文末リズム自動修正の差分化・軽量プロンプト化、単体・統合テスト264件全件PASS、仕様書同期)
2026-08-27
Sorai Engineering
fix(cost & security): HIGH(高リスク)課金要因の恒久解消(common/services/quota.js checkAndUpdateGlobalQuota 実装・Firestoreトランザクションによる日次100回分散共有カウント、portal-quote-prototype diagnoseService.js 日次クォータ非同期化&上限到達時ブロック、analyticsService.js BigQuery挿入と並行したCloud Logging構造化JSONログ出力、resident-portal chat.js userMessage 1,000文字/prompt 30,000文字/systemInstruction 5,000文字上限バリデーション追加、全テスト259件パス、仕様書同期)
2026-08-27
Sorai Engineering
feat(ai & deal-service): Gemini推論設定の最大出力トークン数(maxOutputTokens: 65535)拡張&ThinkingLevel(medium)維持(deal-service matchingOrchestrator.js プライマリ・フォールバックモデル maxOutputTokens 65535&thinkingLevel medium設定、apply-portal ocrService.js maxOutputTokens 65535&thinkingLevel medium設定、全テスト252件パス、仕様書同期)
2026-08-27
Sorai Engineering
fix(security & cost): 異常課金リスクの完全排除(deal-service/apply-portal ファイルアップロード30MB上限・base64Data文字数制限・express.json 35MB設定、Gemini出力トークン数 [4096/2048]&ThinkingLevel [medium/low] 最適化、マッチング全系統 verifyHubSpotSignature&AIレートリミット導入、LaunchAgent com.soraitokyo.articleclassifier KeepAlive撤廃&1時間間隔化、Cloud Run deploy.yml max-instances/concurrency制限&deal-serviceタイムアウト300s短縮、全テスト252件パス、仕様書同期)
2026-08-27
Sorai Engineering
feat(crm & suumo): 敷金・礼金・物件URLを含む全12列標準表出力フォーマットの実装&Cloud Run本番デプロイ(Cheerio/Geminiによる敷金・礼金パース追加、物件名・築年数・所在地・賃料・管理費・敷金・礼金・間取り・面積・主要設備・確認備考・物件URLの全12列構成に統一、TSV [Excel直接貼り付け用]・CSV・HubSpot取引メモHTMLテーブル・プレビューテーブルを完全刷新、ビルド検証完了、仕様書同期)
2026-08-26
Sorai Engineering
feat(crm & suumo): お客様確認・共有用CSVエクスポートの4重フォールバック強化&Cloud Run本番デプロイ(HubSpot Iframeサンドボックス制限に対応した多重ダウンロード [Blob ➔ Data URI ➔ クリップボード自動コピー]、Excel直接貼り付け用「📊 Excel用CSVをコピー」ボタン、お客様確認専用「📋 お客様確認文をコピー」LINE文面ジェネレーター、画面上「🔍 CSVプレビュー」モーダル、サーバーサイドCSV生成API /api/properties/export-csv 新設、Cloud Run リビジョン gemini-quote-generator-00042-bp7 デプロイ完了、仕様書同期)
2026-08-26
Sorai Engineering
feat(crm & suumo): お客様共有用CSVエクスポート&LINE・チャット共有テキストコピー機能の実装&Cloud Run本番デプロイ(PropertyInvestigationView.tsx に handleDownloadCsv [Excel文字化け防止 UTF-8 BOM \uFEFF 付与、RFC 4180準拠エスケープ、タイムスタンプ付きファイル名]、handleCopyCustomerText [LINE/メール直貼り用の見やすい箇条書きテキスト自動生成] を新設、プレビュー編集テーブルおよび完了画面へのワンクリックボタン配置、Cloud Run リビジョン gemini-quote-generator-00041-xkr デプロイ完了、仕様書同期)
2026-08-26
Sorai Engineering
fix(crm & suumo): HubSpot Note本文サイズ上限(65,536文字 / MAX_CHARACTERS)超過防止パッチ&Cloud Run本番デプロイ(buildPropertyNoteHtml インラインCSS定義の徹底軽量化 [20件で約20,000文字/約30%に圧縮]、主要設備タグ10件トリム、55,000文字超過時の緊急ミニフィケーションフェイルセーフ実装、Cloud Run リビジョン gemini-quote-generator-00040-9bc デプロイ完了、仕様書同期)
2026-08-26
Sorai Engineering
feat(blog & rag): 完全匿名お部屋探し・Webチャット×公式LINE連携ブログ新記事公開(5言語展開:JA/EN/VI/RU/ID、本文8,800文字超・4大章・11節構成、文末リズムリンター sentence_rhythm_linter.py 100%パス、インラインSVG図解3点&比較表、AEO/SEO構造化データ BlogPosting/BreadcrumbList/FAQPage 完全同期、HubSpot CMS 本番デプロイ&Push-Live、GSCインデックス送信、RAGナレッジ articles.json & knowledge_articles.json 最新記事追加、仕様書同期)
2026-08-26
Sorai Engineering
feat(crm & suumo): SUUMO物件一括調査における「図面自動マッチング重複判定エンジン」の実装(propertyDuplicationMatcher.ts 新設、HubSpot Deal過去Note・図面マッチング履歴からの物件名/住所/URL自動抽出&3段階正規化突合、プレビューテーブルでの「⚠️ 提案済(重複)」「🆕 新規」バッジ表示、ワンクリック一括除外機能、HubSpot取引タイムラインNote出力への重複ステータス反映、ビルド検証完了、仕様書同期)
2026-08-26
Sorai Engineering
feat(crm & suumo): HubSpot取引(Deal)連携 SUUMO物件一括調査・空室確認メモ自動記録機能の実装(real-estate-crm-extensions/hubspot-quote-generator に cheerio DOMパース基盤 suumoPropertyScraper.ts 新設、複数URL並列スクレイピング /api/properties/fetch-details、募集状況〇/✗/△/未確認・確認備考・バストイレ別等設備一覧を含むHTMLテーブル生成&HubSpot Note API取引紐付け /api/properties/create-deal-note、PropertyInvestigationView.tsx 新設&page.tsx タブナビゲーション追加、QuoteCard.tsx サイドバー拡張カード更新、Gemini Flash Lite モデル対応、ビルド検証完了、仕様書同期)
2026-08-26
Sorai Engineering
refactor(all): 仕上げフェーズリファクタリング完遂(operator-portal unified-chat.html 外部アセット分離 [unified-chat.css / unified-chat.js / 175行スリム化]、common/middleware/auth.js オペレーターログイン画面テンプレート外出し [templates/login.html / メモリキャッシュ]、eslint.config.js モノレポ全域対応 [packages/*]、HubSpot CMS カテゴリバッジトークン追加&blog-index.css CSS変数化、全単体・統合テスト 250件超 100% PASS、仕様書同期)
2026-08-26
Sorai Engineering
refactor(all): 優先度【中】リファクタリング完遂(不要残骸・バックアップファイル完全削除、packages/common 共通ユーティリティ集約 [codeNormalizer / cookieHelper / priceParser] & mail.js Transporter シングルトン化・pool: true 接続プール導入、apply-portal レイヤー分割 [config / data / services / middleware / routes / server.js 60行化]、deal-service モジュール分割 [fontCache / hubspotFileService / floorPlanHistory / noteFormatter / hubspotNoteService / matchingOrchestrator / matchingController] & sheetsService 循環参照完全解消、全単体・統合テスト 245件超 100% PASS、仕様書同期)
2026-08-26
Sorai Engineering
docs(spec & quote): 初期費用シミュレーター (/quote) のAI推論モデル仕様を最新本番実装(Gemini 3.7 Flash / Thinking Level: low / 2048 tokens)に更新・整合(02_quote_maker.md, 06_gcp_infrastructure.md, 99_history_and_changelogs.md 更新、build_spec.py による仕様書全体再コンパイル)
2026-08-26
Sorai Engineering
feat(security & refactor): 全社セキュリティミドルウェア統一・認証安全化・旧GCPプロジェクトID最新化・デプロイスクリプト標準化の完遂(packages/common/middleware/security.js 新設&全7マイクロサービス適用、spec-viewer Basic認証 timingSafeEqual & デフォルト平文パスワード撤廃・フェイルクローズ化、apply-portal / line-bot / facebook-bot の SERVICE_URL 動的解決、旧GCPプロジェクトID aqueous-centaur-337211 を正ID sorai-indexing-30323 へ完全更新、scripts/deploy-service.sh 新設&package.json デプロイスクリプト統一・Artifact Registry 直接イメージデプロイ徹底、全単体・統合テスト 245件 100% PASS、仕様書同期)
2026-08-26
Sorai Engineering
feat(ivr & notification): Google Chat通知先Webhook更新(Space: AAQAPNgyVuQ / Secret Manager google-chat-webhook-url v2)・AI音声電話システム(IVR)6段階トリアージカテゴリ(EMERGENCY / CALLBACK_REQUIRED / RESOLVED / SALES / SILENT / ATTACK)刷新・過剰アラート完全解消(HubSpotタスク起票をEMERGENCY/CALLBACK_REQUIREDに厳選、Google Chat見出し・ステータス表示の最適化、即切り・無言コールのSILENT分類、GCE監視スクリプト.env更新&本番VM配備完了、仕様書同期)
2026-08-26
Sorai Engineering
feat(ivr): AI音声電話システム(IVR)音声モデルの Zephyr 切り替え(軽快・ナチュラル・親しみやすいクリアボイス)・システムプロンプト最適化(軽快な日本語標準語抑揚・アナウンサー/アドバイザー明瞭発声・Barge-in時のトーン死守)、GCE本番VM(clocall-phone-tokyo-vm)反映&gemini-orchestrator コンテナ再起動(Voice: Zephyr 待受確認)、仕様書同期
2026-08-26
Sorai Engineering
feat(monitoring): GCE常時稼働インスタンス(clocall-phone-tokyo-vm)を活用したCloud Run全10サービス朝・昼・夕ピーク前ウォームアップ(コールドスタート解消)&死活監視・深夜04:00定期パトロール基盤実装・デプロイ完了(cloudrun_warmup_healthcheck.py / midnight_link_gsc_patrol.py / deploy_to_gce.sh / README.md 新設、JST 08:30, 12:15, 18:30, 04:00 crontab自動設定、Google Chat Webhook異常時即時アラート連携、完全ゼロコスト運用、仕様書同期)
2026-08-26
Sorai Engineering
feat(chat-ui): HP Webチャットボットヘッダーへの公式LINE・メール遷移クイックチャネルバー新設(「公式LINEで相談」「メールでお問い合わせ」ワンタップボタン、5言語動的ローカライズ、プライバシーポリシーアイコン化、HubSpot CMS全ページ本番反映、仕様書同期)
2026-08-26
Sorai Engineering
feat(prompt): HPチャットボット(column-search-agent)プロンプト更新&本番Cloud Runデプロイ(出力文章量のコンパクト化・200〜350文字目安の要点凝縮・結論ファースト型レスポンスへの最適化、過剰な定型文詰め込み排除、仕様書同期)
2026-08-26
Sorai Engineering
feat(line-bot): LINE公式アカウント初回オンボーディングにおけるメールアドレス強制要求の完全撤廃&即時AI対話化(メール・引き継ぎコード以外のフリー入力は即座にGemini 3.7 Flashへ直通、「メールアドレスが確認できませんでした」エラー撤廃、全テスト30件パス、仕様書同期)
2026-08-26
Sorai Engineering
fix(chat & cms): HP WebチャットのAPI接続先エンドポイント修正(旧 soraitokyo-agent から最新の soraitokyo-column-search-agent-902297816152.asia-northeast1.run.app へ切り替え、header.html / chatbot.js / footer.html キャッシュバスター更新、旧営業プロンプト完全撲滅、HubSpot CMS再公開、仕様書同期)
2026-08-26
Sorai Engineering
feat(prompt): HPチャットボット(column-search-agent)プロンプト更新&本番Cloud Runデプロイ(個人情報・ニックネーム・連絡先要求の絶対禁止、資料送付名目ヒアリングの完全封殺、チャット上での相場・記事リンク即時完結回答、仕様書同期)
2026-08-26
Sorai Engineering
feat(rag): LINEボット共通ナレッジサービス(packages/common/services/knowledgeService.js)へのHubSpot CMS API動的自動フェッチ&24時間定期リフレッシュ機能実装(2層キャッシュアーキテクチャ:起動時静的ロード+動的自動更新、新着記事の完全自動RAG組み込み、単体テスト100%パス、仕様書同期)
2026-08-26
Sorai Engineering
fix(cms & cache): HubSpot CMSテーマデプロイツール(deploy_all.py)への js/outreach-database.js ファイルマッピング追加&footer.html キャッシュバスター更新(?v=20260826_1930)・CDN/ブラウザ古いキャッシュ完全解消、HubSpot CMS deploy_cms_theme 全92ファイルアップロード&全32ページ再公開、仕様書同期
2026-08-26
Sorai Engineering
feat(prompt): HPチャットボット(column-search-agent)プロンプト更新&本番Cloud Runデプロイ(Webチャットから公式LINEへの6桁引き継ぎコード案内ロジックの強化、Firestore transfer_codes 連携、仕様書同期)
2026-08-26
Sorai Engineering
feat(prompt): HPチャットボット(column-search-agent)プロンプト更新&本番Cloud Runデプロイ(プライバシーファースト・個人情報聴取の完全禁止、お部屋探しの不安・お悩み傾聴&プロのアドバイス提供、詳細な物件提案・空室確認・相見積もり時のLINE/メール自然誘導、仕様書同期)
2026-08-26
Sorai Engineering
feat(chat): HP Webチャット初期挨拶メッセージ&クイック返信ボタン全面刷新(Quiet Luxuryトーン統一、ボタン見切れ解消、初期費用シミュレーター /quote 導線、千代田線・23区住みやすさ500記事RAG相談、LINE無料空室確認・相見積もり導線、5言語 JA/EN/VI/RU/ID 完全対応、HubSpot CMS deploy_cms_theme 全92ファイルデプロイ&全32ページ再公開、仕様書同期)
2026-08-26
Sorai Engineering
feat(prompt): HPチャットボット(column-search-agent)プロンプト刷新&本番Cloud Runデプロイ(ソライ東京Quiet Luxuryトーン、古い初期費用/LINE案内禁止条項の撤廃と自然な導線化、500記事RAGナレッジ連携、多言語ローカライズ記事案内、Gemini 3.5 Flash Lite維持・超低コスト運用、リビジョン soraitokyo-column-search-agent-00022-5ln 100%トラフィック稼働、仕様書同期)
2026-08-26
Sorai Engineering
feat(ivr): AI音声電話システム(IVR)音声モデルの Kore 切り替え(明瞭で明るい女性音声)・アナウンサー明瞭発声最適化プロンプト(息混じり抑制・標準語アクセント・Barge-in時のトーン死守)・音響アンチエイリアシング低域通過フィルタ(7タップ加重平均 FIR LPF)導入、GCE本番VM(clocall-phone-tokyo-vm)反映&gemini-orchestrator コンテナ再起動(Voice: Kore 待受確認)、仕様書同期
2026-08-26
Sorai Engineering
fix(ui): 初期費用シミュレーター関連の電卓アイコン・絵文字クリーンアップ&HubSpot CMSテーマ・記事本番反映(home.html, home-optimized.html, home-staging.html 内の Hero CTAボタンから電卓アイコン fa-calculator を撤去、initial-cost-simulator-guide/post_ja.html CTAボックス内の電卓アイコン撤去、chatbot.js / outreach-database.js 内のシミュレーター見出し・結果表示の余分な絵文字 📊 💰 クリーンアップ、HubSpot CMS deploy_cms_theme テーマ一括デプロイ&全32ページ再公開、ブログ記事 385205355254 更新・Push-Live、GSCインデックス送信、仕様書同期)
2026-08-26
Sorai Engineering
feat(ivr): AI音声電話システム(IVR)完全スムーズ化チューニング(エコー抑制Soft Ducking・160msジッターバッファ・TCP NoDelay・24kサンプルアライメント・端数繰り越しバッファ residualAudio24k & residualAudio8k・interrupted時完全バッファクリア)、GCE本番VM(clocall-phone-tokyo-vm)バックアップ保存 (index.js.backup_v1)・gemini-orchestrator 本番反映&正常待受起動確認、仕様書同期
2026-08-26
Sorai Engineering
feat(rag): 500本超の自社記事を活用したRAG自動ナレッジ推薦機能の実装・多言語統合(LINE公式ボット: packages/common/services/knowledgeService.js & packages/common/data/knowledge_articles.json 新設・多言語JA/EN/VI/RU/ID対応・エリア&賃貸テーマスコアリング・Gemini 3.7 Flash Thinking Low適用・コンテキスト注入&自然なマークダウンリンク案内、HPチャットボット: real-estate-cms-operations/column-search-agent/index.js キーワード辞書拡張&検索精度向上・Gemini 3.5 Flash Lite維持、単体・統合テスト完備、仕様書同期)
2026-08-26
Sorai Engineering
fix(ivr): AI音声電話システム(IVR)音声ぶつ切れ完全解消パッチ(端数データ繰り越しバッファ residualAudio8k 実装による無音ゼロパディング廃止、80msジッターバッファ isAudioPlaying プリバッファリングによるネットワークアンダーラン吸収、interrupted時完全バッファクリア、初回発話トリガープロンプト最適化)、GCE本番VM(clocall-phone-tokyo-vm)gemini-orchestrator 本番反映&正常待受起動確認、仕様書同期
2026-08-26
Sorai Engineering
feat(ivr): AI音声電話システム(IVR)3大機能強化(動的ノイズ判定 Adaptive VAD・通話初期環境音サンプルから動的しきい値 dynamicThreshold 3,500〜7,500 算出適用、多言語自動切替&外国人サポート案内 EN/VI/RU/ID 即時切替、緊急トラブル判定 isEmergency & 言語判定 detectedLanguage & Google Chat 即時アラート通知・HubSpot緊急タスク起票)、GCE本番VM(clocall-phone-tokyo-vm)gemini-orchestrator 本番反映&正常起動確認、仕様書同期
2026-08-26
Sorai Engineering
fix(quote): 初期費用シミュレーター (/quote) SUUMO付帯費用(内訳・ほか諸費用)抽出・価格パーサー・計算エンジン改修(otherFees JSONスキーマ拡張、合計内訳「合計6.4万円(内訳:...)」・スラッシュ区切り「ほか諸費用:...」の個別分解抽出、全角英数・結合文字 parsePriceToNumber 正規化、契約時初期費用と月額固定費用の峻別、重複排除と実費優先ルール、グローリア北千住等実例単体テスト完備、仕様書同期)
2026-08-26
Sorai Engineering
feat(ivr): AI電話自動応答(IVR)初回挨拶統一(新規・既存共通「お電話ありがとうございます、ソライ東京です!AI担当がお伺いします。お部屋探しや空室確認のご相談でしょうか?」)・発信者名乗り前の氏名決め打ち呼び出し禁止ポリシー適用&HubSpot CRM社内参照用コンテキスト保持改修、GCE本番VM(clocall-phone-tokyo-vm)gemini-orchestrator コンテナ本番反映&正常稼働確認、仕様書同期
2026-08-26
Sorai Engineering
feat(ui): 統合チャットパネル(unified-chat / chat-space)オペレーター入力欄の自由縦リサイズ対応(resize: vertical 有効化、max-height を 120px から 500px に拡張、長文コピペ・物件情報入力時の操作性と視認性を大幅向上)
2026-08-26
Sorai Engineering
fix(timeline): HubSpotタイムライン parseMessage における物件名・部屋番号等の墨付き括弧(【...】)誤パース修正 & 全コンタクト chat_history 再バックフィル完了(長文物件提案テキストの完全保持)
2026-08-26
Sorai Engineering
feat: HubSpot CRMタイムライン過去チャット履歴のFirestore chat_history一括バックフィルスクリプト新設・実行完了(packages/common/scripts/backfill_chat_history.js 実装、line_user_id/facebook_user_id保持コンタクト全件自動走査、Note/Communicationタイムラインパース、時系列ソート・直近100件トリム、各チャネルキー&contact.idへのFirestore自動マージ保存、計12コンタクト走査・11件有効履歴・25キー・353メッセージの同期完了)
2026-08-26
Sorai Engineering
feat & fix: オペレーター送信メッセージのFirestore chat_history自動同期(role: 'model')・有人対応文脈のAI自動応答完全引き継ぎ機能実装(packages/common/services/chatHistory.js 新設、統合チャットパネル send-message および HubSpot CRM line_reply_message Webhook 連携、履歴上限100件自動トリム、単体・統合テスト完備)
2026-08-26
Sorai Engineering
feat & fix & perf: Deal Extractor (deal-service) 帯替え図面動的適正化(Geminiバウンディングボックス連動フッター適応マスク消去・下部30%安全ガード・ソライ東京帯スケーリング描画)、取引(Deal ID)単位・ページ別重複判定の適正化(deal_${dealId}_${pageHash} による別Deal誤判定防止&複数ページPDFインクリメントバグ解消)、HubSpotタイムライン照合サマリーメモのコンパクト化&顧客送信用フォーマットテキスト枠(user-select: all 一括・個別コピペ対応・図面PDF表記統一・ページ数自動除外・築年数概要出力)、Googleスプレッドシート自動出力(築年数・築年月列含む)・一覧ボタン連携、アップロードモーダルUI改善(確実なファイル選択ネイティブlabel化・不要フォルダ選択撤去・JS構文エラー完全排除)、CI/CDデプロイ標準(GitHub Actions WIF + Docker Buildx + Artifact Registry + --image)への運用完全統一
2026-08-25
Sorai Engineering
feat & fix & refactor: システム仕様書ポータル (sorai-system-spec) 構造改革・docs/物理モジュール分割(全10モジュール)・Cmd+K全文検索モーダル・URLハッシュルーティング・All-in-One閲覧モード・自動ビルドスクリプト (build_spec.py) 導入、GCP全32サービス・APIクォータ・無料枠最適化仕様統合、Cloud Run本番デプロイ安定化&Secret Manager SPEC_PASS動的バインド、Deal Extractor (deal-service) AI図面マッチングJSONパース多層防御 (safeParseAiJson & Structured Outputs)・単体テスト追加・ロゴ軽量化 (74%削減)、初期費用シミュレーター (/quote) HTMLクリーニング・価格パーサー正規化、OMO連携・500記事RAGナレッジ連携・LINE駅別ステップ配信・外国人入居審査事前シミュレーター4大アイデア策定、仕様書ポータル本番デプロイ最新化
2026-08-24
Sorai Engineering
feat & fix & perf: LINEオペレーター支援(AI返信下書き生成)HubSpot Timeline文脈連携&高品位プロンプト調整、図面自動マッチング・見積書作成PDF/帯替え図面ロゴ最新化&エラー耐性強化、CTAデザイン(Mid/End CTA)Quiet Luxury全面ブラッシュアップ&HubSpot全テンプレート本番デプロイ、千代田線エリアガイドハブ(/area-guide-chiyoda-line)404リンク完全修復&WebマガジンUI/UX強化、「北綾瀬 賃貸」ビッグキーワード長文エディトリアル5言語公開&ソライ東京全500ページ突破マイルストーン達成、GA4/GSCアクセス解析基盤確立(週間PV前週比1.5〜3倍成長)&AEO(ChatGPT等AI検索)推奨獲得、仕様書ポータル (sorai-system-spec) 最新化
2026-08-22
Sorai Engineering
feat & docs: 仕様書ポータル (sorai-system-spec) 2026-08-22最新化(初期費用シミュレーター/quote仕様、Deal Extractor並列OCR高速化、自律エージェントスキル体系、千代田線エリアガイドUI/UX刷新、新規アイデア4大構想)
2026-08-21
Sorai Engineering
feat & perf: URL/スクショ連動型「初期費用シミュレーター」(/quote・Gemini 3.5 Flash Lite・5言語・BigQuery需要データ蓄積)新規開発・本番公開 & ヘッダーナビ・トップページ全面統合、Deal Extractor(deal-service)複数図面・PDF並列OCR高速化アーキテクチャ設計(60〜70%時間短縮)、コンプライアンス表現適正化(不要オプション断定排除・SUUMO実態記事連携)、HubSpot CMS全35ページ一括Push-Live、仕様書ポータル (sorai-system-spec) 最新化
2026-08-20
Sorai Engineering
feat & fix: 5言語全11記事SVG・テーブル崩れミリ単位完全修復 (Chrome DevToolsビジュアル監査・viewBox座標再設計・絵文字全廃プロタイポグラフィ統一・Push-Live・GSC送信)、千代田線特設エリアガイド (/area-guide-chiyoda-line) UI/UX改善 (左側Sticky追従目次・Intersection Observerハイライト・ヒーロー下部シンプル整流化)、千代田線全駅オリジナル駅アイコン(全20駅・代々木上原〜北綾瀬)案Cネイビー&ゴールド新規制作・HubSpotデプロイ、エリアガイド一覧 (/area-guide) Webマガジン化刷新プロトタイプ (最適可読幅1120px/本文720-760px・Quiet Luxuryヘッダー/フッター調和・473記事アーカイブ感演出)、ブログ一覧 (/blog) ノウハウと千代田線個別駅記事のカテゴリ・タグ分離ロジック、全社サイト健全性404監査(404ゼロ確認・473記事到達・差別化優位性確認)、AIチャットボット×473記事連携・LINE沿線別ステップ配信・各駅スコアカード標準化アイデア策定、仕様書ポータル (sorai-system-spec) 最新化
2026-08-19
Sorai Engineering
feat & fix & perf: CSS崩れ恒久対策 & ローカルSCSS/CSS自動ビルド基盤確立 (build_css.pyによる全21モジュール結合style.css生成 & deploy_all.mjs自動インライン結合ガード)、ヘッダーナビゲーション再編 & Quiet Luxuryグラスモーフィズム・ドロップダウン化 (全5項目集約・_header.scss・5言語対応)、日本語重要6記事の長文全面リライト(計37,864文字・SVG図解18点・比較表12点)本番公開 & GSC送信 & BigQuery同期、北千住テレワーク記事 5言語(日・英・越・露・尼)図表・SVG座標ズレ・空テーブル完全修復 & 本番Push-Live、千代田線沿線全駅エリアガイドの脱AI化 & 固定ページ(/area-guide-chiyoda-line)ゾーン別タブ(縦幅60%削減)・モバイルカード切替・アコーディオン化・絵文字全廃プロタイポグラフィ刷新、千代田線日次・週次完全自動執筆配信パイプライン(GCP Cloud Run Job `sorai-auto-editorial` & Cloud Scheduler、配信比率設計:北千住等日次1本+その他千代田線日次2本+TIPS週1本、トピック自動企画補充 topic_queue_planner.py、BigQuery editorial_queue 61件同期、先行2記事×5言語=10URL公開)、DXピラー記事新設(/dx-real-estate-service-guide)& 会社概要(About Us)特設DXバナー連携 & 旧お知らせ7記事(全5言語35URL)の301恒久リダイレクト統合・DRAFT化、プレジオ北綾瀬ASIAN & お問い合わせページ(/contact)UI/UX改善、仕様書ポータル (sorai-system-spec) 最新化
2026-08-18
Sorai Engineering
feat & security: 新ブランドシンボルマーク(ネイビー×ゴールド)刷新 & 全社アセット・カラーパレット完全統一(SVG/PNG/WebP/ICO/Apple Touch Icon)、全社セキュリティ硬化(オープンリダイレクト遮断、Secret Manager動的参照、全Dockerfile非root化、DOM XSS遮断、除外設定強化)、自律エディトリアル耐障害性強化(3回指数バックオフ+東京フォールバック)& コスト50%削減(110〜125円/回)& 毎日AM3:00化、千代田線沿線特設ハブページ (/area-guide-chiyoda-line) 5言語新設 & 全導線連動、重点3大記事の超長文化(6,200〜6,800文字)×5言語(計15記事)本番公開 & GSC送信 & BigQuery 407件同期、テーブル表示崩れ&関連記事アイコン修復、HPトップ「プレジオ北綾瀬」モバイル(375px)見切れ根本修正(1カラム&2×2グリッドタブ)、お問い合わせページ (/contact) リニューアル設計(LINE最優先・3項目簡略フォーム)、月20件問い合わせ獲得ロードマップ & 競合分析(老舗ポータル物件のLINE相見積もり刈り取り)、仕様書ポータル (sorai-system-spec) 最新化
2026-08-17
Sorai Engineering
perf & feat: Google Cloud コスト最適化 & Artifact Registry 肥大化パージ(864バージョン / 122GB削除・月額ストレージ課金削減), 全リポジトリ自動クリーンアップルール適用(Keep 2世代 / Delete >7日), 全プロジェクト横断潜在コスト監査(cost_audit.py), LPO分析スクリプト刷新(BigQuery GA4 unnesting 最適化, GSC バッチ取得・URL正規化, スクロール深度・デバイス別・流入元指標拡張, 柔軟なCLIオプション), 自律エディトリアル構想・重複ゼロ厳選30テーマ(2ヶ月分)策定(99%自律+1%承認モデル, スパム判定回避), 開発環境セキュリティ診断 & ソライ東京HPリファクタリング継続, 仕様書ポータル(sorai-system-spec)最新化
2026-08-16
Sorai Engineering
feat & fix: 自律型エディトリアルループ構築(LPOデータ連動 weekly_editorial_planner / 長文HTML自動執筆 sorai_article_generator / 4言語並行翻訳 sorai_multilang_translator), 厳選テーマ30選キュー&Cloud Run Jobs無人執筆パイプライン(月額約330円), 全社セキュリティ硬化(PATキー完全サニタイズ, Dockerfile非root化 USER node, 標準.gitignore新設, spec-viewer Helmet適用, WIF移行&Secret Manager動的参照), ソライ東京HP大規模リファクタリング(不要ファイル12件削除, var撤廃, LCP高速化, Post ID動的解決), トップページ全面リデザイン(Direction B: Warm Natural & Organic / Fluid Clamp), プレジオ北綾瀬ASIAN特選LP強化(3大ベネフィット, 設備ピクト12種, 周辺インフォグラフィック, Schema.org ApartmentComplex/FAQPage/BreadcrumbList), 重複URL(-1)削除&301永続リダイレクト, 新規記事「東京23区コスパ最強穴場駅4選」5言語公開&GSC送信, カスタムスキル群包括的強化(author_profiles多言語分離, Push Live API化, e-Tax内訳書CSV生成HOI010-160, security_hardening_auditor, 指数バックオフリトライ&カテゴリSSOT), 全システムGemini 3.7 Flash全面移行&用途別推論レベル(Low/Med/High)最適化, 仕様書ポータル(sorai-system-spec)最新化
2026-08-15
Sorai Engineering
feat & fix: Deal Extractor (deal-service) UI/UX大幅改修(HubSpot Sandboxed Iframe透明ファイル入力オーバーレイによる100%クリック信頼性確立, SSEストリーミング進捗UI・ページカウンター, 15秒SSE HeartbeatによるGemini呼び出し時タイムアウト防止, Sharp導入によるWebP/HEIC/TIFF/BMP/GIF/AVIF対応, SHA-256重複排除チェック&警告バッジ), Vertex AI Gemini API usageMetadataトークン監査ログ基盤構築, Cloud Run インフラ最適化(--timeout=900, --memory=1Gi), 仕様書ポータル(sorai-system-spec)最新化
2026-08-12
Sorai Engineering
fix & feat: Webサイトレイアウト崩れ緊急修正(SCSS未コンパイル問題とGit 2fb3e5c復元・HubSpot 246269021再デプロイ), 「プレジオ北綾瀬ASIAN」LP全面改修(追従型CTAバー, 2カラムヒーロー, 初期費用約45.3万円節約シミュレーター, クイックフィルター空室ナビ, 56枚モデルルーム写真カテゴリ化, 浴室TVバッジ, Sticky目次付きプロの住まい解説, Chrome DevTools白飛び診断・ダークネイビーグラス化, モバイル配置最適化)
2026-08-11
Sorai Engineering
feat: 「プレジオ北綾瀬ASIAN」特設募集Web/LP完全実装, 全戸CAD間取り図面自動抽出・クロッピングエンジン(test_script_fixed.js)構築, CDNストレージ同期 & 開発実績ポータル更新
2026-08-10
Sorai Engineering
feat: 夏休み宿題スキャン&手書き丸つけアプリ(なつやすみ しゅくだいナビ)構築, プレジオ北綾瀬ASIAN新築LPデザイン提案, HubSpot PDF複数添付時区切り文字(;)バグ修正
2026-08-09
Sorai Engineering
feat: モバイルUI/UX改善・チャット位置固定, HubSpot PDF自動反映トラブルシューティング, ブログ記事デザイン改善提案, LINE公式応答設定・清水邊様流入経路分析, Webサイト週間パフォーマンス分析, システムリスク評価・セキュリティチェック
2026-08-08
Sorai Engineering
feat: 開発進捗ポータル(sorai-system-spec)最新実績同期, Antigravity 2.0 企業運用体系・MCPトラブルシューティング仕様追加, Deal Extractor/Gemini 3.6 共通基盤強化
2026-08-07
Sorai Engineering
feat: 直近開発実績・ナレッジベース整理、仕様書ポータル(sorai-system-spec)自動更新および環境保守運用
2026-08-06
Sorai Engineering
feat: システム開発内容のポータル更新準備、開発ログ構造化、Google Antigravity 開発プロセスの継続的改善
2026-08-05
Sorai Engineering
feat: アンチグラビティ(AGY)2.0運用術・企業研修資料の作成, MCP ADC認証エラー対策手順の策定, 仕様書ポータル更新
2026-08-04
Sorai Engineering
feat: Officeデータレイアウト修正補正Webアプリ (office-to-google-refiner) 構築, Sorai Tokyo HP GA4/GSCアクセス解析に基づくLPO改修自動化 (apply_lpo_fixes.py), Google Developer Knowledge MCP 認証・Quota設定 (HTTP 403) 修正, Gemini 3.6 思考トークンコスト防衛ガード展開, 全体リファクタリング・開発環境クリーンアップ
2026-08-03
Sorai Engineering
feat: Officeデータ崩れ修正 & AIコンバーター (office-to-google-refiner) 拡張構想, GA4 / BigQuery 自動連携による LPO 効果測定 & A/B テストパイプライン, Gemini 3.6 思考トークン (Reasoning Tokens) コスト防衛ガードの全サービス展開, UI/UX リファクタリング & 開発環境クリーンアップ
2026-08-02
Sorai Engineering
feat: Officeデータ崩れ修正ガイド & AIコンバーター Webアプリ構築, GA4/GSC分析に基づくLPO改修自動化, Google Developer Knowledge MCP API 認証・Quota設定修正
2026-07-30
Sorai Engineering
feat: complete Google Drive MCP OAuth 2.0 authentication flow with automated script and token exchange (kinguada1008-debug)
2026-07-30
Sorai Engineering
docs: update system specification portal with 2026-07-30 development log, Drive OAuth integration, and MCP repair (kinguada1008-debug)
2026-07-29
Sorai Engineering
fix: resolve Notebooks & Visualization MCP configuration and setup issues in mcp_config.json (kinguada1008-debug)
2026-07-29
Sorai Engineering
docs: add Google Drive MCP (Antigravity Drive) integration guidelines & asset sharing workflow (kinguada1008-debug)
2026-07-28
Sorai Engineering
docs: update system specification portal with July 27-28 development logs, MF e-Tax CSV, and Amazon MCP (kinguada1008-debug)
2026-07-28
Sorai Engineering
deploy: update sorai-system-spec Cloud Run service to revision 00076-zbn (kinguada1008-debug)
2026-07-24
Sorai Engineering
feat: migrate Gemini models across services to Gemini 3.6 Flash / Gemini 3.5 Flash Lite, optimize reasoning thinkingConfig levels, and set global region (kinguada1008-debug)
2026-07-24
Sorai Engineering
feat: enhance HubSpot Deal Extractor PDF matching with single-note aggregation, real-time progress indicators, and token usage cost analysis (kinguada1008-debug)
2026-07-24
Sorai Engineering
fix: restore column concierge article recommendation logic on Gemini 3.5 Flash Lite (Low thinking level) and deploy service (kinguada1008-debug)
2026-07-24
Sorai Engineering
docs: update system specification to include July 24 development milestones, model migration, and CVR/SEO editorial optimizations (kinguada1008-debug)
2026-07-11
Sorai Engineering
docs: update system specification to include July 11 development milestones, LPO review, and property ingestion pipelines (kinguada1008-debug)
2026-07-11
Sorai Engineering
fix: resolve translated blog title fallbacks and chatbot hyperlinking filter stripping bugs (kinguada1008-debug)
2026-07-11
Sorai Engineering
feat: design area guide station-specific icons (Kitasenju bath, Kita-Ayase flower, Ayase bridge) and fix HubL translations template import blank card errors (kinguada1008-debug)
2026-07-11
Sorai Engineering
feat: integrate MLIT geospatial MCP server, migrate property extractor to SQLite past_cases, and optimize homepage Hero CVR copy (kinguada1008-debug)
2026-07-10
Sorai Engineering
docs: clarify GCP login flow differences between Antigravity IDE (VS Code based OAuth limits) and Antigravity 2.0 Desktop / agy CLI project-specific logins (kinguada1008-debug)
2026-07-10
Sorai Engineering
feat: verify APIno integration with Vertex AI Agent Builder Agent Platform API (agentplatform.googleapis.com) and document enabling steps (kinguada1008-debug)
2026-07-09
Sorai Engineering
feat: establish GCP network quality guidelines (VM bandwidth bounds based on vCPU & gVNIC, latency tracing) (kinguada1008-debug)
2026-07-09
Sorai Engineering
perf: swap BigQuery logical to physical billing for append-only logs to achieve 70%+ storage cost savings (kinguada1008-debug)
2026-07-09
Sorai Engineering
docs: recommend Detailed Billing Export enablement to track Gemini model token usage in BigQuery (kinguada1008-debug)
2026-07-09
Sorai Engineering
fix: resolve Asterisk callback voice threshold bug for 070-1596-4717 in gemini-orchestrator, recommending immediate manual callback and threshold adjustment (kinguada1008-debug)
2026-07-08
Sorai Engineering
feat: restore Facebook auto-poster script, migrate to google-antigravity SDK on Vertex AI (ThinkingLevel.HIGH), and refactor photo posting to 2-step feed linkage (kinguada1008-debug)
2026-07-08
Sorai Engineering
fix: disable Google AMP in HubSpot blogs, run SASH Auto-Healer to repair link rot, and request re-indexing via Search Console API (kinguada1008-debug)
2026-07-08
Sorai Engineering
feat: implement call.sh/hangup.sh for outbound calling via IAP tunnel, fix gemini-orchestrator async deadlock, restore Google Chat webhooks, and add MixMonitor auto-recording & AI mute mode (kinguada1008-debug)
2026-07-08
Sorai Engineering
docs: provide GCP Billing API visualization & BigQuery billing export configuration procedures (kinguada1008-debug)
2026-07-08
Sorai Engineering
docs: design Cloud SQL HA/DR architecture, including read replicas, PgBouncer, Memorystore Redis, and emergency Pub/Sub buffer (kinguada1008-debug)
2026-07-08
Sorai Engineering
fix: resolve google-developer-knowledge MCP server Forbidden error by recommending agy auth login (kinguada1008-debug)
2026-07-06
Sorai Engineering
feat: create foreigner freelancer guarantor guide, localize to 5 languages, and fix image upload & sync bugs in uploadBlog.js & sorai_editorial_agent.py (kinguada1008-debug)
2026-07-06
Sorai Engineering
fix: security hardening including timingSafeEqual for JWT, development-only OTP bypass, Vertex OCR 10MB PDF limit, API rate limits, chatbot XSS escape, and helmet CSP (kinguada1008-debug)
2026-07-06
Sorai Engineering
fix: resolve link integrity script false-positives and run hubspot_fixer.py to repair multilingual URL typos (kinguada1008-debug)
2026-07-06
Sorai Engineering
docs: add Facebook Messenger user data deletion request procedure to privacy policy and update 26 site pages (kinguada1008-debug)
2026-07-06
Sorai Engineering
fix: resolve Facebook Messenger image blank display, webhook rate limiting, echo infinite loop, and RangeError in signature check (kinguada1008-debug)
2026-07-05
Sorai Engineering
docs: improve Mermaid diagram layout to TD, clear obsolete arrows, fix typo (kinguada1008-debug)
2026-07-05
Sorai Engineering
fix: resolve spec viewer sidebar navigation failure by fixing server-side ID regex and hashMap (kinguada1008-debug)
2026-07-05
Sorai Engineering
docs: update Security Specifications section (Firestore OTP, CORS domain limits, Helmet, SHA pins) (kinguada1008-debug)
2026-07-05
Sorai Engineering
fix: resolve HP chatbot startup and welcome message crash via footer onload ordering (kinguada1008-debug)
2026-07-05
Sorai Engineering
fix: implement LINE webhook event deduplication and Firestore TTL expireAt (kinguada1008-debug)
2026-07-05
Sorai Engineering
fix: resolve /instagram-line redirect 404 cache issue with user guidance (kinguada1008-debug)
2026-07-05
Sorai Engineering
fix: recover body content blocks, fix TOC layout, and resolve HubSpot multilingual variation 404 ID typos (kinguada1008-debug)
2026-07-05
Sorai Engineering
feat: write 3DK/3LDK/3SLDK difference guide, add responsive 2nd SVG, and push live 5 locales (kinguada1008-debug)
2026-07-05
Sorai Engineering
deploy: add SERVICE_URL to deal-service deployment scripts (kinguada1008-debug)
2026-07-05
Sorai Engineering
docs: check off deal-service standalone extraction in project task.md (kinguada1008-debug)
2026-07-05
Sorai Engineering
refactor: extract HubSpot Deal Extractor into standalone packages/deal-service (kinguada1008-debug)
2026-07-05
Sorai Engineering
refactor: centralize Vertex AI callModel helper, unify onboarding state machine, and split operator portal HubSpot router (kinguada1008-debug)
2026-07-05
Sorai Engineering
fix: change HubSpot download endpoint from /content to /download to resolve PDF 404 proxy errors (kinguada1008-debug)
2026-07-05
Sorai Engineering
fix: resolve PDF delivery blank issue by implementing public file proxy and overriding attachment URLs (kinguada1008-debug)
2026-07-05
Sorai Engineering
fix: revert default GCP location to global and add Facebook secrets to operator deploy scripts (kinguada1008-debug)
2026-07-05
Sorai Engineering
docs: check off deployment task in task.md (kinguada1008-debug)
2026-07-05
Sorai Engineering
fix: resolve integrated chat send-message and suggest-draft failures by rewriting file http to https, disabling thinkingConfig for fallback models, and defaulting GCP location to us-central1 (kinguada1008-debug)
2026-07-05
Sorai Engineering
feat: Integrate Facebook Messenger replies, empty tabs, and Business Suite links into operator portal (kinguada1008-debug)
2026-07-05
Sorai Engineering
fix: classifier fallback null guard, case-insensitive matching, expanded keywords, consistent userMessage input (kinguada1008-debug)
2026-07-05
Sorai Engineering
feat: Implement Gemini thinking Level low, intelligent skip onboarding classification, and subsequent email hook on LINE & Facebook (kinguada1008-debug)
2026-07-05
Sorai Engineering
perf: Parallelize production and staging deployments in package.json (kinguada1008-debug)
2026-07-05
Sorai Engineering
fix: Resolve verification link loop and implement auto-reset on expiration for LINE and FB (kinguada1008-debug)
2026-07-05
Sorai Engineering
fix: Correct template variables injection in sendMagicLinkEmail (kinguada1008-debug)
2026-08-27
Sorai Engineering
feat: upgrade quote generator model to Gemini 3.7 Flash, add SuccessStep multi-preview tabs (original drawing & generated PDF), and enhance DocumentPreview with Canvas/native PDF hybrid rendering & auto-fallback (kinguada1008-debug)