Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
903 commits
Select commit Hold shift + click to select a range
f0b29ec
configure biome for apiv3 js files
arafubeatbox Nov 21, 2025
892f257
Merge pull request #10532 from growilabs/support/156162-174082-app-ap…
yuki-takei Nov 21, 2025
69ae5c3
Merge pull request #10536 from growilabs/support/156162-166092-app-ap…
yuki-takei Nov 21, 2025
92472f9
rename module name
yuki-takei Nov 21, 2025
cdfbe40
refactor
yuki-takei Nov 21, 2025
f93c4c3
clean code
yuki-takei Nov 21, 2025
642de52
refactor: streamline item handling and improve type definitions acros…
yuki-takei Nov 21, 2025
b0bb415
configure biome for some app server services
arafubeatbox Nov 23, 2025
adf89bf
ignore some app server service files in eslint
arafubeatbox Nov 23, 2025
8a034b8
Use react-hook-form
miya Nov 25, 2025
3760abe
Add username registration to InvitedForm
miya Nov 25, 2025
be49ba2
clean code
miya Nov 25, 2025
ded5a0d
feat: add loading spinner for lists
riona-k Nov 25, 2025
187f2c9
feat: add user statistics table to admin home
riona-k Nov 25, 2025
4f6f908
fix: allow envVars to be optional in EnvVarsTable
riona-k Nov 25, 2025
81584bb
fix: mark envVars as optional and handle undefined safely
riona-k Nov 25, 2025
377f33e
refactor: streamline SAML settings update process by consolidating st…
yuki-takei Nov 25, 2025
59189bd
refactor: consolidate LDAP setting updates into a single method
yuki-takei Nov 25, 2025
87c935c
refactor: simplify OIDC settings update by consolidating state change…
yuki-takei Nov 25, 2025
68b2564
refactor: enhance security settings update by incorporating form data…
yuki-takei Nov 25, 2025
d7ff405
refactor: update security setting methods to accept form data for imp…
yuki-takei Nov 25, 2025
0e26b3c
Merge pull request #10540 from growilabs/fix/admin-form-degradation
mergify[bot] Nov 25, 2025
02ef08c
Merge pull request #10534 from growilabs/feature/add-loading-admin-home
yuki-takei Nov 25, 2025
cfc6ec6
Merge remote-tracking branch 'origin/dev/7.4.x' into imprv/refactor-a…
yuki-takei Nov 25, 2025
20b7f56
Merge pull request #10519 from growilabs/master
mergify[bot] Nov 25, 2025
9282635
Merge pull request #10527 from growilabs/fix/174529-cannot-enter-text…
yuki-takei Nov 25, 2025
689161c
Release v7.3.7
mergify[bot] Nov 25, 2025
56d259f
Merge remote-tracking branch 'origin/dev/7.4.x' into imprv/refactor-a…
yuki-takei Nov 25, 2025
c10c860
Bump version
Nov 25, 2025
b228a07
Merge pull request #10543 from growilabs/support/prepare-v7.3.8-RC.0
mergify[bot] Nov 25, 2025
7cd9d6e
Add TODO
miya Nov 25, 2025
b11bb51
Merge pull request #10523 from growilabs/fix/174331-lang-setting-rese…
yuki-takei Nov 25, 2025
a0f5481
Revert "Merge pull request #10532 from growilabs/support/156162-17408…
yuki-takei Nov 25, 2025
e6849fa
Merge branch 'dev/7.4.x' into imprv/refactor-attachment-service
yuki-takei Nov 25, 2025
cd15f1b
fix me page with dynamic route
yuki-takei Nov 25, 2025
2e44df3
Merge branch 'dev/7.4.x' into imprv/refactor-attachment-service
yuki-takei Nov 25, 2025
adb0849
Merge pull request #10528 from growilabs/imprv/refactor-attachment-se…
yuki-takei Nov 25, 2025
5d72511
Merge branch 'master' into feat/add-user-statistics
riona-k Nov 26, 2025
3deda1b
feat:Add user statistics table to user management screen
riona-k Nov 26, 2025
334c527
Fix display issue in total user count
riona-k Nov 26, 2025
5c793f8
Delete current_users
riona-k Nov 26, 2025
0edffd9
fix: remove redirect handling from server-side props in share page
miya Nov 26, 2025
a6c9943
feat: add share link related page registration
miya Nov 26, 2025
6801022
Merge branch 'dev/7.4.x' into fix/174481-accessing-admin-customize-error
yuki-takei Nov 26, 2025
45a456c
refactor: update AttachmentService import and enhance type definitions
yuki-takei Nov 26, 2025
667bacc
fix type for IAttachmentService
yuki-takei Nov 26, 2025
72f6724
Merge pull request #10526 from growilabs/fix/174481-accessing-admin-c…
yuki-takei Nov 26, 2025
142b2ca
Revert "feat: add share link related page registration"
miya Nov 27, 2025
b506149
fix: update share link page to use pageWithMeta for data handling
miya Nov 27, 2025
2d36dd9
fix: refactor not found response handling in share link page
miya Nov 27, 2025
aa881fb
Use configLoader derived from crowi
miya Nov 27, 2025
555caf0
fix: enhance expired share link handling and update type definitions
miya Nov 27, 2025
8808da1
fix: update getServerSideProps to include ACL check for user group de…
miya Nov 27, 2025
ab54870
fix lint error
miya Nov 27, 2025
05a3a5e
Remove unnecessary exports
miya Nov 27, 2025
65f53e8
Merge pull request #10548 from growilabs/fix/174433-accessing-share-l…
yuki-takei Nov 27, 2025
78ad419
Merge pull request #10550 from growilabs/fix/174840-specific-element-…
yuki-takei Nov 27, 2025
4963fb0
fix: prevent rendering of HandsontableModal when not opened
miya Nov 28, 2025
d314435
fix: improve markdown table state handling in HandsontableModal
miya Nov 28, 2025
05bc1d5
clean code
miya Nov 28, 2025
dc5424c
fix: handle SSR/CSR className mismatch in RawLayout component
miya Nov 28, 2025
4885392
refactor: reorganize HTML structure for Playground and add custom ico…
yuki-takei Nov 28, 2025
144ec57
Merge branch 'master' into dev/7.4.x
yuki-takei Nov 28, 2025
43dad48
Merge branch 'dev/7.4.x' into feat/page-tree-virtualization
yuki-takei Nov 28, 2025
db2ebcc
auto open when the path is '/'
yuki-takei Nov 28, 2025
21af3b9
refactor: adjust indentation logic in TreeItemLayout component
yuki-takei Nov 28, 2025
bcec467
refactor: enhance duplicate and delete menu item handlers with notifi…
yuki-takei Nov 28, 2025
3eb0889
reocate page-tree feature modules
yuki-takei Nov 28, 2025
cc3196f
update serena memories
yuki-takei Nov 28, 2025
b7e44f7
update eslint settings for src/features
yuki-takei Nov 28, 2025
26175cf
feat: implement page renaming feature with validation and UI integration
yuki-takei Nov 28, 2025
9df0c58
refactor usePageRename hook
yuki-takei Nov 28, 2025
0dbb5d9
reorganize serena configuration files
yuki-takei Nov 28, 2025
e1fd224
update serena memory
yuki-takei Nov 28, 2025
b0086ec
install pathe
yuki-takei Nov 28, 2025
35fe1a1
use pathe
yuki-takei Nov 28, 2025
7199c90
WIP: implement create feature
yuki-takei Nov 28, 2025
caa7039
update serena memory
yuki-takei Nov 28, 2025
2aaeaf0
refactor
yuki-takei Nov 28, 2025
98fa9fc
unify CreateInput and RenameInput to TreeNameInput
yuki-takei Nov 28, 2025
b07be36
fix auto expand logic
yuki-takei Nov 28, 2025
76785a4
implement new hook for auto-expand ancestors feature
yuki-takei Nov 28, 2025
6b3313b
refactor: improve data loading and caching mechanisms in page tree
yuki-takei Nov 28, 2025
131e387
test: add unit tests for use-data-loader hook and its caching behavior
yuki-takei Nov 28, 2025
a5fcb0a
clean code
yuki-takei Nov 28, 2025
359ade4
test: add placeholder node tests for page creation in tree
yuki-takei Nov 28, 2025
5ccc843
test(page-tree): add integration tests for use-data-loader with real …
yuki-takei Nov 28, 2025
233d833
refactor(page-tree): extract tree item handlers into dedicated hook
yuki-takei Nov 28, 2025
c02a959
refactor(page-tree): replace useState rebuildTrigger with Jotai atom
yuki-takei Nov 28, 2025
cdbb952
refactor(page-tree): replace clearChildrenCache with invalidatePageTr…
yuki-takei Nov 28, 2025
47b3f46
improve type reference
yuki-takei Nov 28, 2025
1474634
refactor(SimplifiedItemsTree): optimize handling of creatingParentId …
yuki-takei Nov 28, 2025
68b6a66
feat(SimplifiedItemsTree): implement useExpandParentOnCreate hook to …
yuki-takei Nov 28, 2025
0b6fa15
feat(SimplifiedPageTreeItem): implement usePlaceholderRenameEffect ho…
yuki-takei Nov 28, 2025
4310739
feat(SimplifiedPageTreeItem): add CreateButton to enhance page creati…
yuki-takei Nov 28, 2025
fe1dfce
Reapply "Merge pull request #10532 from growilabs/support/156162-1740…
arafubeatbox Nov 30, 2025
84687fe
fix all page not found
arafubeatbox Nov 30, 2025
75db1a2
refactor page get route
arafubeatbox Dec 1, 2025
87936ff
Merge branch 'master' into feat/add-user-statistics
riona-k Dec 1, 2025
b458524
Fix i18n keys for user statistics
riona-k Dec 1, 2025
1459790
Merge branch 'master' into feat/163220-171243-enable-page-bulk-export…
arafubeatbox Dec 1, 2025
225dd23
run biome autofix
arafubeatbox Dec 1, 2025
1538b67
Merge pull request #10539 from growilabs/feat/add-user-statistics
miya Dec 1, 2025
737d0f6
refactor HandsontableModal
miya Dec 1, 2025
e3137fc
table_chart -> table
miya Dec 1, 2025
65c7450
#174769-174775 修正-maintenance_modeの表記修正
hikaru-n-cpu Dec 2, 2025
722ccd9
ci(deps): bump validator from 13.15.20 to 13.15.22
dependabot[bot] Dec 2, 2025
866f280
Merge pull request #10560 from growilabs/dependabot/npm_and_yarn/vali…
mergify[bot] Dec 2, 2025
6035e94
Merge pull request #10551 from growilabs/fix/174842-cannot-update-exi…
yuki-takei Dec 3, 2025
9b040f4
Merge pull request #10552 from growilabs/fix/174985-page-editor-is-no…
yuki-takei Dec 3, 2025
c8eb5f1
Merge pull request #10292 from growilabs/feat/163220-171243-enable-pa…
mergify[bot] Dec 3, 2025
af1a35a
fix: ensure fetchCurrentPage is called with force option when SSR is …
miya Dec 4, 2025
94a6b55
Merge pull request #10555 from growilabs/support/156162-175049-app-ap…
yuki-takei Dec 4, 2025
c00b2fc
fix identical path handling
yuki-takei Dec 4, 2025
3c84c31
refactor: enhance NextLink component to support target attribute for …
yuki-takei Dec 4, 2025
deb439c
feat: add target attribute support for anchor tags in recommended whi…
yuki-takei Dec 4, 2025
d1e2c87
refactor: simplify target handling in NextLink component
yuki-takei Dec 4, 2025
21ac163
Merge pull request #10566 from growilabs/imprv/next-link-target-attri…
yuki-takei Dec 4, 2025
386da50
clean PagePathNav
yuki-takei Dec 4, 2025
bf4d54f
Merge branch 'master' into dev/7.4.x
yuki-takei Dec 4, 2025
2360e53
Merge pull request #10544 from growilabs/master
mergify[bot] Dec 4, 2025
0649d3d
Release v7.3.8
mergify[bot] Dec 4, 2025
4382592
Bump version
Dec 4, 2025
1689a8d
Merge pull request #10569 from growilabs/support/prepare-v7.3.9-RC.0
mergify[bot] Dec 4, 2025
13e75dd
refactor: move dynamic import of PrivateLegacyPages to the top for cl…
miya Dec 5, 2025
80d617c
fix: initialize search keyword on mount in PrivateLegacyPages component
miya Dec 5, 2025
5040e06
fix lint error
miya Dec 5, 2025
0cf2177
fix: update DisplaySwitcher and OldRevisionAlert to use useRevisionId…
miya Dec 5, 2025
b9a8ca9
fix: ensure page refreshes with force when alerting about outdated re…
miya Dec 5, 2025
66f04c1
rm space
miya Dec 5, 2025
a7630f2
fix lint error
miya Dec 5, 2025
84fe3c5
Merge pull request #10572 from growilabs/fix/175021-editor-cursor-ret…
yuki-takei Dec 5, 2025
2f301f4
Merge branch 'dev/7.4.x' into feat/page-tree-virtualization
yuki-takei Dec 5, 2025
ad101ad
reorganize features/page-tree directory structure
yuki-takei Dec 5, 2025
f2eea10
clean code
yuki-takei Dec 5, 2025
060df3b
clean code
yuki-takei Dec 5, 2025
05bcb72
clean code
yuki-takei Dec 5, 2025
8c52350
refactor: simplify renaming logic in usePlaceholderRenameEffect hook
yuki-takei Dec 5, 2025
1ba3429
feat: add mouse down handler to prevent input blur and implement rapi…
yuki-takei Dec 5, 2025
869e116
fix: skip withSuperjson in production server phase to prevent errors
miya Dec 5, 2025
807f5b0
add tests
yuki-takei Dec 5, 2025
062e041
fix test
yuki-takei Dec 5, 2025
a51a7a6
refactor PageSelectModal
yuki-takei Dec 5, 2025
1cec7a5
WIP: refactor AiAssistantManagementPageTreeSelection
yuki-takei Dec 5, 2025
3ae2c78
use TreeItemLayout
yuki-takei Dec 5, 2025
e4444e8
refactor: update styles for tree item and add checkbox component
yuki-takei Dec 5, 2025
0fa694d
fix: update simplifiedTreeItemWithCheckboxSize to 40px
yuki-takei Dec 5, 2025
85cb865
refactor: use toPagePathGlob function for path conversion in AiAssist…
yuki-takei Dec 5, 2025
be45244
refactor: implement page tree selection hooks and components for bett…
yuki-takei Dec 5, 2025
903fa8f
refactor: add checkbox state management and tree feature configuratio…
yuki-takei Dec 5, 2025
b87340d
fix: update simplifiedTreeItemWithCheckboxSize to 36px
yuki-takei Dec 5, 2025
6257794
refactor: rename NameInputAlternativeComponent to TreeNameInput and u…
yuki-takei Dec 5, 2025
c2353f9
refactor: remove unused styles and variables from TreeNameInput compo…
yuki-takei Dec 5, 2025
e17e65d
update serena memories
yuki-takei Dec 5, 2025
9033e28
add serena memory
yuki-takei Dec 5, 2025
39129f4
Merge branch 'dev/7.4.x' into support/156162-174668-app-apiv3-routes-…
arafubeatbox Dec 7, 2025
039d134
fix non-autofixable biome errors
arafubeatbox Dec 7, 2025
68756c3
fix non-autofixable biome errors (type annotations, forEach fix)
arafubeatbox Dec 7, 2025
797fd64
fix non-autofixable biome errors (axios import)
arafubeatbox Dec 7, 2025
3bab385
Merge branch 'dev/7.4.x' into support/156162-174669-app-server-servic…
arafubeatbox Dec 7, 2025
55fe077
fix non-autofixable biome errors (add type annotations)
arafubeatbox Dec 7, 2025
24f6187
fix type annotation
arafubeatbox Dec 7, 2025
94a7730
fix type annotations
arafubeatbox Dec 7, 2025
d21ce01
remove unnecessary import
arafubeatbox Dec 7, 2025
afbcd38
configure biome for some service files
arafubeatbox Dec 7, 2025
f3dcd1e
fix non-autofixable biome errors
arafubeatbox Dec 7, 2025
633cfb6
ignore non-fixable biome errors
arafubeatbox Dec 7, 2025
9306b8d
remove unnecessary ignore comment
arafubeatbox Dec 7, 2025
d958f0a
fix: optimize shallow routing to prevent unnecessary operations and i…
miya Dec 8, 2025
e516d2f
Update contributor list
riona-k Dec 8, 2025
3dc7803
add a name
riona-k Dec 8, 2025
f394998
Merge pull request #10565 from growilabs/fix/175143-page-content-is-n…
yuki-takei Dec 8, 2025
b5f5365
Merge pull request #10571 from growilabs/fix/174632-pages-eligible-fo…
yuki-takei Dec 8, 2025
e25f762
Merge pull request #10537 from growilabs/support/156162-174668-app-ap…
yuki-takei Dec 8, 2025
20ee7b9
Merge branch 'dev/7.4.x' into support/156162-174669-app-server-servic…
yuki-takei Dec 8, 2025
2e50c64
Merge pull request #10574 from growilabs/support/156162-174669-app-se…
yuki-takei Dec 8, 2025
ce2fd93
Merge pull request #10556 from growilabs/feat/add-intern-staff-credit
yuki-takei Dec 8, 2025
63023ee
Merge pull request #10573 from growilabs/fix/skip-withsuperjson-in-pr…
yuki-takei Dec 8, 2025
ffb0591
Merge pull request #10576 from growilabs/fix/175454-url-becomes-page-…
yuki-takei Dec 8, 2025
e2c9a04
update serena memories
yuki-takei Dec 8, 2025
1987f94
feat: add drag and drop functionality to page tree
yuki-takei Dec 8, 2025
f5576fd
fix mutate to refresh headless-tree
yuki-takei Dec 8, 2025
c10cd0a
clean code
yuki-takei Dec 8, 2025
b8aa48a
refactor
yuki-takei Dec 8, 2025
d643264
feat: add socket listener for descendant count updates in page tree
yuki-takei Dec 8, 2025
3fa6ebd
feat: enhance page tree revalidation logic for improved performance
yuki-takei Dec 8, 2025
0ec294d
update serena memories
yuki-takei Dec 8, 2025
2e4c1d2
update comment
yuki-takei Dec 8, 2025
92d29c4
update serena memory
yuki-takei Dec 8, 2025
d342187
feat: invalidate target item's data before expanding in drag-and-drop
yuki-takei Dec 8, 2025
acef8d7
remove obsoleted modules
yuki-takei Dec 8, 2025
b6ee61a
Merge pull request #10575 from growilabs/support/156162-175451-app-se…
yuki-takei Dec 9, 2025
62ca295
get the value (revisionIdFromUrlAtom) when the function is executed.
miya Dec 9, 2025
ff0e34e
Merge remote-tracking branch 'origin/dev/7.4.x' into feat/page-tree-v…
yuki-takei Dec 9, 2025
dcc2e9d
Merge pull request #10559 from growilabs/fix/174769-174775-change-nam…
yuki-takei Dec 9, 2025
15d0061
rename
yuki-takei Dec 9, 2025
4f58c1c
fix format
yuki-takei Dec 9, 2025
55a8ba6
Merge branch 'dev/7.4.x' into fix/175423-latest-revision-is-displayed…
miya Dec 9, 2025
661d54a
fix .eslintrc.js
yuki-takei Dec 9, 2025
5ffe467
Merge branch 'dev/7.4.x' into feat/page-tree-virtualization
yuki-takei Dec 9, 2025
a7460a1
Merge branch 'dev/7.4.x' into fix/175423-latest-revision-is-displayed…
miya Dec 9, 2025
b9f7bbf
revert /page-listing/item endpoint implementation
yuki-takei Dec 9, 2025
eb1884a
fix import lines
yuki-takei Dec 9, 2025
09564e9
refactor: update TreeItemCheckbox to use TreeItemWithCheckboxToolProp…
yuki-takei Dec 9, 2025
9b32d33
refactor: simplify drag and drop logic in ItemsTree and usePageDnd
yuki-takei Dec 9, 2025
df2c0d0
refactor: replace useCheckboxState with useCheckbox for improved chec…
yuki-takei Dec 9, 2025
61da306
Merge pull request #10580 from growilabs/fix/175423-latest-revision-i…
yuki-takei Dec 9, 2025
4fd23a3
update serena memories
yuki-takei Dec 9, 2025
8f5c045
clean code
yuki-takei Dec 9, 2025
eb20e4e
fix lint error
yuki-takei Dec 9, 2025
f1af3a5
fix test
yuki-takei Dec 9, 2025
0e37fa6
fix: correct server-side props handling for route transitions
miya Dec 9, 2025
4c89e96
fix lint error
miya Dec 9, 2025
a192861
fix test
yuki-takei Dec 9, 2025
d16a9c0
Merge pull request #10582 from growilabs/fix/175487-getserversideprop…
yuki-takei Dec 9, 2025
9dc09cb
fix test
yuki-takei Dec 9, 2025
877b8ba
fix test
yuki-takei Dec 9, 2025
d7e8c01
Merge pull request #10581 from growilabs/feat/page-tree-virtualization
yuki-takei Dec 9, 2025
78ff1ea
remove esa and qiita importer
yuki-takei Dec 9, 2025
4175a51
add migrate script
yuki-takei Dec 9, 2025
3875fc1
remove translations
yuki-takei Dec 9, 2025
b53edfb
update translation
yuki-takei Dec 9, 2025
211c738
Merge pull request #10570 from growilabs/master
yuki-takei Dec 9, 2025
ab0ce04
Release v7.3.9
yuki-takei Dec 9, 2025
12664ec
Merge pull request #10584 from growilabs/support/omit-esa-and-qiita-i…
yuki-takei Dec 9, 2025
ce2af3c
Bump version
Dec 9, 2025
2e3a861
Merge pull request #10585 from growilabs/support/prepare-v7.3.10-RC.0
mergify[bot] Dec 9, 2025
28ea3c0
omit unnecessary file
yuki-takei Dec 9, 2025
ca8efdc
Merge branch 'master' into dev/7.4.x
yuki-takei Dec 9, 2025
1b57569
WIP: stablize
yuki-takei Dec 10, 2025
859254e
refactor: improve URL decoding and fragment handling in useFetchCurre…
miya Dec 10, 2025
c6c81ac
Merge pull request #10588 from growilabs/fix/175529-flickering-occurs…
yuki-takei Dec 10, 2025
24fa21c
fix: update ItemsTree component to use Bootstrap's position-relative …
yuki-takei Dec 10, 2025
ae70e2d
fix: optimize virtualizer by memoizing scroll element and measurement…
yuki-takei Dec 10, 2025
4a9ce99
fix lint error
yuki-takei Dec 10, 2025
065bea0
Restoration of /page-listing/info
miya Dec 10, 2025
1ce9de3
fix: memoize pagePath to prevent unnecessary re-renders in Page compo…
yuki-takei Dec 10, 2025
b7378ce
fix: improve PageView component performance by memoizing props and re…
yuki-takei Dec 10, 2025
8924046
fix: memoize pagePath to prevent unnecessary re-renders in Page compo…
yuki-takei Dec 10, 2025
23c63ff
fix: improve PageView component performance by memoizing props and re…
yuki-takei Dec 10, 2025
c355fa6
Merge branch 'dev/7.4.x' into fix/page-tree-virtualization
yuki-takei Dec 10, 2025
f9af726
Merge pull request #10589 from growilabs/fix/page-tree-virtualization
yuki-takei Dec 10, 2025
163dbcb
fix: rename PageInfoAll to PageInfoExt in OpenAPI schemas
yuki-takei Dec 10, 2025
ebbb8f0
clean code
yuki-takei Dec 10, 2025
97072ef
Merge pull request #10591 from growilabs/fix/175613-some-page-content…
yuki-takei Dec 10, 2025
8693927
fix: reduce overscan value in ItemsTree component from 10 to 5
yuki-takei Dec 10, 2025
cc84964
fix: update error handling for forbidden and empty pages in page info…
yuki-takei Dec 10, 2025
e4b9860
fix: add isDataUnavailable state to handle data fetch errors in PageI…
yuki-takei Dec 10, 2025
73f475f
Merge pull request #10593 from growilabs/fix/page-info-api-and-page-i…
yuki-takei Dec 10, 2025
9e7b08d
fix: use type guard for pageInfo in PageSideContents component
yuki-takei Dec 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .changeset/clever-paws-wink.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@growi/core': minor
---

