Releases: sadeghanisi/SLR
Release list
SLR Assistant v3.5.2
SLR Assistant v3.5.2
This release consolidates the v3.5.x Workspace UX/navigation redesign, persistent
workspace references and PDF metadata, the Human Review Queue, AI suggestions as
non-final, human decisions as final, workspace dedup persistence, and
workspace-scoped exports/cache/audit. It is the first release to ship Workspace
Exports, PRISMA-ready reporting data, and Methods Disclosure via the workspace
database.
Added
- Workspace Mode UX/navigation redesign. Clear start screen separating
+ New Workspace,Open Existing Workspace,Recent Workspaces, and
Continue Without Workspace. Workspace Mode and Legacy Mode are labeled
explicitly in the WebApp header. - Guided workspace creation. A researcher can create a workspace using only
a review title; no manual absolute path entry is required. The workspace lands
under a safe default location (~/SLR Assistant Workspaces) with
collision-safe folder names. Manual path entry remains available as an
advanced option. - Recent workspace cards. Recent workspaces reopen from a card list via
workspace_idwithout exposing absolute filesystem paths through the API. - Persistent workspace references, source provenance, and PDF metadata.
Imports, parsed records, record-to-source links, and PDF metadata persist in
workspace.sqlite3and reload correctly on reopen, not just as counts. - Workspace-type review metadata. Optional
review_title,review_type,
review_question, andreviewer_nameare stored on the workspace for
display only; they do not alter screening, deduplication, or count
definitions. - Human Review Queue foundation. Persistent
review_itemsanddecisions
workflow using the existing SQLite workspace database. - Workspace review endpoints:
GET /api/workspace/review/queuePOST /api/workspace/review/decisionPOST /api/workspace/review/accept-aiPOST /api/workspace/review/overrideGET /api/workspace/review/summary
- Compact WebApp review queue card with status filter, AI suggestion, human
final decision, rationale field, exclusion reason dropdown, and Include /
Exclude / Maybe / Accept AI actions. - AI suggestions are treated as non-final. AI include/exclude/maybe output
is stored asactor_type = aiand never counts as a final eligibility
decision. A human Include / Exclude / Maybe decision is required for final
status. - Human decisions as final. Human Include / Exclude / Maybe decisions
override AI suggestions and become the final eligibility decision in
workspace summaries and exports. - Workspace dedup persistence. DOI and fuzzy-title deduplication marks
records inactive while retaining them for audit; active unique and duplicate
counts persist across reopen. - First-class
record_origin. Records carryrecord_originof
imported_reference,pdf_only, ormanual, so exports and PRISMA-ready
counts distinguish database/reference imports from PDFs added without
reference metadata. PDF-only records are usable in the review queue and
counted separately from imported reference records. - Workspace-scoped exports/cache/audit. Processing runs write output,
cache, and audit artifacts under workspaceexports/,cache/, and
audit/as workspace-relative paths. - Workspace Exports. Workspace reporting data generated from the local
workspace database:- New Workspace export endpoints:
GET /api/workspace/exports/summaryPOST /api/workspace/exports/generateGET /api/workspace/exports/listGET /api/workspace/exports/download/<export_id>/<filename>
- Workspace export files under
workspace/exports/<export_id>/:workspace_screening_decisions.csvworkspace_screening_decisions.xlsxworkspace_review_items.csvworkspace_ai_suggestions.csvworkspace_human_decisions.csvworkspace_full_text_exclusions.csvprisma_ready_counts.jsonprisma_ready_counts.csvmethods_disclosure.mdexport_manifest.json
- New Workspace export endpoints:
- PRISMA-ready reporting data. PRISMA-ready counts derived from workspace
SQLite data, including active unique imported references, duplicate records
hidden from active screening, PDF-only records, manual records, AI-only
unfinalized suggestions, human final decisions by stage, failed items, and
full-text exclusions by reason. Counts markednot_availableare not
fabricated. - Methods Disclosure. Conservative
methods_disclosure.mddraft explaining
local-first mode, AI suggestions, human-final decisions, deduplication,
record origins, AI provider/model metadata where available, full-text
exclusion handling, and limitations. It does not claim PRISMA compliance. - Reference-list search and pagination. The in-workspace reference list is
bounded and scrollable, withShowing X of Y recordscopy, search across
title/authors/year/journal/doi/record_id, andpage/per_pagepagination
metadata. - Workspace progress panel showing local database counts for imported
reference records, PDF-only records, manual records, sources, PDFs, review
items, AI suggestions, human decisions, and pending/final statuses. - Review queue filter context showing current stage/status/origin filters,
visible item count, total review item count, imported-reference count, and
PDF-only count. The WebApp explains when a queue view is a filtered subset of
a much larger imported reference set. - Compact Workspace Exports panel in the WebApp Results stage.
- Default local reviewer and default exclusion reasons.
- Workspace audit events for AI suggestions, human decision actions, PDF
uploads/deletes, and reference imports/deduplication. - Tests for AI suggestions, human decisions, full-text exclusion reasons,
accept/override behavior, queue persistence, restart/reopen behavior,
workspace summary/filter metadata, origin counts, reference-list pagination,
recent-workspace privacy, and privacy scrubbing. - Co-author citation metadata, including ORCID, affiliation, and public profile
references in project documentation.
Changed
- Review status transitions are centralized in
workspace_store.py. - Workspace exports use human final decisions as final eligibility decisions.
AI-only suggestions are explicitly labeled as not final
(final_decision_source = ai_suggestion_not_final). - Duplicate and inactive records are retained in audit/export rows but
excluded from active screening counts. - Full-text human exclude decisions require an exclusion reason.
- Workspace summaries now include review item and decision counts.
- Export manifests and APIs return workspace-relative paths only.
Security
- Decision and audit metadata continue to scrub API keys, raw secrets, full
prompts, raw provider request bodies, and full paper text. AI metadata
persisted in workspace decisions is limited to sanitized fields such as
provider, model, prompt hash, text hash, cache key, confidence, and
rationale. - Workspace export metadata avoids absolute workspace paths in API responses.
- Export downloads validate that the requested file remains inside the
selected workspace export folder. - Workspace paths reject traversal and unsafe roots (filesystem root, drive
root, home directory), and registered PDFs confined to workspacepdfs/.
Known Limitations
- Workspace review queue is a single-reviewer foundation only. There is no
dual reviewer workflow and no kappa calculation. - There is no conflict UI or adjudication workflow for disagreeing
reviewers. - There is no extraction workflow persistence or extraction review in the
workspace database yet; structured extraction remains run-based. - There is no OCR step for scanned PDFs.
- There is no risk-of-bias or quality appraisal tooling.
- There is no SaaS, login, or multi-user behavior; the Web App remains
local-first on the researcher's own computer. - There is no automatic PRISMA compliance. PRISMA-ready counts are derived
from workspace data and must be checked against the protocol, search logs,
and final human decisions before reporting. - Full-text report availability remains
not_availableunless tracked
separately; full-text reports are not yet represented as a distinct
availability count in the workspace schema. - Legacy run-based exports remain unchanged; use Workspace Exports for
workspace-decision-aware reporting data.
SLR Assistant v3.4.0-rc.1
SLR Assistant v3.4.0-rc.1 Release Notes
What Changed
- Added provider profiles, including OpenAI-compatible provider profiles.
- Added provider privacy labels so users can distinguish local, direct cloud, router, and custom endpoint behavior.
- Hardened local-first privacy behavior and API key handling.
- Added configuration-aware JSON cache keys and a JSONL audit ledger.
- Added provider-level rate limiting.
- Fixed WebApp PDF screening counters, results, and report visibility.
- Fixed recursive PDF discovery and same-basename PDF handling in subfolders.
- Added a reproducible synthetic mocked benchmark suite and benchmark report.
- Updated release metadata and documentation for conservative AI-assisted, PRISMA-aligned wording.
Why It Matters
This release candidate focuses on reproducibility, privacy, and operational clarity. It improves how runs are cached and audited, makes provider behavior easier to reason about, and fixes PDF workflow issues that could obscure results in the local WebApp.
Upgrade Notes
- API keys are not saved to plaintext settings files. Re-enter keys when needed or use supported environment/credential mechanisms.
- Runtime cache loading is JSON-only. Legacy pickle cache files are not loaded automatically.
- Review cache and audit outputs before using generated results in research outputs.
- The WebApp remains local-only and should stay bound to
127.0.0.1.
Known Limitations
- SLR Assistant is not a full collaborative review management platform.
- There is no Project/Workspace model yet.
- Dual-reviewer workflows and conflict adjudication are not implemented yet.
- PRISMA support is partial and does not guarantee PRISMA compliance.
- There is no formal real-world LLM validation benchmark yet.
- Page-level quote tracing is not implemented yet.
Validation
python -m py_compile llm_interface.py slr_gui.py housing_enhanced.py WebApp/app.py benchmarks/run_benchmarks.py-> passed.python -m pytest -q-> 82 passed.python benchmarks/run_benchmarks.py --quick-> passed in 33.324 seconds.- Tests and benchmarks used mocked/fake providers only and made no external LLM API calls.
Benchmark Scope
The benchmark suite uses deterministic synthetic data and fake provider responses. It is suitable for smoke/performance documentation of engineering behavior, but it does not measure real-world LLM accuracy, latency, cost, token usage, or provider availability.
v3.4.0-beta.1
Highlights
- Updated README, Complete User Guide, WebApp, GUI, and GitHub Pages version references to
3.4.0-beta.1. - Softened positioning to AI-assisted systematic/scoping review workflows with required human verification.
- Documented local-first privacy behavior, API-key handling, provider privacy labels, JSON-only runtime cache loading, configuration-aware cache keys, and audit JSONL output.
- Documented the WebApp PDF counters/results/report visibility fix.
- Removed emoji-range characters from README documentation.
Validation
python -m py_compile llm_interface.py slr_gui.py housing_enhanced.py WebApp/app.pypython -m pytest -q->63 passed
v3.4.0-beta.2
Changes
- Added opt-in recursive PDF discovery with clear relative filenames for PDFs in subfolders.
- Added a centralized version source in
version.pyand ascripts/sync_version.pypropagation/check script. - Updated runtime modules, WebApp templates, docs, and GitHub Pages metadata to
v3.4.0-beta.2. - Added tests for PDF subfolder behavior and version synchronization.
Validation
python -m py_compile version.py scripts/sync_version.py llm_interface.py ingestion.py slr_gui.py housing_enhanced.py WebApp/app.pypython -m pytest -q(71 passed)