Skip to content

Release 0.3.0 - #28

Merged
jeppekroghitk merged 39 commits into
mainfrom
release/0.3.0
Aug 24, 2026
Merged

Release 0.3.0#28
jeppekroghitk merged 39 commits into
mainfrom
release/0.3.0

Conversation

@jeppekroghitk

@jeppekroghitk jeppekroghitk commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

Release 0.3.0

jeppekroghitk and others added 30 commits June 30, 2026 10:21
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The title names the project, the topic places it in the wider programme it
belongs to — "DS4SSCC" against "Digital Europe Blueprint for Data Space for
smart and sustainable cities and communities".

Sits under the title on the form and on the initiative page, is covered by the
free-text filter, and is included in the CSV export.
Findings:

* Partners were exported and displayed but never added to the free-text
  search, unlike every other name-bearing collection. One subquery, mirroring
  contacts.
* Assert\Valid on the partners association raised violations at
  partners[0].name — a path the single text input cannot render, on a form
  autosave never redraws. The transformer now checks the one thing this form
  can get wrong, so the error lands on the field itself.
* The unique index on partner.name made lookup-then-insert a 500 waiting to
  happen, since partners are created inline from the autosaving form. Dropped
  in favour of the UniqueEntity check Contact and Term already rely on: the
  worst a race can now do is leave two rows to merge.
* The migration says what it does.

Delete confirmation was three idioms — onsubmit=confirm(), data-turbo-confirm,
and the new dialog. Now one component, everywhere. Its trigger is no longer a
submit button, so a click landing before Stimulus hydrates does nothing rather
than deleting unguarded.
A TransformationFailedException desynchronised the form, so autosave —
the initiative form's only save path — returned a bodiless 422 and showed
the generic 'check the required fields' error. Nothing was missing and the
field carried no error, so every later save failed with no way to see why.
Submitting from inside a confirm dialog cached the page with the dialog
still open; restoring that snapshot rendered it inline, out of the top layer.
The note on Partner::$name claimed Contact and Term as precedent for
skipping a unique index, but Term carries uniq_term_name_vocabulary while
taking the same lookup-then-insert race, and UniqueEntity only guards the
admin form. Drops a TODO from the delete docblock too.
@jeppekroghitk
jeppekroghitk changed the base branch from develop to main August 24, 2026 10:33
@jeppekroghitk
jeppekroghitk merged commit df9c8ea into main Aug 24, 2026
4 checks passed
@jeppekroghitk
jeppekroghitk deleted the release/0.3.0 branch August 24, 2026 11:18
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.

1 participant