Add global EventTarget instance provider
5 changes: 5 additions & 0 deletions .changeset/healthy-pianos-brake.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@growi/core': major
---

Remove global socket management and useSWRStatic
5 changes: 5 additions & 0 deletions .changeset/lazy-penguins-hammer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@growi/core': major
---

Update IPage interfaces family
4 changes: 3 additions & 1 deletion .github/workflows/release-pdf-converter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@ jobs:
images: growilabs/pdf-converter
tags: |
type=raw,value=latest
type=raw,value=${{ steps.package-json.outputs.packageVersion }}
type=semver,value=${{ steps.package-json.outputs.packageVersion }},pattern={{major}}
type=semver,value=${{ steps.package-json.outputs.packageVersion }},pattern={{major}}.{{minor}}
type=semver,value=${{ steps.package-json.outputs.packageVersion }},pattern={{major}}.{{minor}}.{{patch}}

- name: Login to docker.io registry
run: |
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,10 @@ yarn-error.log*

# IDE, dev #
.idea
.claude
*.orig
*.code-workspace
*.timestamp-*.mjs

# turborepo
.turbo
Expand Down
104 changes: 104 additions & 0 deletions .serena/memories/apps-app-detailed-architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# apps/app アーキテクチャ詳細ガイド

## 概要
`apps/app` は GROWI のメインアプリケーションで、Next.js ベースのフルスタック Web アプリケーションです。

