История коммитов

.
refactor(library): extract ArticleCommentsController at /library/article/{id}/comments
Delete includes/comments.php, register new route, fix page_title support in Comments.php,
align FileCommentsController to use PageMeta with page_title field.
.
refactor(mail): extract unblock action to invokable controller
.
refactor(mail): extract block action to invokable controller
.
docs(module-refactoring): update and simplify refactoring guide
.
refactor(mail): extract blocklist index to invokable controller
.
docs: add module refactoring guide
.
feat(mail): refactoring the structure of the mail module
.
refactor(library): extract CreateSectionController at /library/section/create
Migrates mkdir page to a dedicated admin-only controller with Eloquent insert.
Adds $fillable to LibraryCategory model.
.
refactor(library): extract CreateArticleController at /library/article/create
Migrates addnew page to a dedicated controller with Eloquent insert,
PSR-7 file uploads for text/image, flood protection, tags via Hashtags,
and proper access check. Adds $fillable to LibraryText model.
.
refactor(library): extract SearchController, add FULLTEXT search with XSS/operator sanitization
Migrates /library/search to a dedicated controller with GET-only form,
repository-backed FULLTEXT search on text/name, PageMeta titles, and
sanitization of FULLTEXT boolean operators to prevent SQL syntax errors.