REMI 2.1 for Windows
====================
Windows build 11 (2.1.0.10)
Security update: Werkzeug 3.1.9 rejects unsafe Windows static-file paths.

This package includes two independent launchers:
  - REMI: personal use on this computer with your saved API key.
  - Host REMI Website: a website where each visitor enters their own API key.
For website hosting, start with README-Website.txt. The steps below describe
personal REMI.

1. Open REMI from your desktop or Start menu.
2. On the first launch, enter your NCBI API key, then select Start REMI.
   A contact email is optional. The Flask secret key is generated
   automatically for your own installation.
3. REMI opens in your default browser. Keep the small REMI control window
   open while using it. Minimize that window if you prefer.
4. Close the control window, or choose Stop & close, to stop REMI.

Python and all required application packages are included. A separate
Python installation, administrator access, and command-line setup are not
required. This package targets Windows 10/11, 64-bit Intel/AMD (x64).

Searches require an internet connection and an NCBI API key. REMI will not
start without a key. Create one in your NCBI account settings:
    https://account.ncbi.nlm.nih.gov/settings/
To change the key later, open REMI Settings from the Start menu, or edit
the fields in the control window and select Save & restart. Restarting
stops any current search.

About this build
----------------
Host REMI Website includes an experimental Synonym Finder for recurring
title wording for a MeSH major topic. See README-Website.txt for the
website's features.
See README-Website.txt for startup, hosting configuration and session limits.

Search functionality
---------------------
Keyword Search now accepts the same three-character single-word wildcard
seeds as Proximity Search. For example:
    app*  -> app OR appa* OR appb* ... OR appz*
    app*l -> appl OR appa*l OR appb*l ... OR appz*l
Every alternative is searched in PubMed title/abstract. This uses A-Z letter
branches plus the exact zero-character match. REMI retains matching variants
in the results and excludes already discovered words individually in later
requests. It never excludes the whole app* prefix. Keyword Search uses this
expansion in its initial request and every later iteration, retaining dates,
the hyphen setting, partial results, clipboard copy and CSV export.
Proximity Search also retains its three-character support, Precise Proximity
and OR terms.
Single-word seeds shorter than three characters are still rejected.

The Clean button remains available after Generate Proximity Search. Set a
whole-number threshold from 0 to 999. REMI checks each clause in order and
removes those with a PubMed result count less than or equal to that value.
Failed checks are retained and listed as unchecked. Cancel preserves the
original query. Copy and TXT/DOC exports use the successfully cleaned query.

PubMed HTTP traffic shares an upper limit of 10 requests per second in this
application. Actual speed also depends on network latency and PubMed.
The API key remains mandatory. UTF-8 logs retain the earlier fix for Windows
'charmap' failures caused by non-Latin PubMed text.

To update, close the REMI control window and run this installer again.
Your saved NCBI key and other settings are retained.

Your settings, automatically generated secret, cache and log are stored in:
    %LOCALAPPDATA%\REMI
Your settings are retained across updates and uninstalling the application.
You can delete that folder after uninstalling if you want to remove them.
Keep config.ini private; it can contain your personal NCBI API key.

The server listens only on 127.0.0.1 and chooses an available port
automatically. Use Open REMI in the control window to reopen the right URL.
No Windows service or automatic startup entry is installed.

If startup fails, inspect:
    %LOCALAPPDATA%\REMI\remi.log
Close REMI before updating or uninstalling it. To uninstall, use Windows
Settings > Apps or the Uninstall REMI entry in the Start menu.

About this package
------------------
This is an independently prepared installer of REMI 2.1 from:
    https://github.com/MaastrichtU-Library/remi
Source commit:
    6f80c52d8ad818820be2942e668e3a4ef640e7ff

The application source, including this build's changes, is included in app/. The desktop launcher
source is in desktop.py, desktop_common.py and server.py. Installer source,
dependency versions and runtime provenance are included in packaging/.
The desktop support files are distributed under GNU AGPL v3.0.

The original source code is licensed under GNU AGPL v3.0; see app/LICENSE.
Documentation and original visual materials have separate terms; see
app/LICENSE-CONTENT.md. University names, logos and trademarks remain their
owners' property. This packaging is not an official university release.
Third-party software retains its own licences. See THIRD-PARTY-NOTICES.txt
and the licence files included in the Python runtime and package metadata.

Verification
------------
Offline backend regressions and DOM integration checks have been run on the
build host with controlled PubMed responses. No real NCBI credentials were
used. The installer payload is extracted and compared with its source files.
A native Windows installation and live API-key search were not run here.
The installer is unsigned; organizational Windows policies may block it.

To run the included offline backend tests from the installation directory:
    python\python.exe -B -m unittest discover -s packaging -p "test_*.py" -v
Tests create temporary settings and do not alter your saved API key.