## エントリーポイント
- **サーバーサイド**: `server/app.ts` - OpenTelemetry 初期化と Crowi サーバー起動を担当
- **クライアントサイド**: `pages/_app.page.tsx` - Next.js アプリのルートコンポーネント

## ディレクトリ構成の方針

### フィーチャーベース(新しい方針)
`features/` ディレクトリは機能ごとに整理され、各フィーチャーは以下の構造を持つ:
- `interfaces/` - TypeScript 型定義
- `server/` - サーバーサイドロジック(models, routes, services)
- `client/` - クライアントサイドロジック(components, stores, services)
- `utils/` - 共通ユーティリティ

#### 主要フィーチャー
- `openai/` - AI アシスタント機能(OpenAI 統合)
- `external-user-group/` - 外部ユーザーグループ管理
- `page-bulk-export/` - ページ一括エクスポート
- `growi-plugin/` - プラグインシステム
- `search/` - 検索機能
- `mermaid/` - Mermaid 図表レンダリング
- `plantuml/` - PlantUML 図表レンダリング
- `callout/` - コールアウト(注意書き)機能
- `comment/` - コメント機能
- `templates/` - テンプレート機能
- `rate-limiter/` - レート制限
- `opentelemetry/` - テレメトリ・監視

### レガシー構造(段階的移行予定)

