Журнал изменений

Официальный сайт SLAED CMS

Журнал изменений

Фильтр и поиск

Всего: 1263 Доступных коммитов | Отфильтровано: 1263 Коммиты | Страница: 1 из 127
Вчера (13.10.2026)
Docs: The 2027 plans of the admin UX, the connector and Vine are checked against the code of today
Автор: Eduard Laas | Дата: 21:23 13.10.2026

A review of three 2027 plans brings them in line with what the tree now is: the schema conventions, the reserved names of the readable addresses, the scheduler as it registers jobs today and the settings that are already taken. Nothing is implemented; the plans only stop promising what the code would contradict.

Core changes:

  1. Admin UX (docs/2027-ADMIN-UX.md):
  2. The status says that the decisions are taken and nothing is built; the dated remarks and the finished fix of the configuration form leave the plan

  3. Eight ideas instead of nine, the dark theme of the panel no longer an open check, the dial of the list options left to its own roadmap step

  4. The keyboard state of table sorting and the action journal of an undo are described as they are
  5. Connector (docs/2027-CONNECTOR.md):
  6. The rewrite rule of /api/v1/ stands before the fallback to index.php, and the name api is reserved in docs/10-URL-2026.md

  7. Own-site calls of the scheduler keep working over http and loopback; jobs register in the three places the core uses today, or in the module list once docs/2027-CORE.md delivers it

  8. Every column takes its domain from the schema conventions of docs/NODE.md
  9. The update check keeps upcheck and channel in config/api.php, because config/update.php holds the marks of the 6.3 data updates; the compared version is the leading MAJOR.MINOR.PATCH of $conf['version']

  10. The update package accepts only the tracked top-level entries of the release tag
  11. Vine monitor (docs/2027-VINE-MONITOR.md):
  12. The module stands on the floor of the release it ships with: PHP 8.4, MariaDB 10.5.2+ or MySQL 8.0.16+
  13. Every column takes its domain from the schema conventions; moments are DATETIME in the site zone the connection runs on, timers unix seconds

  14. An admin action is recorded by the connector audit and by the journal of checkAdminPost(); the public page is /vine; an installed site gets the tables from the step of update.php of its version

Benefits:

  • The 2027 plans start from the current tree instead of an older one

Technical notes:

  • Documentation only; no code, schema or configuration changes
Feature: The Phoenix presentation ships Full HD videos in portrait and landscape and a cleaner text of its scenes
Автор: Eduard Laas | Дата: 21:23 13.10.2026

The Phoenix package in public/phoenix gets four Full HD exports for sending, captured from the browser at full resolution, a portrait layout of its scenes for the phone format, and a pass over its copy. Version 1.0.3.

Core changes:

  1. Exports and their build (public/phoenix/exports/, public/phoenix/presets/production/video-fullhd.json):
  2. Light and dark at 1080 x 1920 (9:16) and 1920 x 1080 (16:9), about 83 seconds, H.264 Main yuv420p, 30 fps, the approved AAC track copied without re-encoding

  3. The preset names the viewport, scale and encoder settings of both profiles
  4. The two 720p exports are encoded again
  5. Scenes and player (public/phoenix/index.html, public/phoenix/player/scene.js, public/phoenix/player/timeline.js, public/phoenix/player/styles.css):

  6. Headings and kickers lose their trailing full stops; ДНК replaces DNA; several lines are reworded
  7. The typed lines of the work scene move on their own phases, and the assembly cue starts at 42.5 s
  8. Text sizes of the scenes read from the theme tokens, with a portrait layout for the phone format
  9. The cache marks of the player files are raised
  10. Package files (public/phoenix/manifest.json, public/phoenix/README.md, public/phoenix/checksums.json):
  11. The manifest lists all six exports at version 1.0.3, the README describes the Full HD files, the checksums follow

Benefits:

  • The presentation can be sent as a file in both phone and screen format without upscaling the 720p videos

