Before the Tailwind 4 migration, checkboxes behaved as follows:
Light mode
checked → cyan bg + white checkmark
unchecked → white bg
Dark mode
checked → cyan bg + white checkmark
unchecked → dark bg
In the last commit, we fixed white-on-white, but because we removed
dark:bg-... as well, unchecked boxes in dark mode regressed to white,
standing out like a sore thumb against the dark background.
The current commit adds back the pre-migration behavior; it's not
actually a value-judgement on it other than "it was at least functioning".
(this non-value-judgement is directed at "do I really like cyan bg + white
checkmark in dark mode... I might not)
Fix#225
After upgrading to Tailwind 4, the styled checkbox showed no checkmark when
checked. DevTools inspection showed a white-on-white rendering: the checkmark
SVG was filled white while the background was also white. Removing the
bg-white class restores the intended text-* color, making the checkmark
visible again.
The class bg-white was added in 4c8fb20daa i.e. in our first attempt
to get a non-ugly checkbox styling; whether it was "ever needed for realz"
is of historic interest mostly.
Fix#225
Tailwind 3 -> 4 migration renamed `ring` -> `ring-3`, but colors like
`ring-cyan-200` were also changed to `ring-3-cyan-200` which doesn't
actually exist.
broken in ac8e2e8cd6
See #225 (the present commit is related, but not a full fix)
Move DRF/OpenAPI authentication import out of bugsink/__init__.py into
bugsink/authentication.py.
Before: running bugsink-manage imported the bugsink package, whose __init__
pulled in drf_spectacular → DRF → DRF’s api_settings before Django settings
were configured, raising ImproperlyConfigured. (Did not happen in dev where
apps are loaded after settings.)
After: DRF is first touched during server load via urls → routers → views →
schemas. Only then does DRF’s api_settings resolve DEFAULT_AUTHENTICATION_CLASSES,
importing bugsink.authentication at a point where settings are already ready.
Chose to fix output, not loosen the test: trailing spaces are invisible
noise, vary by editors/OS, and break deterministic rendering in Markdown.
Stripping them makes output more useful in general and avoids flaky diffs.
Adds a `stacktrace_md` field to EventSerializer and a `/stacktrace` action
returning the same markdown (but as the full response).
Also switches `data` to use `get_parsed_data()` (as it should have) and
in json dict format (rather than str).
this also fixes the index on releases (since they are always ordered
in the context of a particular project, this should be part of the
index)
See #146
This more exactly expresses semantics by itself, and is also in preparation of
creating releases through the API (which have no triggering event)
See #146