All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
1.2.0 - 2026-09-03
- Web Component: the form theme now renders
<nowo-tag-input>(light DOM).tag-input.jsdefines the custom element and still initializes fields withdata-controller="nowo-tag-input". - Deps (dev): bump
rector/rector,friendsofphp/php-cs-fixer,@types/node,happy-dom; refresh Composer lockfiles.
- Integrators: keep the same
tag-input.jsasset. Custom theme overrides should use<nowo-tag-input>as the outer host.
1.1.3 - 2026-08-24
- Raise minimum PHP to 8.2 and sync README badge (REQ-SF-001).
- Docs: PHP-FIG PSR evaluation (REQ-CS-007).
- No API or configuration changes for integrators unless noted above.
- CI: run
composer audit --lockedafter dependency install (REQ-SEC / P3).
1.1.1 - 2026-08-18
- Demos: pin
nowo-tech/hot-reload-bundleto^1.4with FrankenPHP Mercure/hot_reload(dev/testonly). - Demos: Symfony 8 only; Symfony 6/7 demo apps removed.
1.1.0 - 2026-08-04
- REQ-TWIG-004: require
twig/extra-bundle+twig/string-extra;make check-twig-extrainrelease-check; demos registerTwigExtraBundle. - Twig-CS-Fixer:
vincentlanglet/twig-cs-fixer,.twig-cs-fixer.php,composer twig:lint/twig:fix.
1.0.6 - 2026-07-30
- USAGE: Overriding templates (REQ-TWIG-001) — TOC, freeze rule, prefer
form_themeover full-file forks, full<subpath>table for form themes. - CONFIGURATION: Twig overrides section points to USAGE (single source of truth).
- Demo / fixture
reference.phprefresh (php-cs-fixer).
1.0.5 - 2026-07-29
- Named Symfony assets package
nowo_tag_input(base_path/bundles/nowotaginput) registered via DIprepend(REQ-ASSETS-004); requiresymfony/asset. make demo-smoke/ per-demomake verify(HTTP 200) and.github/workflows/demo-smoke.yml(REQ-TEST-011 / REQ-MAKE-003).make down-dev; absoluteDOCKER_BINin Makefiles (REQ-MAKE-010).- FrankenPHP-friendly banner under
docs/images/(REQ-DOCS-017 / DEMO-008). - PHPStan CI job; explicit
ignoreErrors: []inphpstan.neon.dist(REQ-CS-006). - REQ-CS-005:
nowo-tech/phpstan-frankenphpinrequire-devwith classic + worker rulesets.
- PHPUnit / CI:
SYMFONY_DEPRECATIONS_HELPER=max[direct]=0(REQ-SF-005). demo/symfony8image:dunglas/frankenphp:1-php8.5-alpine(REQ-DEMO-010).- Composer keywords:
php,frankenphp(REQ-PKG-004). - Docs: use
asset('…', 'nowo_tag_input'); README Documentation order; GitHub About (REQ-DOCS-018). - Declared FrankenPHP worker mode friendly (was “not supported”).
1.0.4 - 2026-07-16
CODE_OF_CONDUCT.md(Contributor Covenant) and links from README / Contributing.docs/GITHUB_CI.md: REQ-GIT-001 (no Cursor co-author trailers in git history).- Local git hygiene:
.githooks/commit-msg,.scripts/check-no-cursor-coauthor.sh,.scripts/strip-cursor-coauthor-from-history.sh, Cursor rule.cursor/rules/01-git-commits.mdc. - CI job
git-hygieneand Makefile targetssetup-hooks,check-no-cursor-coauthor,strip-cursor-coauthor-from-history(wired intorelease-check).
- Contributor toolchain (dev only):
@types/node26.1.1. - Composer lock refresh:
friendsofphp/php-cs-fixerv3.95.15,rector/rector2.5.7; demo locks updated fornowo-tech/twig-inspector-bundlev1.0.36. docs/CONTRIBUTING.mdanddocs/RELEASE.md: document REQ-GIT-001 hooks and pre-push co-author check.
1.0.3 - 2026-07-13
- Contributor toolchain (dev only):
@types/node26.1.0. - GitHub Actions:
codecov/codecov-action@v7. - Composer lock refresh:
friendsofphp/php-cs-fixerv3.95.13,rector/rector2.5.6; demo locks updated fornowo-tech/twig-inspector-bundlev1.0.35. .gitignore: ignore.cursor/sandbox.json(machine-specific Cursor sandbox config).- Rector: skip
tests/Fixtures/app/var(Symfony test cache; aligned with PHPStan exclusions). - Internal refactors from Rector 2.5.6 (first-class callables, reflection cleanup); no behavior change.
1.0.2 - 2026-07-09
- GitHub Spec Kit baseline:
.specify/, Cursor Agent skills (.cursor/skills/speckit-*), andspecs/001-baseline/with fullsrc/code inventory. docs/SPEC-KIT.md: installation, structure, and maintainer usage manual.
docs/SPEC-DRIVEN-DEVELOPMENT.md: three-layer model (Spec Kit + product behavior +REQ-*traceability); user stories aligned with tag-input domain.docs/SECURITY.md: threat model and release checklist corrected for Tagify/tag options (pattern,whitelist,max_tags) — removed stale OTP-bundle wording.- Demo Makefiles (
demo/symfony7,demo/symfony8):COMPOSErenamed toDOCKER_COMPOSE(Nowo standard). - README: link to
docs/SPEC-KIT.mdin the canonical## Documentationsection. - Composer lock files refreshed (bundle root and demos).
- Demo
symfony.lock(symfony7): removed stalenowo-tech/otp-input-bundleentry.
1.0.1 - 2026-07-05
- Translations for
de,fr,it,nl, andptin theNowoTagInputBundledomain. intlPHP extension in demo Dockerfiles (demo/symfony7,demo/symfony8) for Symfony intl features.
- Dev toolchain (contributors only): TypeScript 6.0.3, Vite 8.1.3, happy-dom 20.10.6.
- GitHub Actions:
actions/checkout@v7,actions/cache@v6,actions/github-script@v9. - CONFIGURATION.md: translation locales list updated (
en,es,de,fr,it,nl,pt).
- None.
1.0.0 - 2026-07-05
First public release of TagInputBundle on GitHub.
TagTypeSymfony form type with Tagify UI for multi-tag text inputs.TagsToValueTransformermapping Tagify JSON payloads to model values asarray<string>or comma-separatedstring(ValueFormatenum).- Global defaults and form theme selection via
nowo_tag_inputconfiguration (value_format,trim,pattern,whitelist,duplicates,max_tags,dropdown_enabled,placeholder,form_theme). - Twig form themes for div, table, Bootstrap 3–5 (incl. horizontal), Foundation 5–6, and Tailwind 2 layouts.
- TypeScript + Vite assets (
tag-input.ts,logger.ts) built tosrc/Resources/public/tag-input.jsandtag-input.css. - Translations (
NowoTagInputBundledomain) forenandes. - Symfony Flex recipe (
.symfony/recipe/nowo-tech/tag-input-bundle/1.0/). - FrankenPHP demos under
demo/symfony7anddemo/symfony8with Web Profiler, debug toolbar, and Twig Inspector. - PHPUnit suite (
tests/Unit,tests/Integration) with 100% PHP line coverage; Vitest suite for frontend assets. - Documentation set (
INSTALLATION,CONFIGURATION,USAGE,SECURITY,UPGRADING,RELEASE,ENGRAM,SPEC-DRIVEN-DEVELOPMENT,DEMO-FRANKENPHP). - Twig and translation override procedures in CONFIGURATION.md.
- CI (PHPUnit, PHP-CS-Fixer, PHPStan, Rector dry-run, coverage), release workflows, Dependabot (Composer, GitHub Actions, npm), and Scrutinizer integration.
- Alignment with Nowo bundle standards (
REQ-*traceability, Makefilerelease-check, Engram MCP).