Skip to content

Releases

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 09 Nov 11:39

Full Changelog: v0.9.0...v0.10.0

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 20:32

Full Changelog: v0.8.0...v0.9.0

ADSfolio 0.8.0

Choose a tag to compare

@github-actions github-actions released this 02 Nov 10:08

ADSfolio 0.8.0 adds automatic candidate verification and selected-PDF identification with renaming.

Automatic candidate verification

  • Fetch the exact ADS candidate automatically when the watcher or Identify cannot verify a saved association locally.
    Matching PDF identifiers save verified provenance and continue normal processing without a notification approval step.
  • Reuse saved proofs and cached provider records when they verify the PDF.
    Preserve notes, locked fields, PDF contents, and the selected Rename template.
  • Retain review or retry actions for candidates that remain unverifiable.
    Disabled providers, unavailable records, service failures, changed files, and conflicting identifiers do not grant an association.

Complete, persistent Notifications

  • Keep Notifications open after action icons, review dialogs, and clicks elsewhere.
    Close it with its close icon, Escape, or the toolbar toggle.
  • Show every queued notification in the scrollable panel with its own actions.
    Remove the collapsed “more” queue display. Preserve per-file action routing.
  • Offer Verify This ID as a retry when automatic candidate verification cannot finish.
    Fetch its ADS record and check the current PDF before updating or renaming.
    Preserve manual Use This ID review and identifier-conflict checks.

Merge defaults and rename outcomes

  • Enable Move originals to Trash after merge by default in annotation review.
    After a complete, verified save, keep only the merged PDF in the active library.
    Clear the option before saving to keep inputs in place. Partial merges keep their inputs.
    Cleanup failures retain failed inputs and open the retry dialog.
  • Report filenames that already match the selected Rename rule.
    Report missing files, changed contents, unavailable metadata, and existing destinations individually.
  • Use the exact selected Rename template in batch, single-file, and identity-repair operations.
    Remove the hidden substitution of {year} for {bibcode} when no ADS bibcode exists.
    Keep missing fields as empty components, consistent with custom-template rendering.

Lookup and recovery

  • Check reference-search candidates against the selected PDF before applying
    metadata. Recover from a coauthor match through the PDF's own DOI or arXiv ID.
    Keep explicit conflicting identifiers blocked.
  • Try later enabled providers after outages or rejected DOI candidates.
    Apply saved provider order to manual updates and automatic identification.
    Report service failures instead of claiming that no record exists.
  • Read complete ADS identifier results before deciding uniqueness. Stop an
    incomplete or changing response from producing an automatic association.
  • Honor the GUI's Identify scope during Update by ID. Count external metadata
    separately from ADS bibcodes in the job log.

Preserve files and inputs

  • Preserve existing direct and printed PDF downloads. Give new downloads
    numeric suffixes. Reject HTML error pages and try the next download source.
  • Prevent unresolved-file moves from replacing a destination created during
    processing. Retain missing-location history for files moved outside the
    library. Roll the move back if the catalog update fails.
  • Create upgrade backups exclusively so another backup cannot be overwritten.
  • Stage complete Obsidian notes before replacing an unchanged existing note.
    Preserve manual text after a write failure. Skip notes that changed during export.
  • Preserve existing unresolved CSV reports and selected AI inputs. Number new
    reports and print their actual paths in the job log.

Settings and selected actions

  • Use independent private temporary files for simultaneous settings saves.
    Serialize final replacements within one process to prevent concurrent Windows move failures.
    A failed replacement keeps the existing file. Retry the save after resolving the error.
  • Add Identify & Rename Selected PDF to the table's right-click menu.
    Process one or several selected PDFs with saved Identify and Rename settings.
    Leave unverified files, existing destinations, and unselected PDFs unchanged.
    Use the job log and Update by ID… to review skipped files.
  • Add repeatable pdf rename --file selection. Keep the same selection through
    optional identification and renaming, including files in subfolders.
  • Allow newly verified external metadata to clear stale status after a scan.
    Recheck the current PDF before clearing it. Missing or conflicting identity
    proof still prevents renaming.

Identify results

  • Report verified saved metadata separately in Identify results. This includes
    PDFs with metadata from other providers and no ADS bibcode.
  • Show file-move advice only when Identify previews moves. Report when no
    moves are planned. For a preview, enable Apply file moves in Identify
    or rerun the CLI command with --apply.
  • Count unreadable PDFs separately instead of omitting them from the summary.

v0.7.4

Choose a tag to compare

@github-actions github-actions released this 28 Oct 15:15

Notifications without layout movement

  • Move warnings and sidebar-view explanations into Notifications in the
    toolbar. Scroll long messages without moving the main panes. Keep pending
    messages visible through a count and severity indicator.
  • Use compact icon buttons for notice actions. Display tooltips immediately
    on hover or keyboard focus. Keep action names available to screen readers.

