Repository navigation
feat: build open OpenSpec changes (shillinq, part 2) - #1958
Open
rubenvdlinde wants to merge 5 commits into
Open
rubenvdlinde wants to merge 5 commits into
rubenvdlinde wants to merge 5 commits into
Conversation
… in the budget column Q-shillinq-1 (answered 9 Oct): the selector swaps the budget column to the scenario (base plus modifiers), read-only, with a 'Scenario: X' label. Completes the wip commit 7923bd5 (controller, tests, spec REQ-BSC-011) with the overlay service and the grid page. Red: build-round/scen-grid-red.txt, scen-js-red.txt; green: scen-grid-green.txt, scen-js-green.txt.
…e page Q-shillinq-2 (answered 9 Oct): Account gets an optional taskField; a saved fee schedule carries its revenue account's task field (revenueTaskField), shown as a column on Fee schedules. The IV3 generator's read of the same field is pinned by a test. Account 0.4.0, FeeSchedule 0.3.0, info.xml 0.5.7-unstable.20261009230000 + lock. Also: BudgetGridReader return shape names budgetLinesByFiscalYear (phpstan on the scenario overlay). Red build-round/taskfield-red.txt, green taskfield-green*.txt.
Contributor
Quality Report — ConductionNL/shillinq @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-manifest-shell | ✅ | ||||
| format | ✅ | ||||
| check-l10n-js | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| check-manifest-budget | ✅ | ||||
| check-markers | ✅ | ||||
| check-registers | ✅ | ||||
| check-seeds | ✅ | ||||
| check-fragment-required | ✅ | ||||
| check-nav-reachability | ✅ | ||||
| check-job-registration | ✅ | ||||
| test-l10n | ✅ | ||||
| composer | ✅ | ✅ 109/109 | |||
| npm | ✅ | ✅ 641/641 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ❌ | ||||
| Newman | ❌ | ||||
| Playwright | ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development. |
||||
| Hydra gates | ❌ |
Quality workflow — 2026-10-09 21:18 UTC
Download the full PDF report from the workflow artifacts.
Contributor
Quality Report — ConductionNL/shillinq @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-manifest-shell | ✅ | ||||
| format | ✅ | ||||
| check-l10n-js | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| check-manifest-budget | ✅ | ||||
| check-markers | ✅ | ||||
| check-registers | ✅ | ||||
| check-seeds | ✅ | ||||
| check-fragment-required | ✅ | ||||
| check-nav-reachability | ✅ | ||||
| check-job-registration | ✅ | ||||
| test-l10n | ✅ | ||||
| composer | ✅ | ✅ 109/109 | |||
| npm | ✅ | ✅ 641/641 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ❌ | ||||
| Newman | ❌ | ||||
| Playwright | ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development. |
||||
| Hydra gates | ❌ |
Quality workflow — 2026-10-09 21:50 UTC
Download the full PDF report from the workflow artifacts.
Contributor
Quality Report — ConductionNL/shillinq @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-manifest-shell | ✅ | ||||
| format | ✅ | ||||
| check-l10n-js | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| check-manifest-budget | ✅ | ||||
| check-markers | ✅ | ||||
| check-registers | ✅ | ||||
| check-seeds | ✅ | ||||
| check-fragment-required | ✅ | ||||
| check-nav-reachability | ✅ | ||||
| check-job-registration | ✅ | ||||
| test-l10n | ✅ | ||||
| composer | ✅ | ✅ 109/109 | |||
| npm | ✅ | ✅ 641/641 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ❌ 5875/5875 (no test failed, the job failed for another reason — see its log) | ||||
| Newman | ✅ 69/69 | ||||
| Playwright | ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development. |
||||
| Hydra gates | ❌ |
Quality workflow — 2026-10-10 08:26 UTC
Download the full PDF report from the workflow artifacts.
…dLookup (coverage guard)
Contributor
Quality Report — ConductionNL/shillinq @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-manifest-shell | ✅ | ||||
| format | ✅ | ||||
| check-l10n-js | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| check-manifest-budget | ✅ | ||||
| check-markers | ✅ | ||||
| check-registers | ✅ | ||||
| check-seeds | ✅ | ||||
| check-fragment-required | ✅ | ||||
| check-nav-reachability | ✅ | ||||
| check-job-registration | ✅ | ||||
| test-l10n | ✅ | ||||
| composer | ✅ | ✅ 109/109 | |||
| npm | ✅ | ✅ 641/641 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ✅ 5882/5882 | ||||
| Newman | ✅ 69/69 | ||||
| Playwright | ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development. |
||||
| Hydra gates | ❌ |
Quality workflow — 2026-10-10 09:36 UTC
Download the full PDF report from the workflow artifacts.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part 2 of the shillinq OpenSpec build (decisions 121-124), cut from development after part 1 (#1954) landed. Builds Ruben's answers to Q-shillinq-1 and Q-shillinq-2 (decision 129). Checkpointed after two changes because Q2 touches the register (decision 134).
Built
budget-scenarios, task group 8 (Q-shillinq-1): scenario selector on the budget grid
GET /api/budget-gridtakes an optionalscenarioId. The year's default-budget lines plus the scenario's modifiers go through the existingBudgetScenarioEvaluator(newBudgetGridScenarioOverlay), so every budget figure in the grid (rows, computed rows, TOTAAL) shows the scenario. Actuals stay the same. Nothing is written. A scenario outside the administration answers 404, and a malformed id answers 400.BudgetGrid.vue: a labelled "Scenario" select ("Base budget" plus the administration's scenarios) and a "Scenario: X" label.scen-grid-red.txt(3 failures) andscen-js-red.txt(gridRequestParams missing); green: BudgetGridControllerTest 12 OK, vitest 3 OK.budget-scenarios::grid-scenario-selector) but has not run.leges-at-intake 1.2 (Q-shillinq-2): task field column on the fee schedule page
Account.taskFieldis optional, with pattern0.61/8.3. It lives in a new fragment,public-sector-account-task-field.json, which moves Account to 0.4.0.FeeSchedule.revenueTaskField(FeeSchedule 0.3.0) is copied from the revenue account's task field whenever a schedule is saved (FeeScheduleValidationListener). It is null when the account has none. The column shows on the Fee schedules page.Account.taskField. It is now pinned byIv3ReportGeneratorTaskFieldTest.taskfield-red.txt(2 failures: no column value, stale value kept); green: listener and IV3 tests 9 OK, plus AppInfo, FeeScheduleService and BudgetGrid tests 53 OK. The lookup lives in the newRevenueTaskFieldLookup, because adding it to FeeScheduleService pushed that class over phpmd's complexity limit of 80.Also:
BudgetGridReader::loadGrid()now namesbudgetLinesByFiscalYearin its return shape. It already returned that key; phpstan flagged the missing name once the controller read it.Not built yet (queue for part 3)
purchasing-approval-delegation (its task 4.1 is now question Q-shillinq-4: the openregister issue text goes to Ruben first), public-sector-council-and-auditor-statements, receivables-sepa-direct-debit, sales-quote-and-order-to-invoice, public-sector-grant-accountability. tax-vat-return-from-books is skipped because open PRs #1899 and #1900 build it.
No board check: shillinq has no boards (decision 75).
Checks (head of this branch)
composer check:strict: lint 0, psalm 0, phpstan 0, PHPUnit 5875 OK (1 skipped). phpcs and phpmd crashed in that run on a temp-dir setting of mine, then ran separately with exit 0 (build-round/cp2-phpcs.log,cp2-phpmd.log).npm run lint0; format 0 (after a prettier fix); check:fragment-required, job-registration, manifest, manifest-budget, manifest-shell, markers, nav-reachability, registers, seeds, schema-l10n, l10n-js, test:l10n, l10n-parity, l10n-dutch-tokens all 0; vitest 445 OK.Still owed (live instance)
budget-scenarios::grid-scenario-selector. Create scenario "Krimp" with a LEDGER_AMOUNT_DELTA of -10,000 on Omzet in January, pick it on /begroting/grid, and check that Omzet's January budget reads 40,000, its actual is unchanged, and the label reads "Scenario: Krimp".occ upgrade(version 0.5.7-unstable.20261009230000), give account 8300 the task field 8.3, save a fee schedule with revenue account 8300, and check that its Task field column reads 8.3.