#### ユニバーサル(サーバー・クライアント共通)
- `components/` - React コンポーネント(ページレベル、レイアウト、共通)
- `interfaces/` - TypeScript インターフェース
- `models/` - データモデル定義
- `services/` - ビジネスロジック(レンダラーなど)
- `stores-universal/` - ユニバーサル状態管理(SWR コンテキスト等)

#### サーバーサイド専用
- `server/` - サーバーサイドコード
- `models/` - Mongoose モデル
- `routes/` - Express ルート(API v3含む)
- `service/` - サーバーサイドサービス
- `middlewares/` - Express ミドルウェア
- `util/` - サーバーサイドユーティリティ
- `events/` - イベントエミッター
- `crowi/` - アプリケーション初期化

#### クライアントサイド専用
- `client/` - クライアントサイドコード
- `components/` - React コンポーネント
- `services/` - クライアントサイドサービス
- `util/` - クライアントサイドユーティリティ
- `interfaces/` - クライアント固有の型定義
- `models/` - クライアントサイドモデル

#### Next.js Pages Router
- `pages/` - Next.js ページルート
- `admin/` - 管理画面ページ
- `me/` - ユーザー設定ページ
- `[[...path]]/` - 動的ページルート(Catch-all)
- `share/` - 共有ページ
- `login/` - ログインページ