Review and identify PDFs

  • Add Use This ID to confirm a displayed candidate without entering its
    bibcode again. Apply saved Rename settings while preserving PDF contents.
    Changed PDFs, changed candidates, and conflicting identifiers still stop the update.
  • Add View ADS Entry to unverified ADS candidate notices. Open the proposed
    record beside Open PDF to compare metadata before confirming a match.
    The link follows the notice and does not update metadata or rename the PDF.
  • Accept matching document DOIs when PDF and provider titles differ only in
    quote typography or subtitle separators. Metadata, page 1, and the provider
    must still agree on the exact DOI. PDF contents remain unchanged.
  • Explain why a candidate needs review. Notices name failed DOI or title
    checks and offer a recovery action without repeating the filename.

Safe filename conflicts

  • Treat equivalent filename spellings for the same file as an unchanged rename.
    This prevents false destination conflicts on macOS with accented author names.
  • Review watched rename conflicts with Show Both PDFs. Compare the selected
    files before choosing which copy to keep or reviewing an annotation merge.
    Clear search filters and select only the two exact paths.

v0.7.3

Choose a tag to compare

@github-actions github-actions released this 28 Oct 10:09
  • Keep ADS fallback enabled. Save the choice for all libraries or one
    library with Save Defaults. Identify restores it after reopening or
    restarting the app. Query-count limits and PDF identity checks still apply.
  • Override one CLI run. Identify inherits the saved ADS preference.
    --allow-ads permits fallback without confirmation. --no-allow-ads restores
    confirmation. Neither option changes saved defaults.
  • Read current documentation. Updated screenshots and walkthrough videos
    show the current controls. Documentation and website version labels now
    use the package version automatically. Historical migration versions stay fixed.

v0.7.2

Choose a tag to compare

@github-actions github-actions released this 28 Oct 04:34

Windows compatibility

  • Use operating-system file locks for catalog recovery. Flush journal data
    before atomic replacement. POSIX also flushes the parent directory.
  • Keep unchanged catalog paths free of write transactions. Recursive
    identification can continue when Windows normalizes different path
    spellings to the same path.

Versions 0.7.0 and 0.7.1 did not publish because Windows release checks failed.

Identify papers without changing PDF contents

  • Check the actual PDF. Identify, Rename, ADS refresh, and the watcher now
    check readable identifiers against the provider record. File names and title
    similarity alone cannot establish a match. Readable identifier conflicts
    block changes. Existing records receive the same check before updates.
  • Read more publisher metadata. A complete labeled DOI in the PDF metadata
    title now identifies the PDF. A DOI in Subject can also identify the PDF when
    the first page repeats it and the metadata title matches the provider title.
    A DOI mentioned in ordinary prose does not establish identity.
  • Tolerate malformed optional XMP. An unreadable XMP block no longer
    invalidates a matching DOI from another source. ADSfolio records the parser
    warning. It also reads declared DOI properties past unrelated undeclared
    prefixes. Readable conflicting identifiers still block the match.
  • Recover from a failed lookup. Failed and unresolved notices now offer
    Open PDF and Update by ID…. Identifier lookup fills publication fields
    and applies saved Rename settings. It also works for an unregistered PDF.
    Enter Details… remains an optional local fallback.
  • Review an uncertain match explicitly. A PDF without readable identity
    evidence needs your review. The CLI accepts --confirm-identity with
    --relative-path for one PDF. Stored confirmation applies only to the same
    file contents and record. No confirmation overrides a readable conflict.

Replace PDFs and keep their history

  • Deleted PDFs no longer reserve active paths or block replacement filenames.
    Watching updates the visible library after a deletion.
  • A verified replacement can rejoin one uniquely matching absent attachment.
    It preserves notes, locked fields, and content history. Existing editions
    remain separate. Ambiguous missing editions remain separate too.
  • Same-path updates, atomic replacements, and changes made while the app was
    closed receive identity checks. A rename by ADSfolio does not repeat a lookup
    for unchanged contents.
  • Automatic edition-merge prompts now require a shared identifier. You can
    still select two PDFs and start a merge explicitly.

Read the library state

  • The status column distinguishes an ADS link, usable local metadata, and
    a PDF that needs identification. A changed PDF shows a warning marker.
    Clicking the marker selects the PDF and opens its detail pane.
  • N_author and Citations show saved counts. A blank means unknown.
    A known citation count of zero appears as 0.
  • Compact toolbar icons show their action and scope in tooltips. The Identify
    badge counts catalogued PDFs that need an ADS lookup across the library.
  • Discrete horizontal mouse-wheel scrolling now uses the same bounded step
    as Shift scrolling. Ordinary vertical scrolling and smooth trackpad input
    retain their native behavior.

Export PDF annotations to Obsidian

  • Export now includes highlights, underlines, strikeouts, squiggles, and text
    comments in a managed PDF annotations section.
  • Repeated export updates that section while preserving other note text.
    Unchanged notes keep their modification time. --force regenerates the
    entire note and replaces manual edits.
  • Export skips unreadable PDFs, invalid section markers, and notes that change
    during export. PDF contents remain unchanged.

