Skip to content

Changelogs ​

This section tracks the history of significant changes, refactors, and updates to the IGNIS framework.

Planned Features ​

FeatureDescriptionPriority
Schema MigratorLoopBack 4-style auto schema migration without Drizzle KitHigh

Recent Changes ​

DateTitleType
2026-10-23Formatting Moves to bun fmt and bunfig.tomlBreaking
2026-10-23The HTTP Repository Can Call the find-one RouteEnhancement
2026-10-22tsconfig Follows Bun, and the App Compile Type-ChecksEnhancement
2026-10-22Dependencies at Their Latest, Eight Peer Majors RaisedBreaking
2026-10-21BunCompiler Compiles Bun Workers Into the BinaryFeature
2026-10-21The App Preset Lists Its Environment Keys and Ships Its Ignore FilesEnhancement
2026-10-21The App Image Refuses .env Files in Its Build ContextSecurity
2026-10-21One Lint Command, .configs Split by Job, and a Library PresetFeature, Breaking Change
2026-10-20The Build Stamp Is Baked at Compile and Resolved From Git at StartFeature, Breaking Change
2026-10-20isNullableDiscriminator for the Principal EnricherFeature
2026-10-20oxlint Config Without Loading ESLintEnhancement
2026-10-20IGNIS 0.3.0 Is Stable, and One Command Creates an IGNIS AppFeature, Enhancement
2026-10-18IGNIS 0.2.2 Is StableEnhancement
2026-10-18dev-configs Gains no-leaked-render, Six More Accessibility Rules and a Shared Ignore ListEnhancement
2026-10-18HttpRepository Takes an Extra Query, a Default Limit and SearchesEnhancement
2026-10-18Decorators Work in a Split Chunk Without Importing reflect-metadata FirstBug Fix
2026-10-18Injecting a Class That Shares Its Name With the Bound One Is an ErrorBug Fix
2026-10-18Auto Artifacts in Vite BuildsFeature
2026-10-18A _name Variable May Name an Omitted ValueEnhancement
2026-10-18noImplicitAny Is On in dev-configs, and Sibling Packages Pin Each Other ExactlyBehavior Change
2026-10-18FilterSchema Has a Real Type, and IGNIS Compiles Under noImplicitAnyType Change
2026-10-18Auto Artifacts Register Classes in .tsx FilesBug Fix
2026-10-18An Application Without casbin Compiles AgainBug Fix
2026-10-18ArtifactGroup.application Leaves Out Ignored FilesFeature
2026-10-18The Browser Auto Index Is Tree-Shaken AgainPerformance
2026-10-18Faster Source Starts and a Lazy Auto Module in BinariesPerformance
2026-10-18Auto Artifacts Register the Classes a tsc-Built Application RunsBug Fix
2026-10-17Auto Artifacts Root at the Entry Module, and ArtifactGroup.applicationBug Fix
2026-10-17Slice an Artifact Group by Kind With ArtifactGroup.pickFeature
2026-10-17Auto Artifacts Build for the BrowserBug Fix
2026-10-17Auto Artifacts - No Generated Index on Bun, and Typed Groups From a Shared PackageFeature
2026-10-17The Repository Type-Checks With bun checkEnhancement
2026-10-17The Wiki Is Updated With VULCAN's docs-update SkillEnhancement
2026-10-17Dependencies No Package Imported Are RemovedEnhancement
2026-10-17A Repository With a Type-Only DataSource Import Loads Under tscBug Fix
2026-10-17ignis-artifacts Finds Decorators Another Package Re-ExportsEnhancement
2026-10-17lenientFallback for the oxlint PresetsFeature
2026-10-17LINT_IGNORE and Shared Test HelpersFeature
2026-10-17dev-configs House Rules and Type-Only ImportsFeature, Behavior Change
2026-10-17HttpResponseReader Maps a Failed Response to an ApplicationErrorEnhancement
2026-10-16Restate the Decorator Options - Bun Ignores a Package tsconfig extendsBug Fix
2026-10-16dev-configs Gains a Browser TierFeature
2026-10-16IGNIS Lints with oxlint and Formats with oxfmtFeature, Enhancement
2026-10-15TemporalHelper Covers What a dayjs Wrapper DidFeature, Bug Fix, Breaking Change
2026-10-15isApplicationError Checks the Whole ShapeBug Fix, Behavior Change
2026-10-14An Error Hands Out Its Filled TextEnhancement
2026-10-14TemporalHelper Runs in Every Browser and Speaks a LocaleFeature
2026-10-11Error Messages Fill Their PlaceholdersEnhancement, Behavior Change
2026-10-09Const Values Stay LiteralBug Fix, Breaking Change
2026-10-07HttpResponseReader Moves Next to the Server ContractEnhancement
2026-10-07A List Answers Extras Only When They Are Asked ForFeature
2026-10-06Artifact Identity No Longer Rides on the Class NameBug Fix, Behavior Change
2026-10-06The Container Names a Cycle and Caches Any SingletonBug Fix, Behavior Change
2026-10-06dev-configs Gains a React PresetFeature, Behavior Change
2026-10-06The HTTP Connector Follows the Session and Keeps the Server's ErrorsFeature, Bug Fix, Behavior Change
2026-10-02HTTP Connector Errors Keep the Server Message ArgsBug Fix
2026-10-02The HTTP Connector WritesFeature
2026-09-30installBffFetch Matches Whole Path Segments, and Can Be Limited to Named OriginsBug Fix
2026-09-29A Where Can Restrict a Column by a SQL SubqueryFeature
2026-09-29Filter and Update Errors Quote the Rejected Key on One LineBug Fix
2026-09-29A JSON-Path Segment Named null Now Reaches Its Key on PostgresBug Fix
2026-09-26Typed JSON-Path Keys in TWhere<T>, and an Opt-In TOrderEntry<T>Enhancement
2026-09-26A Repository Method Runs Its Own Transaction, and a Double Stubs One In TestsFeature
2026-09-26Order Entries Get One Parser, and toOrderBy Can Sort by an ExpressionFeature, Behavior Change
2026-09-26JSON-Path Where and Order Keys Are Now Qualified With the TableBug Fix
2026-09-25Mail Attachments Read Only Under a Root, and Stop at a Size LimitBreaking, Security, Enhancement
2026-09-25Static Asset Scoping, a Real Body Limit, and Storage File NamesBug Fix, Enhancement, Behavior Change
2026-09-24A Repository Can Inject a Datasource Registered by HandBug Fix
2026-09-23Fixes Found While Rebuilding the ExamplesBreaking, Bug Fix, Security, Behavior Change
2026-09-23Two Repository Types, and CRUD Controllers Without a ConstructorFeature
2026-09-19Dates Move Out, and Every Entry Loads On Its OwnBreaking
2026-09-19A Model Declares Each Fact OnceFeature
2026-09-15One Endpoint Option, Two AudiencesBreaking
2026-09-14A Browser Can Upload Straight To StorageFeature
2026-09-14An Application Declares No ArtifactsFeature
2026-09-14The Container Can Name A Binding Nobody ResolvesFeature
2026-09-14Asset Options Take A Resolver Anywhere They Took A ValueBreaking
2026-09-14A Component Reads Its Options In binding()Enhancement
2026-09-14A Dependency Reached Through An Import Cycle Can Still Name Its ClassFeature
2026-09-14The MetaLink Table Can Live In Your Own Postgres SchemaFix
2026-09-14The Stats Key Header Shows Up In The API ReferenceEnhancement
2026-09-14The Download Route Drops Its PluralBreaking
2026-09-12An Open Stats Route Now Says So At BootEnhancement
2026-09-12Empty Env Values Are Allowed By DefaultBreaking
2026-09-12A Blank Env Line No Longer Beats Its Default At Module LoadFix
2026-09-12An Env Read Now Does What It PromisesBreaking
2026-09-12A Redis Cluster Takes autoConnect Like Every Other TopologyEnhancement
2026-09-11Atlas Serves Any VENIZIA Family CheckoutEnhancement
2026-09-11A Build Stamps Itself, And Health Answers TwiceFeature
2026-09-10Application Configurations and Type-Safe Component OptionsFeature
2026-09-09A Dependency Can Now Name Its Class Instead Of Its KeyFeature
2026-09-09The Log Names Every Reason An AggregateError CollectedFix
2026-09-09A Url From User Input Can No Longer Reach Inside Your NetworkSecurity
2026-09-08Every Storage Method Names Its Bucket and Its ObjectBreaking
2026-09-08A Binding Namespace That Would Lose Its Tag Is RefusedBehavior Change
2026-09-08Storage Serves Safely, Answers 404, and Runs on Bun S3 AloneSecurity
2026-09-07Storage Gains Presigned URLs and Object TaggingNew Feature
2026-09-07The Static-Asset Controller Takes a Configured Bucket and Raw Nested PathsNew Feature
2026-09-07Atlas Recognises the IGNIS Checkout by Its Workspace ManifestBug Fix
2026-09-07Atlas Gains version and changes Tools and a Generated Release TableNew Feature
2026-09-07CRUD Controllers Narrow Their Rows; The Asset Controller Takes Two HooksNew Feature
2026-09-07WorkerApplication Gains configs.projectRoot; BaseKafkaHelper Turns protectedNew Feature
2026-09-07Atlas Gains a symbol Tool and a Generated Symbol TableNew Feature
2026-09-06BullMQHelper and KafkaConsumerHelper Gain Extension SeamsNew Feature
2026-09-06setListHeaders Takes offset + total; toContentRange Is ExportedNew Feature
2026-09-06ignis-artifacts Warns When an --ignore Pattern Hides a Decorated ClassNew Feature
2026-09-06configs.artifacts Accepts { when, index } Entries - the Run-Mode Gate Lives in the ConfigNew Feature
2026-09-06configs.projectRoot Replaces the getProjectRoot() OverrideNew Feature
2026-09-06ignis-artifacts check Compares the Index Body, Not Its Header LineBehavior Change
2026-09-06helpers Declares Its @hono/zod-openapi Peer; the Generated Index Header Names the Command That Produced ItBehavior Change
2026-09-06configs.server Passes idleTimeout and maxRequestBodySize to Bun.serveNew Feature
2026-09-06A Bare @repository() Inherits Its Parent's Model and Datasource; the Console Fallback Warns on the First Log Line; ignis-artifacts Runs SilentlyNew Feature, Bug Fix
2026-09-06applicationEnvironment and the Module Registry Are Shared Across Module Copies; configs.path.base Is Checked at ConstructionBug Fix
2026-09-06ignis-docs-mcp Is Replaced by @venizia/ignis-atlasBehavior Change
2026-09-05@venizia/ignis No Longer Depends on @venizia/ignis-bootBehavior Change
2026-09-05Boot Checks - Every Binding Resolves, No Hand Registration Beside the Generated Index, No Silent Key OverrideNew Feature
2026-09-05List Responses Share One Contract - respond Takes a Range on BaseRestController, and POST /search Gets Its HeadersNew Feature, Bug Fix, Breaking Change
2026-09-04Dependency Floors Raised Across the Chain, Audit Down to Six Accepted AdvisoriesEnhancement, Security, Breaking Change
2026-09-03The Deprecated Runtime Boot API Is Fully RemovedBreaking Change
2026-09-02Bundled and Compiled Apps - Helpers Exports Stay Defined, NODE_ENV Stays a Runtime Read, One Logger Provider Across CopiesBug Fix, Enhancement
2026-09-02Artifacts Register From a Generated Index, and the Runtime Boot System Is RetiredNew Feature, Breaking Change
2026-08-31EventBus Retry Gets Jitter, a Bounded Per-Registration Window, and a Tagged Handler ReferenceNew Feature, Enhancement, Breaking Change
2026-08-31TEntityId Makes a String Id Impossible to Confuse With a StringNew Feature
2026-08-31PolicyDefinition Gets domain_type and domain_id (Release A - Both Forms Written)New Feature, Migration Required
2026-08-31An Application Refuses to Start When scopeFilter Cannot Take EffectSecurity, Behavior Change
2026-08-31PolicyDefinition Reads the Domain Pair and the domain Column Is Gone (Release B)Breaking Change, Migration Required
2026-08-30A Row Scope Every Query Carries, Denied by Default When It Cannot Be ResolvedNew Feature, Security
2026-08-30Where Clauses Now Type-Check the Value, Not Just the ColumnBreaking Change, Enhancement
2026-08-30Tree Utilities Join helpers, and RecursiveTreeSql Bounds Every Recursive Walk in kernelNew Feature, Security
2026-08-30A Real Hash Class Replaces the Removed hash() UtilityNew Feature, Security, Breaking Change
2026-08-30PolicyDefinition.variant Stays Closed by Default, but an App Can Now Declare Its Own Edge KindsEnhancement
2026-08-30authorize() Denies When No Enforcer Is RegisteredSecurity, Breaking Change
2026-08-30getHealth() Never Throws, Imports Keep Progress, and collectionExists() Never Lies About AbsenceBehavior Change, Bug Fix
2026-08-29Casbin Domain Hierarchy - Parent Domains Reach Their ChildrenNew Feature
2026-08-24Two Query Shapes You No Longer Have to RebuildNew API, Enhancement
2026-08-22Log Lines Stop Carrying Color Outside DevelopmentBehavior Change, Enhancement
2026-08-21Services Prove Themselves to Each Other, Without a Shared PasswordNew Feature, Security
2026-08-19Your Own Authentication Strategies, and Tokens That Say Who They Are ForNew Feature, Security, Enhancement, Breaking Change
2026-08-19A Browser BFF That Survives a Second TabNew Feature, Security, Breaking Change, Bug Fix
2026-08-18A Second ID Generator, for IDs People ReadNew Feature
2026-08-18Every Browser-Safe Package Now Ships ESMEnhancement, Bug Fix, Behavior Change
2026-08-13A Browser-Pure Kernel Under @venizia/ignisNew Feature, Enhancement, Internal Refactor
2026-08-12Log Arguments Under %j No Longer Collapse to [Circular]Bug Fix, Security, Behavior Change
2026-08-07Call Sites No Longer Have to Know Which Fields Are TextNew Feature, Enhancement
2026-08-07Nested i18n Fields Become Filterable and SortableNew Feature, Bug Fix, Behavior Change
2026-08-07One Transport for Every Typesense SearchNew Feature, Bug Fix, Behavior Change
2026-08-06AES Keys Derive with PBKDF2, and Ciphertext Carries a Key IdBreaking Change, Security, New Feature
2026-08-05Search Filters Now Mean What Relational Filters MeanSecurity, Breaking Change, Bug Fix, Enhancement
2026-08-02SQLite and PGlite - Two Embedded Relational EnginesNew Feature, Enhancement
2026-08-01Relational Connector Lift - Engine-Neutral SQL TierBreaking Change, Enhancement, Bug Fix, Behavior Change
2026-07-26Search and Mail Errors Join the Framework CatalogEnhancement
2026-07-25ignis-filter - the Filter Vocabulary as a Browser-Safe PackageNew Package, Enhancement
2026-07-25Readable Error Logs and a logLevel Option on getErrorNew Feature, Enhancement
2026-07-21BaseFilteredAdapter Connector Resolution FixBug Fix
2026-07-20fromError - Rehydrate a Server Error on the ClientNew API
2026-07-20Casbin Single-Wave Extraction - Recursive CTE Replaces the Second Query WaveEnhancement, Behavior Change, Bug Fix
2026-07-20Casbin Custom Grants - Operation-Subset Grants in One RowNew Feature, Enhancement
2026-07-18Logger Overhaul - ILogger Tier, Pino Provider, Single-Provider LoadingBreaking Change, New Feature, Enhancement, Bug Fix
2026-07-18Dependency Refresh & DI CleanupMaintenance, Breaking Change, Bug Fix
2026-07-18Repository Read Retry - Predicate-Driven Retries for Replica LagNew Feature
2026-07-17Error Module RedesignBreaking Change, Enhancement
2026-07-17Logger Correctness PassBug Fix, Enhancement, Behavior Change
2026-07-17Secrets Peers Invisible to Bundlers - No More external node-vaultBug Fix, Behavior Change
2026-07-16Error Handling - Normalized Messages, Error Catalog, and a Recovered causeBug Fix, Enhancement, New API
2026-07-16Secrets & Vault IntegrationNew Feature, Enhancement
2026-07-14Optional Peers, Actually Optional - The Driver Is a Class NowBreaking Change, Bug Fix, Enhancement
2026-07-13The Hardening Round - SQL Injection, Scope Escapes and Silent LeaksSecurity, Breaking Change, Bug Fix, Enhancement
2026-07-12Core Consolidation & Deduplication - Mixin Functions Removed, Narrowing Default-Filter Merge, isApplicationErrorBreaking Change, Enhancement, Bug Fix
2026-07-11Postgres Driver Seam & Supabase - Transaction Correctness, postgres-js, RLS Auth ContextNew Feature, Refactor, Breaking Change, Security
2026-07-11Connectors Consistency Hardening - Strict find(), engineParams, SQL-Semantics ParityBug Fix, Enhancement, Breaking Change
2026-07-08Typesense Advanced Search - Vector/Semantic, Multi-Search, SynonymsNew Feature, Breaking Change
2026-07-05Unified Repository & Connectors Architecture - PostgreSQL, Typesense & Memory EnginesNew Feature, Refactor, Breaking Change
2026-06-25Redis Helpers Refactor - Abstract Base, Interfaces, Sentinel & FactoryRefactor, New Feature, Breaking Change
2026-06-18Current User Information Endpoint - GET /me & who-am-i FlagNew Feature
2026-06-14Validation Message Codes, SQLSTATE-Class DB Errors & Production Error HardeningNew Feature, Security, Breaking Change
2026-06-02Scoped RBAC Authorization - Edge-Table Model, Pooled Enforcer, Redis-Only CacheNew Feature, Breaking Change
2026-05-27Casbin Domain Matching Function - Wildcard/Pattern Domains in gNew Feature
2026-05-25Per-Model Default Limit via @model SettingsNew Feature
2026-05-22Drizzle Casbin Adapter - Schema-Qualified TablesEnhancement, Breaking Change
2026-05-21Mass Update/Delete Guards - Blank Id & Empty WhereBug Fix, Security
2026-05-20Consistent Default Limit for To-Many RelationsBug Fix, Breaking Change
2026-05-08CRUD Route Toggles & Typed JSON ResponsesNew Feature, Enhancement
2026-05-05Refresh Access Token EndpointNew Feature
2026-04-23Error Responses - messageCode & Extra FieldsEnhancement
2026-03-31TypeScript 6 Upgrade & Toolchain RefreshMaintenance
2026-03-30Row-Level Locking (FOR UPDATE)New Feature
2026-03-15gRPC Support - ConnectRPC Integration, BaseGrpcController, RPC DecoratorsNew Feature
2026-03-12Kafka Helpers Enhancement - Health, Callbacks, Transactions, Schema RegistryEnhancement, New Feature
2026-03-10Kafka Helpers Refactor & @platformatic/kafka v1.30.0Refactor, Breaking Change
2026-03-06Filter Offset/Skip Bug FixBug Fix
2026-03-04Customizable JWT Payload Field CodecsNew Feature, Breaking Change
2026-03-02Model Authorize SettingsNew Feature
2026-02-27JWKS Authentication & Service Hierarchy RefactorNew Feature, Refactor, Breaking Change, Security
2026-02-26Core/Helpers DecouplingRefactor, Breaking Change
2026-02-16Authorization System & Auth Module RefactorNew Feature, Refactor, Breaking Change
2026-02-11WebSocket Generic Type ParametersEnhancement
2026-02-11WebSocket Encrypted DeliveryNew Feature
2026-02-11Crypto Algorithm Refactor & ECDHRefactor, New Feature, Breaking Change
2026-02-10WebSocket Heartbeat & Payload LimitNew Feature, Enhancement
2026-02-06Socket.IO Integration FixBug Fix, New Feature, Breaking Change
2026-01-11Logger Optimization & HfLoggerEnhancement, New Feature
2026-01-07Controller Route CustomizationNew Feature
2026-01-06Basic Authentication StrategyNew Feature
2026-01-05Range Queries & Content-Range HeaderNew Feature
2026-01-02Default Filter & Repository MixinsNew Feature
2025-12-31JSON Path Filtering & Array OperatorsNew Feature
2025-12-31String ID with Custom GeneratorEnhancement
2025-12-30Repository EnhancementsEnhancement
2025-12-29Snowflake UID HelperNew Feature
2025-12-29Dynamic Binding Registration FixBug Fix
2025-12-26Transaction SupportEnhancement
2025-12-26Nested Relations & Generic TypesEnhancement
2025-12-18Performance OptimizationsEnhancement
2025-12-18Repository Validation & SecurityBreaking Change, Security
2025-12-17Inversion of Control RefactorRefactor
2025-12-16Model-Repository-DataSource RefactorBreaking Change
2025-12-16Initial ArchitectureDocumentation

How to Read Changelogs ​

Each changelog entry includes:

  • Overview: Summary of changes
  • Breaking Changes: Any changes that require migration
  • New Features: New capabilities added
  • Files Changed: List of modified files
  • Migration Guide: Steps to update existing code (if applicable)