Technical notes:

  • About 139 MB of new video; every file stays below the 100 MB limit of GitHub
  • No code of the site changes
Feature: Readable addresses get one registry of routes, and every writer gives, moves and retires its paths
Автор: Eduard Laas | Дата: 21:22 13.10.2026

Batches 0 to 2 of the plan of readable addresses before 8.0 (steps 67 to 69 of docs/ROADMAP-2026.md). The address switch that could never work leaves the panel and the configuration, one table _routes with the class Route holds every path an entity was ever given, and each writer of a material, type, category, topic, account or poll writes its paths inside its own transaction. Links still read index.php?...; parsing, building and the redirect follow.

Core changes:

  1. The switch out and the inventory (admin/modules/config.php, config/global.php, core/system.php, public/update.php):
  2. rewrite, sep, tsep, title and ctitle leave the panel, the shipped configuration, the 6.2 configuration update.php writes, the language constants of the fields and the help of the settings

  3. getSeoUrl() always answers the query address and drops the title keys; the rewrite branches of getSeoRoute(), the sitemap, the panel monitor, NodeView and blocks/center_forum.php are gone

  4. The inventory of literals, public operations, num readers, writers and the query baseline stands in docs/10-URL-2026.md; the plan left docs/2027-CORE.md, and no 6.2 path form is parsed

  5. Registry and name (core/classes/route.php, storage/update/sql/table.sql, storage/update/sql/table_update6_3.sql):
  6. _routes: path, kind, oid, state (current, former, gone) and cur generated from state; unique path and one current path per entity

  7. Route finds a path, gives the first one, moves it without a chain, marks every path of a gone entity gone, answers a set in one query and keeps the reserved operations and type names; a write inside an open transaction runs behind a savepoint, a racing writer takes the next suffix

  8. Route::setRouteName() is the one rule of the field Address: the given name, else the current name under a new prefix, else the first path from the title

  9. filterSlug() transliterates the letters of all six locales from one table, decodes stored entities and cuts to 80
  10. Node writers (core/classes/node/service.php, core/classes/node/query.php, core/classes/node/entity.php, core/classes/node/input.php, modules/node/index.php, modules/node/admin/index.php):

  11. A material gets its first path where its publication comes, by hand or by the scheduled delivery, never for a type with ext support; the panel form moves it by the field Address once it has one; a deletion marks it gone

  12. A type takes its name as its path and loses it on deletion; a new name is refused by Route::checkTypeName() besides RESERVED, so the name of a deleted type is never registered again

  13. Categories of a type get, move and lose their paths, the subtree on deletion; Node and the writer read carry the current path as Node::$path

  14. A refused path is a storage failure and rolls the whole write back
  15. Writers outside Node (admin/modules/categories.php, modules/forum/index.php, modules/account/index.php, modules/account/admin/index.php, admin/index.php, public/setup.php, modules/voting/admin/index.php):

  16. Forum categories, new topics, accounts (activation, OAuth sign-up, the panel, the first administrator) and polls write the row and its path in one transaction; deletions mark every path gone

  17. A reply the recycle section turns into a topic gets its path; the recycle section keeps the path of a topic
  18. The forms of category and poll carry the field Address with the whole path as hint, label _ADDRESS
  19. getCategoryMap() joins the registry and carries path under the new cache key catmap/path
  20. The reads of the topic, the profile and the poll join the registry for their current path
  21. Tests (tests/Unit/RouteRegistryTest.php, tests/Unit/RouteWriterTest.php, tests/Support/registry_probe.php, tests/Support/route_probe.php, tests/Support/guard_probe.php):

  22. The registry: transliteration per locale, both cuts, suffixes after current, former and gone paths, no chain, the keys, cur bound to state, a race of two writers, the reserved words held against the switches and the tree

  23. The writers over real requests, and a trigger refusing a path leaves neither the entity nor a route row in each of the seven writers

  24. The contracts of Node, NodeInput, NodeService, the statement budgets and the reuse of a type name follow

