Spaces:
Running
Running
Commit History
9 days ago
-
Faster and steadier: jobs survive silent connection drops, Journal Finder warm start, parallel lookups and caches, fast engine up to FAST_MAX_WORDS
unknown +1: Claude Opus 5.5Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>1f241b9 -
Professional interface: slim sticky top bar, plain text menu, clear page heading, large drop zone
unknown +1: Claude Opus 5.5- ui_theme.py: one design layer (UI_THEME=0 turns it off): Inter, a calm navy/indigo palette, consistent cards, spacing and radii; brand and account actions in one sticky top bar; the main menu is one line of text tabs that scrolls sideways on phones (it used to fill the whole first screen); sub-tabs as pills; a large Word drop zone; a clean sign-in card; a quiet footer. Fed through the app's css= so Gradio scopes it like the older rules and it wins. - app.py: the brand moves into the top bar; the main tool gets a heading, three steps and what is guaranteed; labels of tabs and buttons without emoji; the signed-in top bar shows name and plan (details on hover). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>14adf4d
16 days ago
-
Remove "Open in Overleaf"; dashboard covers every tool and pay per use
unknown +1: Claude Opus 5.5Formatter - No button that sends the project to Overleaf: the customer downloads the LaTeX zip and uploads it himself (New Project -> Upload Project); a note under the files says how. public_url and the Overleaf API code are gone. Dashboard - TOOLS now lists Proofread, Journal Formatter and Journal Finder, so they appear in the charts, the admin tool filter and the tool table. - Formatter and Finder runs are written to the run history (they ran outside the shared job wrapper and were not recorded). A formatted paper can be downloaded again from the dashboard. - A journal search is shown as "Search" and no longer counted as a pasted text. - Customer: tiles for proofreads, papers formatted and journal searches; results waiting for payment listed with price, reference and a Pay link. - Admin: tiles for the new tools (30 days) and for pay per use (awaiting payment, paid, cost). tests/test_dashboard.py; Overleaf tests replaced. 97 tests pass. Not opened in a browser fo…ec28ce1 -
Formatter and Finder tabs: download buttons that carry the file
unknown +1: Claude Opus 5.5Downloads did not work in the two new tabs: they offered results only through Gradio's file box, whose link goes back to the server and is blocked when the app is opened on the custom domain or in a frame. - tools_common.download_link / download_row: buttons with the file in a data link, the same way the other tabs' download buttons work. - Formatter: Word document, LaTeX project and report buttons. - Finder: shortlist and all-journals CSV buttons (also after a search that shortlisted nothing). - The file boxes stay as a second route. Tests added (95 in total). Not checked on screen (the browser pane was hidden during this change). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>ee3bfc0 -
Formatter and Finder tabs: the suite's animated status panel; finder data fixes
unknown +1: Claude Opus 5.5- Both tabs now run their jobs through the shared live status panel (waiting card, spinning logo, progress bar, elapsed time, Stop & reset) instead of Gradio's plain loader. app.py hands the shared look to build(ui); without it the tabs fall back to Gradio's progress. - "Work out the subject" shows the animated waiting card; both tabs start with the styled idle hint. - Finder shortlist: the PubMed column read as text ("False") no longer shows as "yes". - finder_tab.freshen_data_caches(): the parsed copies of the big lists shipped with the app are marked current at start-up, so the first search after a restart does not re-read Scopus / SCImago / PubMed / ABDC (the pipeline trusts a copy only if it is newer than its list, and a checkout gives files arbitrary times). Parsed copies refreshed. - Tests for the above (94 in total). Checked in a browser on the local app: waiting card and logo panel appear on the Finder tab, subject detection and a full search (10 journals, 1…f2e0b82 -
Open in Overleaf: respect Overleaf's request size limit
unknown +1: Claude Opus 5.5Overleaf answered a posted project with "Something went wrong ... there was a problem with your request": HTTP 413. Measured limit: a 1.98 MB request is accepted, 2.13 MB is refused, i.e. a zip of about 1.4 MB once it is base64 in a form. The cut-off had been a guessed 6 MB. - The button now measures the real request and posts the project only when it stays under OVERLEAF_POST_MB (1.8): a zip up to about 1.2 MB. - A larger project is handed over by its public address on the Space (snip_uri=https://...), which Overleaf downloads itself. - With neither possible the page says so and explains the manual upload. - Test that every posted project fits the limit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>cdcade6 -
Open in Overleaf posts the project itself; tests for the formatter and finder tabs
unknown +1: Claude Opus 5.5- formatter_tab.overleaf_html: the LaTeX zip is sent to Overleaf's API (overleaf.com/devs) in a POST form as snip_uri=data:application/zip; base64, with engine=pdflatex and main_document=main.tex. Overleaf no longer has to download it from the Space, so the button works on a private or sleeping Space and on a local run. - A project above OVERLEAF_EMBED_MB (6) goes by its public address as before; without one, only the manual upload is explained. - tests/test_tools_tabs.py: formatting a Word manuscript (Word, LaTeX zip with main.tex at the top level, report), the three Overleaf cases, finder job options, shortlist table, input checks, both tabs wired in. Checked in a browser that the form renders inside the app; the button itself was not pressed (it creates a project on Overleaf). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>e7bb050 -
Journal Formatter and Journal Finder as native tabs of the suite (work in progress)
unknown +1: Claude Opus 5.5Both tools were separate Streamlit apps shown in a frame. Their engines now live in this repository and the tabs are built in Gradio. Journal Formatter (formatter_tab.py, formatmatch/) - FormatMatch engine copied from github.com/rasheedsbp/Formatmatch. - Manuscript + journal name / publisher style / Word template / author guidelines -> Word file, LaTeX project zip, formatting report. - Overleaf: the zip has main.tex at its top level; "Open in Overleaf" hands it over by its public address on the Space (SPACE_HOST), with upload instructions otherwise. Journal Finder (finder_tab.py, finder/) - journal_traffic pipeline copied from github.com/rasheedsbp/ catalyst-submit, with its data lists in finder/data (Git LFS): Scopus source list, SCImago 2025, ABDC 2025, PubMed serials, CORE ranks. - finder/run_job.py runs every search as its own process with its own result folder: the pipeline prints, calls input() and writes to a shared ./output, which is not safe for several users i…7ee2a84