Development journal ·
Download Desk: project context and local file checks
Betas31–32 build Download Desk around project context, pins, notes, SHA-256 comparison and inventory exports. Selected files now support bulk controls and workspace assignment; editor drafts survive list refreshes, and failed history saves remain visible. Beta33 fixes overlapping tab titles in compact chrome.
A record with context
In plain language
Files downloaded from a project remember where they came from. Pin important records and attach a note so the purpose stays close to the file.
Engineering notes
The Electron will-download originating WebContents is mapped to its tab and workspace. History normalization bounds note and source metadata. Pinned records survive the 200-record retention window and explicit finished-history cleanup. Source-less transfers remain in General.
Content comparison and history resilience
In plain language
Compare a file with its first recorded fingerprint or a publisher’s digest. If the history cannot save, Sill tells you and offers a retry. Fingerprints compare content; they do not prove that a file is safe.
Engineering notes
SHA-256 uses a streaming 64 KB read buffer, with size and modification-time checks before and after hashing. One fingerprint check runs at a time; removal and cleanup protect the checking record. History persistence catches filesystem failures and retains the previous disk file while exposing a retry control. The JSON manifest omits notes, local paths and detailed URLs.
Validation
In plain language
The tested build downloaded a real local fixture, paused and resumed it, checked its content, and kept pinned history through cleanup.
Engineering notes
All 64 Node checks passed. The packaged browser passed 10 real-transfer checks covering progress, pause/resume, notes, pins, publisher-digest comparison, cancellation, persisted history and cleanup. The website image is an actual capture from that isolated test.
Selected files as a working set
In plain language
Select the files you need, pause or resume them together, pin their records or assign them to a project. Changing a filter no longer discards the note you were typing. Save it before closing Sill.
Engineering notes
Beta32 adds bounded, deduplicated batch operations. Main-process dispatch validates workspace IDs, scopes operations to explicit download IDs, skips ineligible states and confirms cancellation through the branded dialog. Renderer selection is intersected with the currently filtered view. In-memory editor drafts survive DOM reconstruction and are cleared only when the acknowledged saved value still matches the draft. These editor drafts are not persisted across process exit. Metadata changes are committed once per batch to avoid one fsync and renderer broadcast per file.
Testing the complete download workflow
In plain language
Two real test files were downloaded from a test page. The browser handled them together, kept their project context, preserved notes during refreshes and recovered from a deliberately blocked history save. The new screenshot shows that tested interface.
Engineering notes
The beta32 unit suite passes 66 checks. The packaged build passes 13 real-transfer and UI checks: page attribution, two-file pause/resume, editor preservation, renderer batch pinning, SHA-256 matching, project assignment, a synthetic ENOSPC history failure with UI retry, manifest export through trusted IPC, cancellation and cleanup. The native save-dialog selection is stubbed in the export test; file creation and manifest privacy are exercised.
Compact tabs keep their labels inside the tab
In plain language
Shrinking the toolbar no longer makes tab titles overlap. Long titles shorten with an ellipsis, and hovering shows the complete title. Extra tabs remain available by scrolling the tab strip.
Engineering notes
The density stylesheet applied flex-shrink:0 to every chrome button. Narrowed tab containers retained wider title buttons, which painted across neighboring tabs. Tab containers now retain a stable width and clip their contents; the title button uses flex:1 1 auto with min-width:0 and ellipsis, while its close control stays fixed. Hover tooltips include the complete title and URL. A packaged regression test checks label and close-control rectangles at 20 width/density combinations, including pinned tabs.