Skip to content

Releases: growilabs/growi

v8.0.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 10:42

💎 Features

  • feat(ai): AI agent using Mastra (#10327) @miya
    • Introduces an AI agent built on the Mastra framework.
    • Mastra を基盤とした AI エージェントを導入。
  • feat(ai): Support multiple AI providers and cross-provider model selection (#11394) @miya
    • Admins can now configure OpenAI, Anthropic, Google, and Azure OpenAI simultaneously with per-provider enable/disable, and users can pick models across providers in chat.
    • 管理者が OpenAI / Anthropic / Google / Azure OpenAI を同時に設定・有効/無効切替でき、ユーザーはチャットでプロバイダー横断のモデル選択が可能に。
  • feat(ai): Show official AI provider & model names in the UI (#11432) @miya
    • AI provider and model names in the chat and admin UI now show official display names (e.g. "OpenAI", "GPT-4o") instead of internal IDs.
    • AI のプロバイダー名・モデル名を、内部 ID ではなく公式の表示名(例: OpenAI、GPT-4o)で表示するよう改善。
  • feat: GROWI Vault (#11092) @yuki-takei
    • Adds GROWI Vault, a read-only Git interface that exposes each user's authorized wiki pages as a git-clonable repository.
    • 各ユーザーが閲覧権限を持つ Wiki ページを Git リポジトリとして clone できる、読み取り専用の新機能「GROWI Vault」を追加。
  • feat: Agentic search engine for suggest-path (#11293) @tomoyuki-t-weseek
    • Replaces the suggest-path recommendation engine with a Mastra-based agentic search that iterates queries against page content, and retires the old features/openai integration entirely.
    • パス提案(suggest-path)機能を、検索を繰り返しながら精度を高める Mastra ベースの agentic 検索エンジンに刷新し、旧 features/openai 連携を全廃。
  • feat: Page Markdown endpoint (.md URL / Accept: text/markdown) with navigation footer (#11439) @yuki-takei
    • Adds an HTTP endpoint returning each page's content as Markdown (via .md URL or Accept: text/markdown) with a navigation footer, so AI agents can fetch page content in one GET without running JavaScript.
    • 各ページの内容を Markdown 形式で返す HTTP エンドポイント(.md URL / Accept: text/markdown)を追加。AI エージェントが JavaScript を実行せずに 1 回の GET でページ本文と近傍ナビゲーションを取得できるように。
  • feat(activity): Capture attachment snapshots for ADD/DOWNLOAD actions (#11433) @yuki-takei
    • Extends audit-log snapshot capture to attachment ADD and DOWNLOAD actions, so admins can track who added or downloaded which attachment on which page.
    • 監査ログのスナップショット記録を添付ファイルの追加・ダウンロード操作にも拡張し、いつ誰がどの添付を追加・ダウンロードしたかを追跡可能に。
  • feat(activity-log): Activity Log with action-keyed snapshot union (incl. activities Prisma migration) (#11393) @yuki-takei
    • Makes attachment deletions (direct and cascade) traceable in the audit log by freezing file details into a snapshot at delete time, alongside a migration of the activities model to Prisma.
    • 添付ファイルの削除(直接削除・カスケード削除)を監査ログで追跡可能にし、削除直前の情報をスナップショットとして保存。あわせて activities モデルを Prisma に移行。
  • feat(news): Switch news delivery settings from admin page (#11091) @ryotaro-nagahara
    • Lets admins toggle news delivery on/off from the GROWI admin page via a DB-backed setting, replacing the previous environment-variable-only control.
    • ニュース配信の ON/OFF を管理画面から切替可能にし、従来の環境変数のみによる制御を廃止。

🚀 Improvement

  • imprv: Lazy-load passport strategy SDKs and ldapjs (#11480) @yuki-takei
    • Lazy-loads authentication strategy SDKs (openid-client, ldapjs, passport-saml, etc.) so disabled auth strategies no longer load their dependencies at boot, reducing memory footprint.
    • 認証ストラテジーの SDK 群(openid-client、ldapjs、passport-saml など)を遅延読み込みにし、無効な認証方式の依存が起動時に読み込まれないようにしてメモリ使用量を削減。
  • imprv: Lazy-load mail transports to keep nodemailer/aws-sdk out of boot (#11479) @yuki-takei
    • Lazy-loads mail transport libraries (nodemailer, aws-sdk) so they no longer load at boot when mail is not configured, further reducing startup memory usage.
    • メール送信用ライブラリ(nodemailer、aws-sdk)を遅延読み込みにし、メール未設定時は起動時にロードされないようにしてメモリ使用量をさらに削減。
  • imprv: Warm up Prisma connection at boot (#11481) @yuki-takei
    • Connects the Prisma client at boot instead of on the first query, so connection failures and the engine's memory cost surface immediately rather than on the first user request.
    • Prisma クライアントの接続を起動時に確立するよう変更し、接続失敗やメモリコストが最初のリクエストではなく起動時点で判明するように改善。
  • imprv(activity-log): Activity Log snapshot detail viewer (formatted attachment-removal view + raw fallback) (#11440) @yuki-takei
    • Adds an admin UI to view the audit-log snapshot details captured for attachment deletions, with a formatted view for attachments and a raw fallback for other actions.
    • 監査ログの管理画面に、添付削除操作で記録されたスナップショット詳細を表示する機能を追加。添付には整形表示、その他の操作には raw 表示で対応。
  • imprv(activity-log): Activity Log recording gate (lazy fail-safe) — skip persisting out-of-gate updates (#11421) @yuki-takei
    • Skips persisting audit-log rows for operations determined not to require logging, reducing write load in multi-tenant deployments like GROWI.cloud.
    • 記録対象外と判定された操作の監査ログ行を書き込まないようにし、GROWI.cloud のようなマルチテナント環境での書き込み負荷を削減。

🐛 Bug Fixes

  • fix: Build safeRedirect target from app:siteUrl behind a reverse proxy (#11248) (#11489) @yuki-takei
    • リバースプロキシ配下で safeRedirect のリダイレクト先を app:siteUrl から構築するよう修正。
  • fix(drawio): Preserve and render all pages of a multi-page diagram (#11524) @yuki-takei
    • drawio の複数ページ図で、全ページを保持・描画するよう修正。
  • fix(import): Derive export archive list from server state via SWR (#11511) @yuki-takei
    • インポート機能のエクスポートアーカイブ一覧を SWR 経由でサーバー状態から取得するよう修正。
  • fix(import): Surface import-settings build errors to the admin UI (#11520) @yuki-takei
    • インポート設定のビルドエラーを管理画面に表示するよう修正。

🧰 Maintenance

  • support(search): Drop Elasticsearch 7 support (#11490) @yuki-takei
    • Drops Elasticsearch 7 support entirely; GROWI now supports only ES8 and ES9.
    • Elasticsearch 7 のサポートを完全に廃止し、ES8/ES9 のみをサポート対象に。
  • support: Opt-in jemalloc allocator (JEMALLOC_ENABLED) to release glibc's retained native memory (#11411) @yuki-takei
    • Adds an opt-in JEMALLOC_ENABLED flag that switches the memory allocator to jemalloc, cutting retained native memory by about 70% in load testing.
    • オプトインの JEMALLOC_ENABLED フラグを追加し、メモリアロケータを jemalloc に切替可能に。負荷試験でネイティブメモリの保持量を約 70% 削減。
  • support: Migrate to ESM (#11309) @yuki-takei
    • Migrates the GROWI monorepo to native ESM, removing CJS server output and legacy transpilePackages workarounds, and enforces a no-extension import convention via CI.
    • GROWI モノレポをネイティブ ESM へ全面移行し、サーバーの CJS 出力や旧 transpilePackages 対応を撤廃。拡張子なし import 規約を CI で恒久的に強制。
  • support: Reduce memory consumption for the GROWI server (#11208) @yuki-takei
    • Ships three confirmed memory fixes (MongoDB connection pool limits, a trimmed OpenTelemetry instrumentation set, and a defensive timer), reducing retained RSS growth by about 84% in testing.
    • MongoDB 接続プール上限・OpenTelemetry 計装の絞り込み・タイマーの防御的処理という 3 つの確認済み修正により、メモリ保持量の増加を試験環境で約 84% 削減。
  • ci(deps): bump body-parser from 1.20.3 to 1.20.6 (#11504) @dependabot[bot]

@growi/pluginkit@1.2.7

Choose a tag to compare

@yuki-takei yuki-takei released this 27 Jul 08:33
18235a8

Patch Changes

  • Updated dependencies [659c93d, e2375eb]:
    • @growi/core@2.5.0

    • 依存パッケージ @growi/core を 2.5.0 に更新。

@growi/core@2.5.0

Choose a tag to compare

@yuki-takei yuki-takei released this 27 Jul 08:33
18235a8

Minor Changes

  • #11267 659c93d Thanks @miya! - Rename and prune AI-related access token scopes

    • Renamed the user-feature scope features:ai_assistantfeatures:ai (read/write). The constants SCOPE.READ/WRITE.FEATURES.AI_ASSISTANT are now SCOPE.READ/WRITE.FEATURES.AI, and the scope strings are read:features:ai / write:features:ai.
    • Removed the now-unused admin scope admin:ai_integration (read/write); the admin AI integration screen has been removed.

    BREAKING: access tokens previously granted read|write:features:ai_assistant no longer match the renamed scope and will lose access to AI endpoints until re-granted (or remapped via migration). Tokens carrying read|write:admin:ai_integration retain a now-meaningless scope string.

    • AI 関連のアクセストークンスコープ features:ai_assistantfeatures:ai にリネームし、未使用となった管理者スコープ admin:ai_integration を削除(破壊的変更: 旧スコープのトークンは再付与が必要)。
  • #11092 e2375eb Thanks @yuki-takei! - Add interfaces for growi-vault

    • GROWI Vault 機能向けの共有インターフェースを追加。

v7.5.7

Choose a tag to compare

@github-actions github-actions released this 21 Jul 09:09

💎 Features

  • feat: Display comments at the share link (#11401) @mariko-h
    • Comments on a page are now visible (read-only) to visitors viewing it via a share link.
    • 共有リンク経由でページを閲覧するユーザーにも、そのページのコメントが(閲覧のみ)表示されるようになりました。
  • feat: Filter by author, editor and group in the search results (#11368) @arvid-e
    • Search now supports author:, editor:, and group: operators to filter results by page creator, last editor, or granted user group. Note: editor: requires a full search index rebuild before it works.
    • 検索に author:(作成者)・editor:(最終更新者)・group:(グループ)による絞り込みが追加されました。editor: の利用には検索インデックスの全再構築が必要です。
  • feat: User group member visibility (#11320) @Ryosei-Fukushima
    • When restricting a page to a specific user group, the group selection modal now shows the members of each group you belong to, making it easier to choose the right group.
    • ページの公開範囲を「グループ限定」にする際のグループ選択モーダルで、自分が所属する各グループのメンバー一覧を確認できるようになりました。

🚀 Improvement

  • imprv: Email white list (#11314) @mariko-h
    • The email registration whitelist now supports subdomain and exact-address matching, in addition to exact-domain matching.
    • 登録を許可するメールアドレスのホワイトリストが、ドメイン完全一致に加えてサブドメイン一致・アドレス完全一致にも対応しました。

🐛 Bug Fixes

  • fix(plantuml): Stop deprecation warning painted onto carbon-gray diagrams (#11475) @yuki-takei
    • PlantUML の carbon-gray テーマの図に非推奨警告が描画されてしまう不具合を修正。
  • fix(plantuml): Stop leaking PlantUML theme YAML front matter into diagram source (#11461) @yuki-takei
    • PlantUML のテーマ指定 YAML front matter が図のソースに混入してしまう不具合を修正。
  • fix(import): Harden admin data import (re-enable button on failure, await import) (#11474) @yuki-takei
    • 管理者データインポートの堅牢性を向上(失敗時にボタンを再度有効化、インポート処理を await するように修正)。
  • fix: Prevent blank screen when Next.js falls back to the error page (#11423) @yuki-takei
    • Next.js がエラーページにフォールバックした際に画面が真っ白になる不具合を修正。
  • fix: Prevent PageSelectModal infinite render loop (#11422) (#11428) @yuki-takei
    • PageSelectModal が無限に再レンダリングされる不具合を修正。

@growi/pluginkit@1.2.6

Choose a tag to compare

@github-actions github-actions released this 02 Jul 11:44
0045693

Patch Changes

  • Updated dependencies [5e8f105]:
    • @growi/core@2.4.0
      • 依存パッケージ @growi/core2.4.0 に更新。

@growi/core@2.4.0

Choose a tag to compare

@github-actions github-actions released this 02 Jul 11:44
0045693

Minor Changes

  • #11320 5e8f105 Thanks @Ryosei-Fukushima! - Add features:user and features:user_group access-token scopes (read/write). These separate "reading other users'/groups' directory information" from the self-oriented user_settings:info scope, which previously over-granted such reads.
    • アクセストークンに features:user / features:user_group スコープ(読み取り/書き込み)を追加。他ユーザー・他グループのディレクトリ情報の読み取りを、自分自身の設定を扱う user_settings:info スコープから分離し、過剰な権限付与を解消した。

v7.5.6

Choose a tag to compare

@github-actions github-actions released this 25 Jun 14:57

💎 Features

  • feat: Contribution Graph on the user's profile (#10509) @arvid-e
    • Adds a GitHub-style contribution heatmap to the user profile, backed by a dedicated real-time collection so a full year of activity loads instantly without heavy aggregation.
    • ユーザープロフィールに GitHub 風のコントリビューショングラフ(ヒートマップ)を追加。専用コレクションでリアルタイムに集計するため、1 年分の活動を重い集計なしで即座に表示できる。
  • feat(comment): Comment mention and add In-App-notification (#11058) @Ryosei-Fukushima
    • You can now mention users with @username in comments — mentioned users receive an in-app notification, with @-autocomplete and highlighting in the comment editor.
    • コメント内で @username によるメンションが可能に。メンションされたユーザーにアプリ内通知が届き、コメントエディタでは候補のオートコンプリートとハイライト表示に対応。
  • feat: Changes Index and Revision Diff APIs (#11353) @yuki-takei
    • Adds two new v3 APIs: a paginated index of your consecutive-edit "runs" across pages, and a batch unified-diff endpoint for up to 20 revision pairs with per-pair access control.
    • 新しい v3 API を 2 つ追加。ページ横断で自分の連続編集(run)をページネーション付きで取得する API と、最大 20 件のリビジョンペアの差分を一括取得する API(ペアごとにアクセス制御)。
  • feat: Add button to make all notification as read (#11352) @ryotaro-nagahara
    • Adds a "mark all as read" button for notifications, with optimistic UI updates so in-app notifications, announcements, and the sidebar badge reflect read state in real time.
    • 通知に「すべて既読にする」ボタンを追加。楽観的 UI 更新により、アプリ内通知・お知らせの既読状態とサイドバーのバッジがリアルタイムに反映される。

🚀 Improvement

  • imprv: Expose news body (#11317) @ryotaro-nagahara
    • Adds a dedicated /_news page for the in-app news feed that shows each item's full body and external link; clicking a news item in notifications jumps to it.
    • アプリ内ニュースフィード専用の /_news ページを新設し、各ニュースの本文と外部リンクを表示。通知からニュースをクリックすると該当箇所へ遷移する。
  • imprv: Include page revert action in supported contribution actions (#11321) @arvid-e
    • Page revert actions now count toward the contribution graph.
    • ページの差し戻し(revert)操作もコントリビューショングラフの集計対象に追加。
  • imprv: Page create button interaction (#11313) @hikaru-n-cpu
    • Polishes the sidebar page-create button with a smoother slide-in/out hover animation.
    • サイドバーのページ作成ボタンに、ホバー時のスライドイン/アウトのアニメーションを加えて操作感を改善。

🐛 Bug Fixes

  • fix: Suppress modifier shortcuts in editable elements (#11340) @yuki-takei
    • 編集可能な要素内で修飾キーのショートカットが誤って発火しないように抑制。
  • fix: escape </style> breakout in renderCustomCss (#11298) @yuki-takei
    • カスタム CSS の描画時に </style> によるタグのブレイクアウトを防ぐようエスケープ処理を修正。
  • fix: Use req.user.username in LDAP Execute Sync instead of req.user.name (#11356) @yuki-takei
    • LDAP の同期実行時に req.user.name ではなく req.user.username を使用するよう修正。
  • feat(page-bulk-export): Rework bulk PDF/HTML export to render Markdown like the web (tables, math, emoji, directives) (#11288) @yuki-takei
    • PDF/HTML 一括エクスポートを刷新し、Web 表示と同様に Markdown(表・数式・絵文字・ディレクティブ)をレンダリングするように変更。

🧰 Maintenance

  • ci(deps): bump js-yaml from 4.1.1 to 4.2.0 (#11311) @dependabot[bot]
  • chore(deps): dedupe pnpm-lock.yaml to CI-gate release dependency churn (#11343) @yuki-takei
    • Internal release-pipeline hygiene: isolates the lockfile churn from the Changesets release PR onto a normal branch so CI validates the dependency bumps before they reach master. No user-facing change.
    • リリースパイプラインの内部整備。Changesets のリリース PR に乗る lockfile の変動を通常ブランチへ切り出し、CI が依存更新を master 到達前に検証できるようにしたもの。ユーザー向けの変更はなし。
  • ci(deps-dev): bump vitest from 3.2.4 to 3.2.6 (#11279) @dependabot[bot]
  • ci(deps): bump form-data from 4.0.5 to 4.0.6 (#11335) @dependabot[bot]

@growi/pluginkit@1.2.5

Choose a tag to compare

@github-actions github-actions released this 22 Jun 14:14
4fdc7fb

Patch Changes

  • Updated dependencies [4a0bf1d]:
    • @growi/core@2.3.2
    • 依存パッケージ @growi/core2.3.2 に更新。

@growi/core@2.3.2

Choose a tag to compare

@github-actions github-actions released this 22 Jun 14:14
4fdc7fb

Patch Changes

  • #11317 4a0bf1d Thanks @ryotaro-nagahara! - Reserve the /_news path (in-app news feed page) in isCreatablePage so it cannot be created as a wiki page.
    • /_news パス(アプリ内ニュースフィードページ)を isCreatablePage で予約し、wiki ページとして作成できないようにした。

v7.5.5

Choose a tag to compare

@github-actions github-actions released this 10 Jun 11:02

🚀 Improvement

  • imprv: Enable API token header "X-GROWI-ACCESS-TOKEN" (#11244) @yuki-takei
    • Adds X-GROWI-ACCESS-TOKEN as a new HTTP request header for API authentication, providing a secure alternative when the Authorization header is already occupied (e.g., by Basic auth on a reverse proxy). Tokens no longer need to be exposed as URL query parameters.
    • リバースプロキシなどで Authorization ヘッダーが既に使用されている環境でも、X-GROWI-ACCESS-TOKEN ヘッダーで安全に API トークンを送信できるようになりました。トークンを URL に含めるリスクを回避できます。

🐛 Bug Fixes

  • fix: disable $lsx() and attachment-refs directives on share link pages to prevent Basic auth challenge (#11271) @yuki-takei
    • 共有リンクページで $lsx() および添付ファイル参照ディレクティブを無効化し、Basic 認証チャレンジが発生する問題を修正。
  • fix: Prevent bulk-export cleanup race on shared attachment (#11229) @tomoyuki-t-weseek
    • バルクエクスポート時の共有添付ファイルクリーンアップで競合状態が発生する問題を修正。
  • fix: Remove uglifycss to preserve CSS Color Level 4 syntax (#11277) @yuki-takei
    • uglifycss を削除し、CSS Color Level 4 構文が正しく保持されるよう修正。
  • fix: Index rebuild fails on boot when initializing a Crowi instance takes a long time (#11247) @ryu-sato
    • Crowi インスタンスの初期化に時間がかかる場合、起動時のインデックス再構築が失敗する問題を修正。
  • fix: Page operations and v5 page migration fail for paths containing non-ASCII whitespace (e.g. U+3000) (#11236) @yuki-takei
    • 全角スペース(U+3000)などの非 ASCII 空白文字を含むページパスで、ページ操作・v5 マイグレーションが失敗する問題を修正。
  • fix(editor): fix Shift+Arrow selection stuck on wrapped lines by upgrading @codemirror/commands to ^6.10.3 (#11264) @yuki-takei
    • @codemirror/commands を ^6.10.3 に更新し、折り返し行での Shift+矢印キーによる選択がスタックする問題を修正。
  • fix(editor): Preserve page grant on mobile & before grant loads (#11272) (#11276) @yuki-takei
    • モバイル端末およびグラント情報読み込み前にページのグラント設定が失われる問題を修正。
  • fix(ui): right-align ModalHeader close content wrapped in a custom element (#11269) @yuki-takei
    • カスタム要素でラップされた ModalHeader の閉じるボタンが正しく右揃えになるよう修正。
  • fix(attachment): deny direct access to /uploads to prevent stored XSS (#11257) @miya
    • /uploads への直接アクセスを拒否し、Stored XSS を防止するよう修正。
  • fix(page-grant): guard against TypeError when grantedUsers is empty in calcApplicableGrantData (#11211) @yuki-takei
    • calcApplicableGrantDatagrantedUsers が空の場合に TypeError が発生する問題を修正。

🧰 Maintenance

  • support: Verify initial pages are created with content after installation (#11234) @Ryosei-Fukushima
    • Adds Playwright tests to verify that the initial pages (/ and /Sandbox) are created with their expected content after installation, preventing regressions like the empty-page bug introduced in v7.5.0.
    • インストール後に初期ページ(//Sandbox)が正しいコンテンツで生成されることを確認する Playwright テストを追加。v7.5.0 で発生したページ本文が空になる問題の再発を防止します。
  • ci(deps): bump mermaid from 11.10.0 to 11.15.0 (#11121) @dependabot[bot]
  • ci(deps): bump axios from 1.15.0 to 1.16.0 (#11260) @dependabot[bot]
  • ci(deps): bump qs from 6.14.2 to 6.15.2 (#11209) @dependabot[bot]
  • ci(deps-dev): bump turbo from 2.1.3 to 2.9.14 (#11202) @dependabot[bot]
  • ci(deps): bump js-cookie from 3.0.5 to 3.0.7 (#11205) @dependabot[bot]