#### 状態管理・UI
- `states/` - Jotai 状態管理(ページ、UI、サーバー設定)
- `stores/` - レガシー状態管理(段階的に states/ に移行)
- `styles/` - SCSS スタイル

#### その他
- `utils/` - 汎用ユーティリティ
- `migrations/` - データベースマイグレーション
- `@types/` - TypeScript 型拡張

## 開発指針

### 新機能開発
新しい機能は `features/` ディレクトリにフィーチャーベースで実装し、以下を含める:
1. インターフェース定義
2. サーバーサイド実装(必要に応じて)
3. クライアントサイド実装(必要に応じて)
4. 共通ユーティリティ

### 既存機能の改修
既存のレガシー構造は段階的に features/ に移行することが推奨される。

### 重要な技術スタック
- **フレームワーク**: Next.js (Pages Router)
- **状態管理**: Jotai (新), SWR (データフェッチング)
- **スタイル**: SCSS, CSS Modules
- **サーバー**: Express.js
- **データベース**: MongoDB (Mongoose)
- **型システム**: TypeScript
- **監視**: OpenTelemetry

## 特記事項
- AI 統合機能(OpenAI)は最も複雑なフィーチャーの一つ
- プラグインシステムにより機能拡張可能
- 多言語対応(i18next)
- 複数の認証方式サポート
- レート制限・セキュリティ機能内蔵
163 changes: 163 additions & 0 deletions .serena/memories/apps-app-development-patterns.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# apps/app 開発ワークフロー・パターン集