Benefits:

  • An address once given stays bound to its entity, so 301 and 410 can be answered from one table
  • The index of a search engine moves once, from the 6.2 query addresses straight to the final form

Technical notes:

  • New table _routes in table.sql and table_update6_3.sql; the stand got it empty, batch 3 fills it on migration
  • Breaking: rewrite, sep, tsep, title and ctitle are no settings any more; filterSlug() lost its separator argument
  • Breaking: the name of a deleted Node type cannot be registered again
  • Breaking: NodeService::addNodeCategory() and updateNodeCategory() take the field Address as an optional argument, Node and NodeInput end in an optional path

Docs: The schema reference says which connections run the contract and how timers, refusals and duplicates are answered
Автор: Eduard Laas | Дата: 15:50 13.10.2026

A check of the schema reference against the code found five statements wider than the code. The reference now names exactly what the code does; nothing else changes.

Core changes:

  1. Schema conventions (docs/NODE.md):
  2. Every connection of the site, the panel, setup.php, update.php, the tools and the probes that load the code runs the contract of Database; a probe that only loads a fixture opens PDO itself

  3. SQL compares a timer with UNIX_TIMESTAMP() or a bound time(), not only the first
  4. An OAuth return address over 512 falls back to index.php instead of being refused
  5. Every writer answers a taken address with _ERROR_EMAIL; only those that also write a name answer a taken name
  6. Connection and history (docs/ARCHITECTURE.md, docs/VERSIONS.md):
  7. "Database Boundary" and the entry of 2026-10-13 name the same set of connections
  8. The forum line says that a topic is new only when it changed after the last visit

Benefits:

  • The reference promises nothing the code does not do

Technical notes:

  • Documentation only; no code, schema or configuration changes
Docs: The schema gets its lasting reference, its plan closes, and readable addresses get their own plan before 8.0
Автор: Eduard Laas | Дата: 15:45 13.10.2026

Batch 7 of the schema plan moves what lasts into the permanent reference and deletes the plan. The human-readable addresses leave the 2027 core plan and become a plan of their own before the release: one address per page without an id, held in a registry of routes, so the index of a search engine moves once.

Core changes:

  1. Schema reference (docs/NODE.md, docs/ARCHITECTURE.md, docs/VERSIONS.md, docs/TESTS.md, README.md, UPGRADING.md):
  2. docs/NODE.md gets "Schema conventions": the column domains, the time rule, the connection contract, the collation as one source, writes that fit their columns, unique addresses with NULL for none, keys that serve the queries

  3. docs/ARCHITECTURE.md names the connection contract of Database and points at the conventions and their test
  4. docs/VERSIONS.md records the schema of 2026-10-13 with its breaking changes for code outside the tree
  5. README.md and UPGRADING.md recommend MySQL 8.4 or MariaDB 10.11 and newer and state the collation; UPGRADING.md lists what code outside the tree must change

  6. docs/TESTS.md lists SchemaConventionTest.php
  7. Schema plan closed (docs/7-SCHEMA-2026.md, tests/Support/route_probe.php):
  8. the plan file is deleted; the comment of the route probe no longer names it
  9. Plan of readable addresses (docs/10-URL-2026.md, docs/2027-CORE.md, docs/ROADMAP-2026.md):
  10. docs/10-URL-2026.md: addresses without id (/files/adaptivnyi-shablon-pure, /files/moduli, /forum/modul-poiska, /users/eduard), one registry _routes with the current and every former path, an address never reused, 410 for a deleted entity, the type prefix and a fixed /, page in place of num

    • the design: the registry with one current row per entity, the name in six locales, when an entity gets and
changes its path, the migration order, parsing in two stages around the database, building from passed paths,
the query rules, one final redirect after the access check
  • seven batches with their tests and the estimate
  • docs/2027-CORE.md drops its item 7 and the steps and questions of it, pointing at the new plan
  • docs/ROADMAP-2026.md: step 66 ticked, steps 68-74 for the new plan, the close moves to step 75

