Changelog
tilttek/generator-bundleAll notable changes to tilttek/generator-bundle will be documented in this file.
Updates should follow the Keep a CHANGELOG principles.
0.1.0-alpha - 2026-11-12
Added
CachedCatalog: the lists and generators of the files and directories, or ofconfig/generatorsof the project, kept in a PHP file of the cache and written again in debug when a file changes, even in the second the cache was written,FileChangesasking the files each time;GeneratorFactory, which builds the publicGeneratorwith the configured limits, language and grammars, and the dice oftilttek/dice-bundlewhen it is installed.- The configuration
tilttek_generator: paths, default language, aspirated words of the French grammar, words with a stressed a of the Spanish grammar, limits, Twig's cache, the library's random tables (tables) and their language (tables_locale, English or French), the store of the states, its pool and its lock (state), and the draw API with its public generators, clients, tokens and rate limiters; the public draws limited by address by default, sixty a minute (api.public_limit), on the rate limiter builder ofsymfony/rate-limiter, and the container refused byPublicRateLimiterPasswhen that builder is missing. - The Twig function
tilttek_draw, the template@TilttekGenerator/draw.html.twig, and the Stimulus controller that draws again in place, writing results as text, with its status andaria-busy, mapped for AssetMapper. - The commands
tilttek:generator:validate, which lists every problem,tilttek:generator:create, which writes a text, structured, map or memory generator, or copies a random table of the library under a new name (--from), in English or in French (--locale), andtilttek:generator:draw, which draws from the state kept under--key, forgotten first by--reset, and writes the state it leaves. - The tables with a memory:
MemoryTables, public, which draws from the state kept by generator and key and keeps the new one, and reads, sets and forgets a state, refusing an empty key or one of more than 200 characters (InvalidStateKey); theStateStoreport, public, on a PSR-6 cache pool without expiry under hashed keys (CacheStateStore, keys hashed by SHA-256), in memory reset with the kernel (InMemoryStateStore), or the application's own service; theStateLockport, off by default, on Symfony's lock factory thatstate.locknames (SymfonyStateLock, a lock by a SHA-256 hash of the generator and the key, waited for and kept 30 seconds at most), which holds a draw from the load of its state to the save of the new one, and a setting or a forgetting, so that two draws on the same state do not lose an update;symfony/locksuggested. - The draw API:
ApiAccess,ClientandGrant, off by default, public generators counted by address and clients by token compared in constant time;DrawRequest, which reads the state a table with a memory sent back (state[name]=value) and answers the new one, and refuses with a 400 a name, a seed or a state that is not UTF-8;DrawControllerand its route, answering JSON withno-store, and problem details for 400, 401, 403, 404, 422 and 429 withRetry-After, the cause of a failed draw told to a client and not to the public; theDrawRateLimiterport on Symfony's rate limiters. - The documentation in
doc/, one file per topic, indexed by the README. CONTRIBUTING.md,SECURITY.mdandCODE_OF_CONDUCT.md.