PictoPy
AOSSIE's desktop photo gallery, which tags faces and objects on the device. Tauri, React and a Python backend.
6 merged6 openMergedJul 2026
Remove stale face clusters after folder deletion
Deleted folders left their face clusters visible in the gallery, and clustering never started on a first tagging pass. Four independent causes behind one report: a bootstrap gap in the incremental clustering branch, a missing HAVING filter that kept empty clusters queryable, a return-shape bug that made recluster raise before it could clear them, and a React Query cache tag that never invalidated.
AOSSIE-Org/PictoPy #1392- Python
- SQL
- React Query
- Debugging
MergedJul 2026
Accessibility and controls-visibility for the video player
The player's progress bar was invisible to assistive technology and its controls hid themselves while paused. Exposed the seek bar as a real slider with keyboard seeking, gave every control a state-aware label, and made hidden controls non-interactive rather than merely transparent.
AOSSIE-Org/PictoPy #1374- TypeScript
- React
- Accessibility
- Testing
MergedAug 2026
Run lint checks without releasing the gated CI jobs
Fork pull requests need maintainer approval, and that approval is all-or-nothing, so a 44-second lint job could never run without also releasing the expensive build jobs. Moved lint to its own pull_request_target workflow, hardened with empty permissions, no secrets, an explicit head checkout without credentials, and an install that runs no scripts.
AOSSIE-Org/PictoPy #1442- CI
- GitHub Actions
- Supply-chain safety
MergedJun 2026
Fix zoom behaviour that only broke in production builds
Scroll-to-zoom fell back to the library default in production because the custom wheel listener depended on an internal wrapper that was not always mounted on the first effect run. Attached the listener to a container the component owns instead, so zoom anchors to the cursor only on axes that actually overflow.
AOSSIE-Org/PictoPy #1295- TypeScript
- React
- Production debugging
MergedMay 2026
Auto-close inactive merge-conflicted pull requests
Maintainers were manually chasing pull requests that had gone stale behind merge conflicts. Added a workflow that closes them once they have been conflicted and untouched long enough to be abandoned.
AOSSIE-Org/PictoPy #1289- CI
- Maintainer tooling
OpenJun 2026
Run global reclustering as a background job
The frontend aborted every request after ten seconds, so reclustering a large library failed in the UI while the backend kept running to completion. Moved reclustering to a polled background job that refuses to start a second pass while one is running, and gave the slow search endpoints their own timeout.
AOSSIE-Org/PictoPy #1349- Python
- React
- Background jobs
More pull requests
- MergedMay 2026Fix Markdown lint errors and add the check to CI+183 −125 · 19 files#1266
- OpenOct 2026Keep a backend test from writing into the real thumbnails folder+9 −1 · 1 file#1667
- OpenAug 2026Retire TEST_MODE and build on the test database guard+37 −29 · 8 files#1498
- OpenAug 2026Strip filler comments and dead commented-out code across 171 files+336 −1564 · 171 files#1480
- OpenJun 2026Rename a misleadingly named build feature and fail loudly when a release lacks it+182 −134 · 6 files#1354
- OpenJun 2026Remove a SQLite pragma that affected no queries+79 −5 · 2 files#1353