Skip to content

chore: remove obsolete artifacts, dead code, and stale docs#489

Merged
CybotTM merged 5 commits into
mainfrom
chore/cleanup-obsolete-tracked-files
Jul 2, 2026
Merged

chore: remove obsolete artifacts, dead code, and stale docs#489
CybotTM merged 5 commits into
mainfrom
chore/cleanup-obsolete-tracked-files

Conversation

@CybotTM

@CybotTM CybotTM commented Jul 1, 2026

Copy link
Copy Markdown
Member

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.

Scope note: this PR contains only the tracked removals. A separate ~40 MB of untracked build cruft (legacy public/build/ webpack-Encore + ExtJS output, coverage-report/, phpunit caches, stray empty dirs) was cleaned from the working tree and is not part of this diff.

Type of Change

  • Documentation update
  • Code refactoring

Related Issue

N/A — proactive repository cleanup.

Changes Made

  • Obsolete config / artifacts — dead config/services/monolog.yaml (wires a logger onto App\Controller\CrudController, removed in the v4→v5 refactor, and imported by no services config so Symfony never loads it); superseded phpat.neon (CI, the Makefile phpat target, captainhook and the analyze:arch composer script all use config/quality/phpat.php); two orphaned doc screenshots.
  • Completed planning docs — the admin-gated production-profiler plan + spec (feature already shipped) and docs/PHPSTAN_MIGRATION.md (its error baseline is now empty).
  • Dead codesrc/Util/RequestHelper.php and src/Extension/NrArrayTranslator.php (a Twig filter used by no template), plus their only-self-referencing tests.
  • Legacy ExtJS user manualdocs/Benutzerdokumentation.rst (documents the pre-SolidJS grid UI) with the 15 screenshots referenced only by it and the unused docutils stylesheet. Assets still used by README.rst (jira-cloud-1/2.png, netresearch.jpg) are retained.
  • Unwired parallel-test scriptsscripts/parallel-test.sh + scripts/setup-parallel-tests.sh (invoked by no Make/composer/CI target) and the now-stale make test-parallel references in README.md and docs/development.md.

Intentionally kept: the sql/00x numbered schema deltas (schema provenance), TASKS.md, both READMEs, and all ADRs.

Testing

  • Unit tests pass (make test) — deferred to CI (local vendor/ is incomplete)
  • Static analysis passes (make check-all) — deferred to CI
  • Reference verification — a full dangling-reference sweep across the tracked tree returns zero references to any removed file or symbol; every item was independently confirmed unreferenced before removal.

Code Quality

  • Code follows project coding standards
  • Self-review completed
  • Documentation updated (fixed the stale make test-parallel references)
  • No breaking changes (pure removal of verified-dead files)

Migration Notes

None. All removed items were unreferenced or never loaded; no deployment or migration steps required.

Checklist

CybotTM added 5 commits July 1, 2026 19:34
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>
Copilot AI review requested due to automatic review settings July 1, 2026 17:35
@sonarqubecloud

sonarqubecloud Bot commented Jul 1, 2026

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@CybotTM

CybotTM commented Jul 1, 2026

Copy link
Copy Markdown
Member Author

Local verification before CI: bin/console lint:container passes — the DI container compiles cleanly after the removals, confirming no service depended on the removed config/services/monolog.yaml, NrArrayTranslator (Twig filter) or RequestHelper. Full unit + static-analysis suite runs in CI.

@codecov

codecov Bot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.99%. Comparing base (44d79fe) to head (4cd141c).

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     
Flag Coverage Δ
integration 53.04% <ø> (+0.41%) ⬆️
unit 49.41% <ø> (-0.36%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@CybotTM CybotTM merged commit fccda9c into main Jul 2, 2026
27 checks passed
@CybotTM CybotTM deleted the chore/cleanup-obsolete-tracked-files branch July 2, 2026 00:44
CybotTM added a commit that referenced this pull request Jul 2, 2026
- 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>
CybotTM added a commit that referenced this pull request Jul 2, 2026
… 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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants