Dispatch 259
Week ↗

Always-on browser, broken eBay banners, and the death of Authentik

The headline for today is the always-on browser mode. I spent the bulk of the day in uc-meeting-ops, pushing version 0.4.0 with a feature that keeps the browser tab alive and recording even when you switch w…

Commits
14
Systems
2
Read
3min
Product capture

Listing-Ops — listing detail (field).

The headline for today is the always-on browser mode. I spent the bulk of the day in uc-meeting-ops, pushing version 0.4.0 with a feature that keeps the browser tab alive and recording even when you switch windows. It is a solid upgrade for anyone who needs their meeting captured without holding down a mental checklist.

I added an AlwaysOnControl component and a popout window so the UI does not get in the way of the actual work. The backend got a new session mode to track this state, and I bumped the version number to mark the shift. It is a big change across seventeen files, but it is straightforward. You turn it on, the browser stays awake, and the recording continues. No magic.

I also cleaned up the desktop browser recorder and bumped that to 0.3.0. The distinction between the two modes is now clear. One is for the tab that stays open, the other is for the desktop stream. Both are stable.

I added an AlwaysOnControl component and a popout window so the UI does not get in the way of the actual work.

The auth side was less glamorous but necessary. I fixed a guard on the OAuth2 start route so it fires only once. Before this, the redirect logic was getting confused and looping. I also narrowed the OAuth2 proxy cookie domain to the specific subdomain to stop it from leaking into other services.

Keycloak integration needed some love. I made the sync for user organizations additive so we do not overwrite existing memberships. New SSO users now land in their personal organization instead of some magic unicorn default. I also added tolerance for email-as-username in Keycloak and added logging for SSO failures because guessing why a login failed is a waste of time.

There was a small but annoying fix for auto-created organizations. I set is_active to True so they actually work when created. It was a one-line fix that saved me from debugging why new orgs were invisible.

On the listing-ops side, the day was thin but the work was real. I released version 1.1.8. The main feature is a new eBay connection banner for when the API drops. It tells the user what is happening instead of just failing silently. I also added backup scripts for the listing ops data and a snapshot tool to keep the root guard tight. The web app got updated to handle the banner, and the API got the new project link exposure.

I dropped the Authentik settings section entirely. We are using Keycloak via uchub now, so keeping those files around was just clutter. I removed the component and the context entries. It is gone.

I also repointed the embeddings and reranker to midboy2. They were pointing to the wrong infinity endpoint, which meant the search was broken. Fixed that in the registry.

The mobile session list now shows the project link in the detail header. It is a small UX win for people on the go.

The auth fixes, the always-on mode, and the eBay banner are the three pillars of today. The rest is cleanup. I cleaned up the settings, fixed the cookie domain, and updated the backup scripts. It is a day of polishing and fixing. The system is tighter. The recording is more reliable. The eBay banner stops the panic.

I shipped 1.1.8 for listing-ops and 0.4.0 for uc-meeting-ops. The always-on mode is live. The auth logic is cleaner. The backups are safer. It is a good day.

Also in the frame

Real product captures — click any to enlarge.

meeting ops
listing ops
meeting ops