v0.1.2
[0.1.2] — 2026-05-03
UX patch: per-phase upload progress feedback. Indexing is no longer a
black box from the UI's perspective.
Added
pipeline.ProgressEventextended withFile,ChunksDone,
ChunksTotal. The pipeline now emits progress events at every phase
boundary inindexFile(chunked → embed → entities → relationships →
claims → structure → done) via a non-blocking send so a slow consumer
never stalls indexing. Existing CLI callers that pass anilprogress
channel keep working unchanged. (#94)GET /api/upload/progress?job_id=...now streams JSON-encoded
ProgressEventframes over SSE: each frame carries
{job_id, file, phase, chunks_done, chunks_total, message, done, error},
ending with a terminaldone:trueevent that includes the final error
string (if any). The legacy plaintext message format is preserved when
callers omit?job_idso older integrations keep working. (#94)- New
useUploadProgressReact hook backed byfetch+
ReadableStream, with a shared store viauseSyncExternalStoreso
any component can subscribe to a job's live state. (#94)
Changed
- Documents → Upload modal now renders a per-file row with the current
phase label, a chunk progress counter (embed 12/47 chunks), and an
inline error message for any phase that fails.aria-live=politeso
the progress is announced to screen readers. The previous modal showed
nothing past "uploading" until the indexing job completed. (#94)
Upgrade impact
Drop-in. The structured SSE format is opt-in via the new ?job_id=...
query parameter; clients that omit it still receive plaintext events.
No schema changes, no breaking API changes.
Verify
All artifacts are signed with cosign keyless via Sigstore.
cosign verify-blob \
--certificate-identity-regexp 'https://github.com/RandomCodeSpace/docsiq/\.github/workflows/release\.yml.*' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--certificate docsiq-v0.1.2-linux-amd64.pem \
--signature docsiq-v0.1.2-linux-amd64.sig \
docsiq-v0.1.2-linux-amd64