Documentation

  • The guides now explain identity evidence, automatic lookup settings, and
    recovery through Open PDF and Update by ID….
  • AGENTS.md requires the ADHD and ASD-STE100 skills for documentation,
    docstrings, responses, and release notes.

v0.6.3

Choose a tag to compare

@github-actions github-actions released this 23 Oct 08:23

Merging PDF editions

  • Find the other edition. Before: a newly identified preprint or published
    PDF had no merge prompt, and selected rows had no merge action. Now: the
    watcher offers Review Merge… when stored identifiers link the editions.
    If ADS has no shared identifier, you can choose the source explicitly.
    Select two rows and choose Merge Selected PDFs… to start directly.
  • Review annotations in one window. Before: you had to navigate both PDFs
    and place most annotations manually. Now: selecting an annotation opens the
    relevant pages and shows matching passages side by side. Local text search
    finds exact passages and the closest wording. Changed words, numbers, and
    symbols remain visible for review. Accept & Next, target text search,
    and Undo decision reduce navigation. Every placement still needs approval.
    Matching needs no account, API key, network connection, or downloaded model.
  • Keep the final merged PDF. Before: the merged copy stayed outside the
    catalog, and originals needed separate cleanup. Now: for library PDFs,
    saving the verified copy inside an open library folder registers it with the
    canonical PDF's metadata. After a complete save,
    Remove original PDFs… lets you choose which inputs to move to Trash.
    Keep originals is the default. Cleanup checks that the result and inputs
    are unchanged, and retains catalog history. Sequential complete merges can
    collect three or more originals and intermediate copies for one cleanup.
  • Handle source links separately. Before: hundreds of source hyperlinks
    could obscure reader annotations. Now: reader marks appear first. You can
    show source links or explicitly exclude them together. The target keeps its
    own links. Before cleanup, the dialog reports waived annotations and explains
    that other editions contribute annotations, not their pages or attachments.

Library workflows

  • Choose an export format. Before: separate menu actions hardcoded BibTeX
    or a publication list. Now: Export Selection As… and Export All As…
    let you choose either format. Export All includes every current PDF in the
    library, including rows hidden by filters or not yet loaded in the table.
  • Export ADS abstracts safely. Before: literal braces in an abstract could
    stop BibTeX export with a parser error. Now: export escapes those braces
    safely. Other invalid fields produce a message that names the paper,
    citation key, and fields to correct. Stored metadata stays unchanged.
  • Reveal files from notices. Before: an unresolved or failed file notice
    gave no way to locate the PDF. Now: Reveal in Finder on macOS, or
    Reveal in File Manager elsewhere, opens its current location. The notice
    stays available after a rename, move, or change of selection.
  • Enter details without a lookup. Before: unresolved and failed PDFs
    depended on another provider lookup. Now: Enter Details… saves local
    title, author, year, journal, and DOI fields without changing the PDF's name
    or location. Changed fields are locked against provider updates. Both warning
    states offer this action.
  • Identify from a bibliographic reference. Before: manual lookup help did
    not define the reference fields. Now: the app and CLI explain
    {authorLastName}-{year}-{bibstem} and {bibstem}-{volume}-{page}, including
    full journal names. These reference formats query ADS only. DOI and arXiv
    lookups retain their existing provider choices.

Fixed

  • Obsidian export for large libraries. Before: fetching missing abstracts
    put up to 200 bibcodes in a GET URL, which ADS could reject as too long.
    Now: the request uses the existing bulk POST API, with up to 2,000 bibcodes
    in each request body. Dry runs and existing-note protection stay the same.
  • Changed PDFs during manual entry. Before: a same-size rewrite could pass
    the file check when the filesystem retained the same modification time.
    Now: saving manual metadata also checks the PDF's content digest. A changed
    PDF keeps the dialog and warning open for another review.
  • Detail pane on Windows. Before: the extra metadata action could force
    the detail pane wider than the publication table. Now: the actions use two
    columns so the default pane sizes remain usable.
  • Cancellation tests on slower machines. Before: three tests created a
    signal waiter without starting it, then relied on a fixed 20 ms delay.
    Now: they wait for the worker's completion signal before checking results.

Compatibility

  • Retire earlier application formats. Before: readers also searched for
    sidecars, catalogs, and reserved metadata keys under the earlier application
    name. Now: those compatibility readers are removed. Existing ADSfolio-named
    files remain supported. Before upgrading from the earlier application, open
    ADSfolio 0.6.0 once to convert its catalog and import its per-library files.
    Version 0.6.3 still copies earlier data directories, but it no longer converts
    their reserved keys. An unconverted catalog's manual locks, author text, and
    local references are not honoured. Keep the original data until you verify
    the converted library.

Full Changelog: v0.6.0...v0.6.3

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 07:56

Full Changelog: v0.5.1...v0.6.0

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 22 Oct 01:57

Full Changelog: v0.5.0...v0.5.1

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 01:27

Full Changelog: v0.4.0...v0.5.0