## よくある開発パターン

### 新しいページ作成
1. `pages/` にページファイル作成(`.page.tsx`)
2. 必要に応じてレイアウト定義
3. サーバーサイドプロパティ設定 (`getServerSideProps`)
4. 状態管理セットアップ
5. スタイル追加

### 新しい API エンドポイント
1. `server/routes/apiv3/` にルートファイル作成
2. バリデーション定義
3. サービス層実装
4. レスポンス形式定義
5. OpenAPI 仕様更新

### 新しいフィーチャー実装
1. `features/新機能名/` ディレクトリ作成
2. `interfaces/` で型定義
3. `server/` でバックエンド実装
4. `client/` でフロントエンド実装
5. `utils/` で共通ロジック

### コンポーネント作成
1. 適切なディレクトリに配置
2. TypeScript プロパティ定義
3. CSS Modules でスタイル
4. JSDoc コメント追加
5. テストファイル作成

## 重要な設計パターン

### SWR データフェッチング
```typescript
const { data, error, mutate } = useSWR('/api/v3/pages', fetcher);
```

### Jotai 状態管理
```typescript
const pageAtom = atom(initialPageState);
const [page, setPage] = useAtom(pageAtom);
```

### CSS Modules スタイリング
```scss
.componentName {
@extend %some-placeholder;
@include some-mixin;
}
```

