Skip to content

Clean up and index LetterPublisher - #16

Merged
jayvarner merged 5 commits into
mainfrom
develop
Aug 11, 2026
Merged

Clean up and index LetterPublisher#16
jayvarner merged 5 commits into
mainfrom
develop

Conversation

@jayvarner

Copy link
Copy Markdown
Member

Add publisher to PublishedLetter search data. Removes unused code.

jayvarner and others added 5 commits August 10, 2026 16:14
* Clear administrate 1.0 upgrade blockers

Vendors an in-house ActsAsTaggableField replacing the unmaintained
administrate-field-acts_as_taggable gem (last released 2021, hard-pins
administrate < 1.0.0), preserving the same selectize-based tag UI. Bumps
administrate-field-jsonb to 0.4.8, which allows administrate < 2.0 instead
of < 1.0.0. Also fixes two unrelated pre-existing bugs found while adding
test coverage: reversed accessible_action? arguments in the media show and
mentions edit views, and a flat-vs-nested iteration bug in the mentions
form that raised NoMethodError on new/edit. Media's show page also called
a nonexistent Medium#url; it now prefers the attached ActiveStorage image,
falling back to the link column.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* Upgrade administrate to 1.0.0

Restores sprockets-rails/sassc-rails as direct dependencies - administrate
1.0 dropped them transitively (it now bundles its own precompiled assets),
but the app's own asset pipeline (app/assets/config/manifest.js) relies on
them directly, and administrate-field-jsonb's stylesheet chain needs real
Sass compilation. Drops the now-dead `//= require selectize` manifest line;
administrate 1.0 bundles its own copy inside its single built JS file.

Also fixes the admin system-test harness: it authenticated by embedding
credentials in the visited URL (this API-only app has no session-based
admin login), which worked fine until Turbo - newly bundled in 1.0 - started
calling history.replaceState on every page load. Chrome rejects replaceState
targets carrying userinfo, and since Administrate's JS is one bundled IIFE,
that uncaught exception aborted everything after it, including selectize's
own setup. Real admin users never hit this (their location.href never
carries credentials - Chrome only uses them for the auth handshake), but it
broke the tests. Switched to Selenium's CDP-based driver.register(username:,
password:) so system specs authenticate without touching the URL.

Verified manually in a real browser in addition to the full suite (322
examples, 0 failures).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
@jayvarner
jayvarner merged commit 6da89f4 into main Aug 11, 2026
1 check passed
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