Benefits:

  • The schema conventions live in the permanent reference and are held by a test
  • The addresses change once, before the release, in their final form

Technical notes:

  • Documentation only; no code, schema or configuration changes
  • The address plan is not started; its first step is 68 of the roadmap
Feature: The Phoenix presentation becomes a self-contained package in public/phoenix with its own player, presets and exports
Автор: Eduard Laas | Дата: 00:19 13.10.2026

The Phoenix codex leaves the demo folder: public/phoenix carries the presentation as one package that depends on no template or demo file and can be embedded on any page of the same origin by one script. The old demo page now only forwards to the package, so its address keeps working.

Core changes:

  1. The package (public/phoenix/):
  2. index.html is the player, embed.js the integration that opens it over the current page in an isolated iframe and reveals that page at the end without a reload

    • window.SlaedPhoenix with setPlay(), setStop() and isPlaying(), events slaed:phoenix:ready, reveal, end, error
    • data-sl-phoenix attributes for a button, with preset, sound, volume and autoplay
  3. player/ holds the scene, audio, particles, timeline and bridge scripts and the styles; vendor/ the copies of base.css and the icon font it needs, logos/ and images/ its pictures

  4. presets/ holds dark and light and the production presets of the audio edit, the generations and the export
  5. audio/theme.mp3 is the 83.352 s theme, audio/reserve.mp3 the reserve; exports/ the dark and light 720p videos
  6. archive/ keeps the source takes, the WAV master, the pronunciation samples and the earlier assets
  7. manifest.json and checksums.json describe the package, README.md documents the integration
  8. examples/ shows the embed on a page and on a nested page
  9. The demo page (public/demo/phoenix-codex.html, public/demo/assets/phoenix-codex*):
  10. phoenix-codex.html forwards to the package with its query and hash, through phoenix/redirect.js
  11. the old scripts, styles, pictures and sounds of public/demo/assets/phoenix-codex* are removed

Benefits:

  • The presentation can be moved or embedded as one folder, without the template or demo files
  • The old demo address keeps leading to the presentation

Technical notes:

  • The package adds 66 files, 117 MB; the largest are archive/master.wav (14 MB) and the two exports (13-14 MB)
  • The player needs HTTP(S) and the same origin as the page that embeds it
  • No code of the CMS changes
Feature: A clean 6.2 site migrates into Node again, and setup.php installs on every server it supports
Автор: Eduard Laas | Дата: 00:17 13.10.2026

Batch 6 of the schema plan rehearses update.php on a clean 6.2 site, which the owner chose over a production dump: the 6.2 path renames the seven source tables of Node again, so any 6.2 site reaches Node, while update.php stays the internal tool of the maintainer. The rehearsal pinned the root cause of the fresh installation that had failed in NodeProfileTest since 2026-10-04: setup.php opened its session a second time.

Core changes:

  1. The source tables of Node on the 6.2 path (storage/update/sql/table_update6_3.sql):
  2. Batch X renames the 6.2 columns of _news, _pages, _faq, _help, _links, _files and _content to the 6.3 names the migration reads

    • sid, pid, fid and lid become id, catid becomes cid, hometext and bodytext become intro or body
    • ip_sender, date, totalvotes, totalcomments, associated and homepage take their 6.3 names
  3. rencol leaves a table already in the 6.3 shape untouched, so the production path is unchanged
  4. The installer session (public/setup.php):
  5. session_start() runs only when no session is open, as core/security.php does

    • an open session (session.auto_start, a router) printed a notice before the JSON of every part of the run
    • the run then stalled and its first part read a config/db.php that did not exist (2002)
  6. Tests (tests/Support/install_probe.php, tests/Unit/UpdateSiteTest.php, tests/SchemaUpdateValidationTest.php):
  7. the update probe runs the second stage as the main administrator and reads the materials it made
  8. UpdateSiteTest checks that the two news and the file of the 6.2 fixture become materials with intro and body
  9. the seven source tables join _modules as legacy tables the schema file may name
  10. Plan and reference (docs/7-SCHEMA-2026.md, docs/ROADMAP-2026.md, docs/NODE.md):
  11. the decisions "Any 6.2 site migrates" and "The installer starts its session once", the result of batch 6, step 65 ticked

  12. NODE.md no longer says that a clean 6.2 stops at the counter step