### API ルート実装
```typescript
export const getPageHandler = async(req: NextApiRequest, res: NextApiResponse) => {
// バリデーション
// ビジネスロジック
// レスポンス
};
```

## ファイル構成のベストプラクティス

### フィーチャーディレクトリ例
```
features/my-feature/
├── interfaces/
│ └── my-feature.ts
├── server/
│ ├── models/
│ ├── routes/
│ └── services/
├── client/
│ ├── components/
│ ├── stores/
│ └── services/
└── utils/
└── common-logic.ts
```

### コンポーネントディレクトリ例
```
components/MyComponent/
├── MyComponent.tsx
├── MyComponent.module.scss
├── MyComponent.spec.tsx
├── index.ts
└── sub-components/
```

## 開発時のチェックリスト

### コード品質
- [ ] TypeScript エラーなし
- [ ] ESLint ルール準拠
- [ ] テストケース作成
- [ ] 型安全性確保
- [ ] パフォーマンス影響確認

### 機能要件
- [ ] 国際化対応(i18n)
- [ ] セキュリティチェック
- [ ] アクセシビリティ対応
- [ ] レスポンシブデザイン
- [ ] エラーハンドリング

### API 設計
- [ ] RESTful 設計原則
- [ ] 適切な HTTP ステータスコード
- [ ] バリデーション実装
- [ ] レート制限対応
- [ ] ドキュメント更新

## デバッグ・トラブルシューティング

### よくある問題
1. **型エラー**: tsconfig.json 設定確認
2. **スタイル適用されない**: CSS Modules インポート確認
3. **API エラー**: ミドルウェア順序確認
4. **状態同期問題**: SWR キー重複確認
5. **ビルドエラー**: 依存関係バージョン確認

### デバッグツール
- Next.js Dev Tools
- React Developer Tools
- Network タブ(API 監視)
- Console ログ
- Lighthouse(パフォーマンス)

## パフォーマンス最適化

### フロントエンド
- コンポーネント lazy loading
- 画像最適化
- Bundle サイズ監視
- メモ化(useMemo, useCallback)

### バックエンド
- データベースクエリ最適化
- キャッシュ戦略
- 非同期処理
- リソース使用量監視

## セキュリティ考慮事項

### 実装時の注意
- 入力サニタイゼーション
- CSRF 対策
- XSS 防止
- 認証・認可チェック
- 機密情報の適切な取り扱い

## デプロイ・運用

### 環境設定
- 環境変数管理
- データベース接続
- 外部サービス連携
- ログ設定
- 監視設定

このガイドは apps/app の開発を効率的に進めるための包括的な情報源として活用してください。
Loading
Loading