| Repository | Contribution |
|---|---|
browser-use/browser-use#5672 | Stopped two LLM provider adapters from authenticating third-party endpoints with the user's OpenAI key.ChatDeepSeek and ChatCerebras passed api_key=None into an AsyncOpenAI client pointed at api.deepseek.com and api.cerebras.ai, so the SDK fell back to OPENAI_API_KEY — sending it to a different vendor. The env vars the docs promised were never read. Audited all nine adapters to derive the discriminator (an OpenAI-SDK client at a non-OpenAI base_url), which found exactly these two and cleared the rest; reported the negative results alongside the fix. |
browser-use/browser-use#5673 | Repaired a model shortcut that had been returning an API error since Mistral retired the model behind it.get_llm_by_name() mapped Pixtral Large in two separate tables, both resolving to pixtral-large-latest. Establishing that it was genuinely gone took distinguishing 400 invalid_model from 403 tier_not_allowed — /v1/models is filtered by subscription tier, not a global catalogue, so the free-tier listing was misleading. Verified all five aliases against the live API in one run: four returned 200, one 400. |
mdn/browser-compat-data#30171 | Corrected Firefox compat data for FontFaceSet iteration methods.Tested 11 iteration behaviors across Firefox 153 and Chrome 151 to establish which three subfeatures are broken and which work correctly — a distinction the original report never made. |
python-visualization/folium#2263 | Root-caused a bug open since 2021: GeoJSON tooltips came up empty on multi-geometry features. The feature never reached the child layers Leaflet wraps in a FeatureGroup (issue #1520). Fix verified against all eight geometry types plus nested GeometryCollections, with a Selenium regression test. |
python-visualization/folium#2274 | Upgraded Leaflet 1.9.3 → 1.9.4 at a maintainer’s request, repairing a notebook test red on main.Leaflet 1.9.3 calls layer.getElement() unguarded and throws on nested FeatureGroups; because the failing test skipped verify_js_logs(), the uncaught error lingered in the session-scoped driver log and surfaced in whichever later test read it first — not the page CI blamed. |
docling-project/docling#4129 | Root-caused why an entire class of Word document converts with no headings at all — open since April, six comments, no diagnosis. Docling read w:outlineLvl only from a paragraph's style; 3GPP specification documents set it as direct formatting with no w:pStyle, so the style resolves to Normal, which carries no level (issue #3312). Every heading fell through to body text — and became a list item, since the same paragraphs carry outline numbering. Resolving the paragraph before the style per OOXML precedence took the reported document from 0 markdown headings to 6 at correct depth, with zero reference-test outputs changed. |
traceroot-ai/traceroot#1968 | Rewrote the Vercel AI integration docs after proving the documented telemetry hook emits nothing on SDK v7. The page documented experimental_telemetry, which on ai 7.x silently produces no spans (issue #1966, which I filed). Its own example produced 1 span; changing only that line to @ai-sdk/otel produced 5 — including the chat and execute_tool spans the page’s own table promises. |
jupyterlab/jupyterlab#19257 | Fixed 2.43:1 contrast text in the Debugger Variables panel — open since 2023. A CodeMirror syntax token was styling UI chrome text below even the 3:1 large-text floor of WCAG SC 1.4.3. Swapping it for an existing --jp- theme token brings it to 8.49:1; tracing the background to a .positioning-region element inside the jp-tree-item shadow root explained why Dark High Contrast never helped. |
jupyterlab/jupyterlab#19303 | Fixed Alt+W not closing the current tab when focus sat outside the main area — open since 2018, zero comments. The application:close keybinding was scoped to .jp-Activity, so it never fired unless focus was in a main-area widget, while File ▸ Close Tab worked from anywhere. A one-line selector change, plus a repro widened past the original report and five scenarios verified against main. |
Also this month
- Filed
adobe/react-spectrum#10411 with a live reproduction — the S2 docs playground was emitting Tooltip code samples that didn't typecheck; a maintainer shipped the fix the next day. - Posted browser-tested findings on
react-spectrum#8027 andmdn/content#45005, including the negative results.
A research tool: right-click any web image to download it and log a local citation record of its source — page URL/title, canonical URL, Open Graph metadata, alt text, figure caption, plus the nearest heading/paragraph/link via deterministic DOM heuristics.
- Privacy-first architecture — a service worker paired with an on-demand content script using
activeTab+scriptingpermissions; zero background access to browsing data. - Handles real-world messiness — lazy-loaded image attributes, duplicate-capture detection, retry logic, graceful fallbacks on restricted pages.
- Local & exportable — up to 5,000 records live entirely in
chrome.storage.local, reviewable on an options page and exportable as JSON/CSV (CSV hardened against spreadsheet formula injection).
Visualizes how often different categories of profanity appear across 52 college-sports YouTube videos by a popular creator — to find out which collegiate rivalries are the most controversial linguistically.
- The workflow — scrape audio via the YouTube API ➜ transcribe with the Whisper neural network on Hugging Face ➜ analyze transcripts to categorize terms.
- Interactive — charts built with SVG & D3.js, plus full-text search across all transcripts.
An MVP platform that indexes literary and art pieces published by independent journals without republishing copyrighted material.
- Data pipeline — scraping, ingestion & metadata-modeling workflows normalize journal content into structured, searchable records: titles, journals, authors, translators, visual artists, genres, keywords & reading time (Gemini AI / Colab notebook).
- Discovery experience — helps readers browse real pieces, return to the original journal sources, and (future) explore a contributor graph linking writers, artists, institutions, journals & publications.
[!TIP] Presented at the Perplexity AI Billion Dollar Pitch competition.
A full-stack RAG pipeline to chat with the Film Locations in San Francisco dataset. Completed during a DigitalOcean / Auth0 hackathon in San Francisco on Oct 18, 2025.
A full-stack project ingesting data from WindBorne Systems' live constellation API, feeding two D3.js plots:
- A world map displaying each flight trajectory over a 24-hour interval.
- A Sankey chart showing the start/end region of each trajectory (via geonames.org and nominatim.openstreetmap.org APIs).
The project runs an automated pipeline that fetches and processes new data hourly on an Ubuntu cloud server, and uses Cloudflare Workers to edge-cache the data files.
A web game for people learning Russian / English / German. Inspired by real events on the Eastern Front from 1941–1945, it educates users about Holocaust history through historical materials and witnesses' artworks.
[!NOTE] Suggestions welcome — open an issue or email nina@sfsu.edu.