Benefits:

  • A clean 6.2 site of the installer of 6.2 carries all seven old modules with comments, replies and resources
  • The fresh installation passes NodeProfileTest again, on MariaDB 11.8, MySQL 8.4 and MariaDB 10.11
  • The second stage of update.php is guarded by a test for the first time

Technical notes:

  • Rehearsed with tests/Support/install_probe.php over table.sql and insert.sql of 6.2 on MariaDB 11.8, MySQL 8.4.6 and MariaDB 10.11.14: no failed statement in three runs, the schema equal to a clean installation

  • UpdateSiteTest stays MariaDB only: MySQL 8.4 refuses the zero-date defaults of its fixture dump
  • update.php is still not shipped; UPGRADING.md still says the release updates no 6.2 site
Эта неделя (12.10.2026)
Feature: Every address is unique with NULL for none, the keys serve the queries that run, and the Phoenix codex plays to its own soundtrack
Автор: Eduard Laas | Дата: 22:58 12.10.2026

SCHEMA batch 5 (roadmap step 64): the three account tables hold one account per address, every writer answers a taken address instead of failing silently, the covered, unused and prefixed keys leave and the missing ones enter, each checked by EXPLAIN on the stand. update.php refuses a site with a shared address before it changes anything. The Phoenix codex stand is reworked around a timeline mapped onto its recording.

