The headline today is netcap, a new way to pull my own LinkedIn posts out of the browser. assist netcap starts a local receiver, paired with a raw Manifest V3 browser extension under netcap-extension/ that patches fetch and XMLHttpRequest to capture every request/response and forward it to the receiver. Doing the forwarding from the extension’s background context sidesteps the page’s CSP, which is what killed an earlier console-paste approach — and reading the response across every responseType rather than just responseText is what finally captured LinkedIn’s voyager GraphQL calls, which return JSON and expose no responseText. Then assist netcap extract parses the capture into structured posts — text, markdown with mentions linked, author, hashtags, related posts, and a postedAt decoded from the activity id — reading both the SDUI responses rendered on first paint and the voyager responses loaded on scroll, deduped by activity urn. Follow-ups added article-card link extraction and a permalink back to each original post. There’s a fair bit of WSL-specific plumbing too, since the browser runs on the Windows host and can’t reach a WSL localhost: the receiver copies the extension to a Windows path and targets the WSL VM’s IP.

The other feature was a backup command and a backups view in the dashboard, so the assist database can be snapshotted and browsed rather than relying on ad-hoc exports. I also continued polishing the usage history from earlier in the week: segments now order by created_at with the newest on top, and a usage reset keeps the pre-reset peak instead of dropping it.

A cluster of smaller improvements rounded out the day. assist verify traded its --timer flag for a clearer --measure, formats in place as part of the run, and gives clearer messages when it denies something. The session terminal now renders with WebGL for smoother output, a commit off the expected branch raises a warning before it goes through, and I fixed sessions occasionally reading from the wrong transcript by binding each session to its own.