chore: remove obsolete artifacts, dead code, and stale docs#489
Conversation
Remove tracked files verified obsolete with zero live references: - docs/images/neuer nutzer.png, docs/images/neuerkunde.png: orphaned screenshots embedded by no RST/Twig image directive (the German manual uses Verwaltung_Nutzer.png / Verwaltung_Kunden.png instead). - config/services/monolog.yaml: dead DI config wiring a logger onto App\Controller\CrudController, a class that no longer exists (logic moved to EntryEventSubscriber); the file is imported by no services config, so Symfony never loads it. - phpat.neon: superseded standalone PHPat config. CI, the Makefile phpat target, captainhook and the analyze:arch composer script all invoke config/quality/phpat.php instead; phpat.neon is referenced by nothing. Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
The admin-gated production profiler shipped in 6635157 (subscriber, config and tests all present; documented in DEPLOYMENT_GUIDE.md) and the PHPStan baseline is now empty (ignoreErrors: []), so these one-time working documents are done and unreferenced: - docs/superpowers/plans/2026-06-26-admin-gated-production-profiler.md - docs/superpowers/specs/2026-06-26-admin-gated-production-profiler-design.md - docs/PHPSTAN_MIGRATION.md Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Both are referenced only by their own unit tests (zero production callers across src/config/templates/frontend/e2e): - src/Util/RequestHelper.php (+ test): static request-parsing helper. - src/Extension/NrArrayTranslator.php (+ test): Twig filter 'nr_array_translator' used by no template. Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Benutzerdokumentation.rst documents the pre-migration ExtJS grid UI that no longer exists after the SolidJS/Vite migration. Removed together with the 15 screenshots referenced only by it and the unused docutils stylesheet (netresearch.style). Assets still used by README.rst (jira-cloud-1/2.png, netresearch.jpg) are retained. Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
scripts/parallel-test.sh and scripts/setup-parallel-tests.sh are invoked by no Makefile target, composer script, CI job or git hook, and rely on paratest infrastructure (paratest.xml, bin/paratest) that is not present. Also remove the now-stale 'make test-parallel' command references from README.md and docs/development.md; no such Makefile target exists. Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
|
There was a problem hiding this comment.
Code Review
This pull request performs a major cleanup by removing several unused or deprecated files, including parallel test execution scripts (parallel-test.sh, parallel-test-setup.sh), documentation files (TimeTracker docs, PHPStan Level 10 Migration Guide, Admin-gated Profiler plans), utility classes (RequestHelper, NrArrayTranslator) along with their corresponding unit tests, and some configuration files. I have no feedback to provide as there are no review comments.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
There was a problem hiding this comment.
Pull request overview
This PR performs repository housekeeping by removing obsolete artifacts, dead PHP code (and its tests), stale documentation, and unused helper scripts, with the intent of keeping only actively referenced/maintained assets in the tracked tree.
Changes:
- Removed unreferenced PHP utility/extension classes and their corresponding unit tests.
- Removed unused shell scripts and eliminated stale documentation references to parallel test execution.
- Deleted outdated planning/spec documents and superseded config/artifact files.
Reviewed changes
Copilot reviewed 15 out of 32 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/Util/RequestHelperTest.php | Deletes unit tests for the removed RequestHelper utility. |
| tests/Extension/NrArrayTranslatorTest.php | Deletes unit tests for the removed Twig JSON-array translator extension. |
| src/Util/RequestHelper.php | Removes a request-parameter helper utility class. |
| src/Extension/NrArrayTranslator.php | Removes an unused Twig filter extension for translating JSON array payloads. |
| scripts/setup-parallel-tests.sh | Removes an unwired/unused parallel-test setup script. |
| scripts/parallel-test.sh | Removes an unwired/unused parallel-test runner script. |
| README.md | Removes the stale make test-parallel documentation. |
| phpat.neon | Removes a superseded PHPat configuration file. |
| docs/superpowers/specs/2026-06-26-admin-gated-production-profiler-design.md | Deletes an outdated spec document for a feature described as already shipped. |
| docs/superpowers/plans/2026-06-26-admin-gated-production-profiler.md | Deletes an outdated implementation plan document for the shipped feature. |
| docs/PHPSTAN_MIGRATION.md | Removes stale PHPStan migration documentation. |
| docs/netresearch.style | Removes an unused docutils styling file tied to removed docs. |
| docs/development.md | Removes the stale make test-parallel guidance from development docs. |
| docs/Benutzerdokumentation.rst | Removes the legacy ExtJS-era German user manual. |
| config/services/monolog.yaml | Removes an obsolete service wiring file for a controller that no longer exists. |
|
Local verification before CI: |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #489 +/- ##
============================================
- Coverage 84.07% 83.99% -0.09%
+ Complexity 2843 2816 -27
============================================
Files 190 188 -2
Lines 7663 7603 -60
============================================
- Hits 6443 6386 -57
+ Misses 1220 1217 -3
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
- src/Controller/ControllingController.php: a routeless shim of
protected static spreadsheet helpers with no subclass and no caller
(routes live in Controlling\ExportAction; the web test never imports
the shim).
- translations/activities.{de,en}.yml: the 'activities' domain was
consumed only by the NrArrayTranslator Twig filter removed in #489;
every remaining trans call uses the default or security domain.
- docker/ldap/dev-users.ldif: compose mounts only users-only.ldif;
the file was referenced by three comments/docs, now repointed.
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
… describe the present (#490) ## Description Post-ExtJS consistency pass: after the SolidJS/Vite migration, docs, tool config, templates and dependency wiring still described or served the removed stack. Every change either removes something verified unreferenced, migrates something to its proper home, or rewrites a description to state the current contract. A five-scanner dependency/orphan audit (adversarially verified) contributed the second half of the commits. ## Type of Change - [x] Documentation update - [x] Code refactoring - [x] Bug fix (non-breaking change that fixes an issue) ## Related Issue N/A — follow-up to #489. Logout CSRF lands separately on top of this branch. ## Changes Made **Consistency pass** - Stale stack references removed everywhere (README, copilot-instructions, CodeQL/Sonar exclusions, tool configs); comments describe the present only. - `header.css` folded into the Vite build (un-minified 1:1, cascade verified in the emitted bundle); logo migrated to `public/images/`; **`public/build/` no longer exists**. - Active-nav state derived client-side only — also fixes the mobile drawer permanently highlighting "Overview" (new `nav.test.ts`). - Dead Alt+D/E Help-page shortcuts removed; 403 page restyled in the app's design language with light-dark() + plain-color fallbacks; Node aligned to 26; `E2E_TEST_PLAN.md` rewritten. **Audit fixes (each independently re-verified)** - **Silently broken plumbing**: SLSA provenance job never exported its outputs (Level-3 generator never ran); `default_table_options.collate` ignored by DBAL 4 (→ `collation`); dev DSN claimed MySQL 8 against MariaDB 12.1 (wrong DDL platform) — `serverVersion` unified on `mariadb-12.1.2`; `make e2e-up`/`validate-stack`/`analyze-coverage`/npm targets repaired. - **Manifest truth**: `ext-pdo_mysql`/`ext-apcu`/`ext-intl` declared; `symfony/expression-language`, `dg/bypass-finals`, `symfony/mailer`, `symfony/form`, `symfony/css-selector`, `phpdocumentor/reflection-docblock` removed (zero usage each, 11 further lock transitives dropped); `symfony/stopwatch` → require-dev; dead npm `overrides` removed. - **Docker**: APCu pinned via pecl 5.1.28 (was an unpinned git-master build); redundant xml extension build + composer COPYs + chromium apt list removed; buildx `InvalidDefaultArgInFrom` lint declared intentional (bake is the version source of truth). - **Config/orphans**: dead `http_discovery.yaml` (uninstalled package), `twig_extensions.yaml` (no-op), `routes/dev/framework.yaml` (double-loaded routes), `sentry.yaml.dist` (never loaded), unused cache pools (docs rewritten), `SERVICE_USERS` wiring + false docs claim (switch_user documented instead), `db-test` compose service, orphaned `ControllingController`, `dev-users.ldif`, `activities` translation catalogs; `validators.de.yml` added so the team-requirement violation actually translates. - **Docs**: all 17 broken internal links repaired (re-verified: 0 remain); `techstack.md` rewritten to the real stack; `api.md` documents the actual `/scripts/timeSummaryForJira` response; example code references real class names; commands run in images that contain the tools (`app-dev`/`app-tools`). ## Testing - [x] Unit tests green locally (1557); frontend 346 (incl. new `nav.test.ts`); full suite in CI - [x] phpstan level 10 `[OK]`, cs-fixer 0 findings, phpat via hooks - [x] `lint:container` green in dev/prod/test after every config change; `compose config` valid; `composer validate` clean - [x] Vite bundle verified: chrome defaults precede overrides; no removed rules - [ ] E2E / docker bake — CI ## Code Quality - [x] Code follows project coding standards - [x] Self-review completed - [x] Documentation updated - [x] No breaking changes ## Migration Notes `APP_LOGO_URL` overrides keep working; default logo now at `/images/logo-netresearch.svg`. Node tooling expects 26. Local `.env` gains an `APP_ENCRYPTION_KEY` doc block; `MAILER_DSN`/`SERVICE_USERS`/messenger blocks are gone (nothing read them). ## Checklist - [x] I have read the [CONTRIBUTING](https://github.com/netresearch/timetracker/blob/main/CONTRIBUTING.md) guidelines - [x] I agree to follow the [Code of Conduct](https://github.com/netresearch/timetracker/blob/main/CODE_OF_CONDUCT.md)



Description
Housekeeping: remove obsolete, outdated, and artifact files from the tracked repository. Every change is a pure deletion of content verified to have zero live references — no runtime behavior changes.
Type of Change
Related Issue
N/A — proactive repository cleanup.
Changes Made
config/services/monolog.yaml(wires a logger ontoApp\Controller\CrudController, removed in the v4→v5 refactor, and imported by no services config so Symfony never loads it); supersededphpat.neon(CI, the Makefilephpattarget, captainhook and theanalyze:archcomposer script all useconfig/quality/phpat.php); two orphaned doc screenshots.docs/PHPSTAN_MIGRATION.md(its error baseline is now empty).src/Util/RequestHelper.phpandsrc/Extension/NrArrayTranslator.php(a Twig filter used by no template), plus their only-self-referencing tests.docs/Benutzerdokumentation.rst(documents the pre-SolidJS grid UI) with the 15 screenshots referenced only by it and the unused docutils stylesheet. Assets still used byREADME.rst(jira-cloud-1/2.png,netresearch.jpg) are retained.scripts/parallel-test.sh+scripts/setup-parallel-tests.sh(invoked by no Make/composer/CI target) and the now-stalemake test-parallelreferences inREADME.mdanddocs/development.md.Intentionally kept: the
sql/00xnumbered schema deltas (schema provenance),TASKS.md, both READMEs, and all ADRs.Testing
make test) — deferred to CI (localvendor/is incomplete)make check-all) — deferred to CICode Quality
make test-parallelreferences)Migration Notes
None. All removed items were unreferenced or never loaded; no deployment or migration steps required.
Checklist