Core changes:

  1. Schema and its 6.2 path (storage/update/sql/table.sql, storage/update/sql/table_update6_3.sql):
  2. UNIQUE email on _users, _admins and _users_temp, each VARCHAR(255) DEFAULT NULL; an empty address becomes NULL
  3. Out: the five covered keys, 21 unused keys, every (191) prefix but _node_assets.src, and _nodes.expires, which table.sql dropped on 2026-10-05 while installed sites kept it

  4. In: forum pid_ltime, pid_time, cid_pid_status_ltime, uid_pid; comment modul_status_deleted, uid_status_deleted; search word_modul whole, modul_time; users newslet; nodes pinned; categories modul_ordern; blocks status_weight; node_support queue and admin with prio DESC

  5. _node_categories on PRIMARY KEY (nid, cid) without its id; _node_relations and _points spell ON UPDATE RESTRICT
  6. setidx() rebuilds a key only while its definition differs; the key block runs after the collation, Cleanup last
  7. modcol() reads current_timestamp() and DEFAULT_GENERATED as CURRENT_TIMESTAMP, so a converted table is not rebuilt
  8. movenet carries a missing address as '' into _user_oauth
  9. Duplicate entries (core/classes/pdo.php, modules/account/index.php, modules/account/admin/index.php, admin/modules/admins.php, admin/index.php):
  10. Database::getSqlTwin() names the unique key a duplicate entry refused, on MariaDB and MySQL messages
  11. Registration, activation, OAuth registration, settings save and both panels answer a taken address or name

    • activate() keeps the pending row when its insert fails; the OAuth registration writes NULL for no address
    • Both panels check a taken address by the row found instead of a case-sensitive compare
    • The administrators form shows the refusal of an edit, which it dropped before
  12. The user list of the panel and the support mail list take a NULL address
  13. Update of a 6.2 site (public/update.php):
  14. checkUpdateEmails() runs beside the preflight: each address held twice is a failed row naming its accounts, and the run stops before it closes the site or writes a file; no address is rewritten

  15. Queries without a key (modules/account/index.php, core/classes/node/service.php):
  16. The profile by name matches the name key and then the exact bytes
  17. The category update and delete of NodeService narrow the materials by their type
  18. Tests (tests/SchemaConventionTest.php, tests/Unit/UniqueEmailTest.php, tests/Unit/UpdateSiteTest.php, tests/Unit/NodeModelTest.php, tests/Support/*):
  19. SchemaConventionTest fails on a prefix a key could hold whole and on a plain key covered by another
  20. UniqueEmailTest drives a taken address in the settings and both panels, a registration racing a held one, a late activation and two OAuth accounts without an address over real requests

  21. The update probe stops on an address held twice before it writes anything; the node probe reads descending parts
  22. Plan, roadmap and reference (docs/7-SCHEMA-2026.md, docs/ROADMAP-2026.md, docs/NODE.md):
  23. The choices of batch 5 under "Decisions"; step 64 ticked; the key tables of the Node reference follow
  24. Phoenix codex stand (public/demo/phoenix-codex.html, public/demo/assets/phoenix-codex.{css,js}, public/demo/assets/phoenix-codex/):
  25. A timeline maps every scene onto the edited recording; the intro and a synth reserve play from the stand
  26. The site itself in the frame, the logos of the admin theme, the history running to the release and beyond
  27. An editor and file library in the laboratory, the continuity between releases, the four principle pictures

Benefits:

  • One account per address: a password reset or unsubscribe by address reaches one account
  • Fewer keys to write, and the lists, counts and per-request reads of the stand use a key
  • A repeated update no longer rebuilds tables it already converted

Technical notes:

  • Breaking change: a missing address is NULL in _users, _admins and _users_temp, never ''
  • Breaking change: update.php refuses a site whose account tables share an address; the operator resolves it by hand
  • The stand keeps its three shared addresses on the active accounts; 35095, 35124 and 35444 hold NULL
  • getSqlTwin() is checked against the MySQL message format only, no MySQL server ran
Feature: No flag, counter or text of the schema is NULL, account languages are codes, and an empty birthday stays empty
Автор: Eduard Laas | Дата: 21:08 12.10.2026

SCHEMA batch 4 (roadmap step 63): a column is nullable only where NULL means none or not recorded, the 6.2 language names turn into the codes of lang/ in every language column, and the birthday no longer receives the day of the save when its field is left empty. The stand was put on the release schema and collation on the way.

Core changes:

  1. Schema and migration (storage/update/sql/table.sql, storage/update/sql/table_update6_3.sql):
  2. _admins.title, super, smail, _forum.body, comments, _newsletter.body, _users.occ, origin, sig, viewmail turn NOT NULL

    • _admins.password and _users.sig are NOT NULL without a default; every insert supplies them
    • The migration fills NULL rows with the empty value first; a NULL viewmail becomes the 0 of a hidden address
  3. _users.lang becomes VARCHAR(10) ascii_bin with an empty default; a value that is neither a name nor a code is emptied
  4. _users.grp becomes INT UNSIGNED, a negative group is 0 first
  5. A birthday equal to the day of the registration is the false one of the date filter and becomes NULL
  6. Language codes of an updated site (public/update.php, admin/modules/lang.php):
  7. setUpdateLangs() maps the 6.2 names in _admins, _blocks, _categories, _message, _users and _voting by getUpdateLangs()

    • An account language no lang/ file serves goes back to the empty site language; content rows keep theirs
  8. setUpdateConfig() reads the same map; configsave() keeps the stored language when the form sends none
  9. Empty birthday (core/security.php, core/helpers.php, modules/account/index.php, modules/account/admin/index.php):
  10. The date filter of getVar() answers empty for an empty or invalid value instead of today
  11. getTplAddDateTime() leaves a date-only control empty; both writers pass null as the default
  12. viewmail is read as truthy by the settings switch, the cabinet lamp and the panel form
  13. Inserts that supply sig (admin/index.php, public/setup.php, modules/account/index.php, tools/node-profile.php):
  14. Registration, OAuth, the first administrator, the installer and the profile tool name sig
  15. Tests (tests/SchemaConventionTest.php, tests/Unit/SchemaNullTest.php, tests/Unit/UpdateSiteTest.php, tests/Support/*, tests/Fixtures/update62/site.sql):
  16. testNullMeansNoneOrNotRecorded() allows NULL only for a moment and eight named columns; every lang column is checked
  17. SchemaNullTest drives route_probe.php in its null mode: a fresh account, the profile, the settings, a cleared birthday
  18. UpdateSiteTest checks the empty values and the language codes after three runs over the 6.2 fixture
  19. The probes supply the columns that lost their NULL
  20. Plan and roadmap (docs/7-SCHEMA-2026.md, docs/ROADMAP-2026.md):
  21. The choices of batch 4 and the release state of the stand under "Decisions"; step 63 ticked

Benefits:

  • NULL carries one meaning across the schema, and the convention test holds it
  • A profile no longer shows a birthday nobody entered
  • One language value per account, the same codes the configuration uses

Technical notes:

  • Breaking change: getVar(..., 'date') returns '' instead of today's date for an empty or invalid value; code outside the tree that relied on the fallback must pass its own default

  • Breaking change: _users.lang holds a code (ru, en, ...) or '' for the site language, no longer a 6.2 name
  • The migration is idempotent over the 6.2 fixture: three runs give the same rows and a schema equal to a clean install
Docs: The journals of the site get their reference, the plan of the journals closes, and the Phoenix codex tells the history as a workshop
Автор: Eduard Laas | Дата: 19:35 12.10.2026

ADMIN-LOG batch 4 (roadmap step 62): the lasting part of the journals plan moves into docs/ARCHITECTURE.md, "Journal Boundary", the help of "Безопасность" describes the journal view and the login tab, and the plan file is deleted. The Phoenix codex stand replaces its archive pictures with a drawn workshop and the four principles.

Core changes:

  1. Journal reference (docs/ARCHITECTURE.md, docs/VERSIONS.md):
  2. New section "Journal Boundary": the channels of Logger, the action record of checkAdminPost(), the one writer of a login, _login_log and its cleanup, the table view and the link of a module

  3. VERSIONS.md gains the entry of the journals with what breaks for code outside the tree
  4. Help of Security (admin/info/security/ru.md):
  5. The journal view with its filters and the new section "Журнал входов"; the later sections are renumbered
  6. Plan and roadmap (docs/9-ADMIN-LOG-2026.md, docs/ROADMAP-2026.md, docs/2027-CORE.md, docs/2027-CONNECTOR.md):
  7. docs/9-ADMIN-LOG-2026.md deleted; step 62 ticked
  8. The 2027 plans point at "Journal Boundary" instead of the deleted plan
  9. Tests (tests/Unit/AdminLogTest.php, tests/Unit/LoginLogTest.php, tests/Support/login_probe.php):
  10. Header comments name the reference instead of the deleted plan
  11. Phoenix codex stand (public/demo/phoenix-codex.html, public/demo/assets/phoenix-codex.{css,js}, public/demo/assets/phoenix-codex/development-environment.svg):
  12. The history is a workshop of code, infrastructure, interface and path, with the years running under it
  13. The four principles of the project with their original illustrations; a laboratory of route, guard and themes
  14. The motto "Всё великое просто, но не примитивно!" on the cover and the finale; the play runs 37.5 seconds

Benefits:

  • The journals are described in one reference instead of a plan that is done
  • The help of the screen matches what the panel shows

Technical notes:

  • No code change outside the stand; test comments only
  • The stand files are demo only and ship no change to the theme

Страница 1 из 127. Всего: 1263

1 2 3 4 5 6 7 8 9 10 … 127
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь
Подтверждение

Поделиться
QR-код

Предварительный просмотр