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

simba77
fix(news): allow comment moderation on hidden articles
simba77
fix(news): preserve legacy comma-separated tag parsing
simba77
style: name every argument of calls using named arguments
simba77
refactor(news): reach collections through published contracts
Move post-commit callbacks, file registration, search rebuilds and declaration synchronization into the collections API and enforce the boundary in ArchitectureTest. The comment feed reads its addresses in one batch.
simba77
fix(news): isolate availability from other modules and batch addresses
Update state and pending migrations are asked per module, so the failed update of an unrelated module no longer takes news or collections down. Section paths are read once per list, removing a query per record from news lists, the sitemap and the admin list.
simba77
fix(collections): keep lapsed upload contexts and pasted files
A form saves after its context lapsed or was removed, takes over the files that are still there and renews the context when shown again. Records that show a file in their text now hold it, so deleting the record it was uploaded for no longer breaks them.
simba77
fix(collections): let partial writes and retained relations through
A partial write answers only for what it changes, so old values of other fields and unavailable files no longer stop bulk actions. Relation access is checked for new references only: an editor of the source can save a record whose target they cannot open.
simba77
fix(news): import inverted publication windows as hidden
An article of 9.9 whose start follows its end was never shown, so it stays hidden without the end date and the original dates go to the update report. Other import failures now name the legacy record and the reason.
simba77
fix(news): keep pages available before collection migrations
Menus are built on every page and the public catch-all answers every unknown address, so neither may read columns that pending migrations have not added yet.
simba77
fix(news): restore voting and public address handling
Send votes by POST from the widget. Accept dots in section addresses by trying article routes first. Answer malformed section paths with 404 and treat visitor search input that normalizes to nothing as no query.