Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ jobs:
- run: python -m pip install -r requirements-dev.txt
- run: python -m playwright install --with-deps chromium
- run: python scripts/ui_smoke.py
- run: python scripts/ui_studio_smoke.py
- run: python scripts/ui_science_smoke.py
- uses: actions/upload-artifact@v4
if: always()
with:
Expand Down
14 changes: 11 additions & 3 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ jobs:
- run: python -m playwright install --with-deps chromium
- run: python scripts/ui_smoke.py
- run: python scripts/ui_studio_smoke.py
- run: python scripts/ui_science_smoke.py
windows:
needs: quality
runs-on: windows-latest
Expand All @@ -35,7 +36,7 @@ jobs:
GITHUB_TOKEN: ${{ github.token }}
run: ./scripts/build_release.ps1
- name: Exercise the actual Windows window, native dialogs and save-on-close
run: python scripts/native_smoke.py --executable dist/GraphPaper/GraphPaper.exe --out test-results/native-package
run: python scripts/native_smoke.py --science --executable dist/GraphPaper/GraphPaper.exe --out test-results/native-package
- uses: actions/upload-artifact@v4
with:
name: GraphPaper-Windows-x64
Expand All @@ -51,8 +52,15 @@ jobs:
$version = python -c "from graphpaper import __version__; print(__version__)"
if ($env:GITHUB_REF_NAME -ne "v$version") { throw 'Tag does not match application version.' }
gh release view $env:GITHUB_REF_NAME *> $null
if ($LASTEXITCODE -ne 0) { gh release create $env:GITHUB_REF_NAME --verify-tag --title "GraphPaper $env:GITHUB_REF_NAME" --notes-file docs/RELEASE-0.2.1.md }
gh release upload $env:GITHUB_REF_NAME "dist/GraphPaper-v$version-Windows-x64.zip" dist/SHA256SUMS.txt --clobber
if ($LASTEXITCODE -ne 0) { gh release create $env:GITHUB_REF_NAME --verify-tag --title "GraphPaper $env:GITHUB_REF_NAME" --notes-file docs/RELEASE-0.3.0.md }
$packageName = "GraphPaper-v$version-Windows-x64.zip"
$release = gh release view $env:GITHUB_REF_NAME --json assets | ConvertFrom-Json
if ($release.assets.name -contains $packageName) {
Write-Host 'A verified release package already exists; keeping it unchanged. This rebuild remains available as an Actions artifact.'
} else {
gh release upload $env:GITHUB_REF_NAME "dist/$packageName" dist/SHA256SUMS.txt
if ($LASTEXITCODE -ne 0) { throw 'Release upload did not complete.' }
}
- uses: actions/upload-artifact@v4
if: always()
with:
Expand Down
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Changelog

## 0.3.0

- Provider-native, model-aware reasoning effort for writer/editor/extraction roles, with Codex catalog support and explicit thinking budgets.
- Third Science workspace with real scholarly database searches, documented screening, open full text, evidence appraisal and scientific drafting.
- APA 7 professional manuscripts, metadata-based references, research-package export and manuscript-specific author confirmation.
- Retained the 0.2.1 private native bridge and nonblocking save-on-close fix; added native Science regression coverage.
- Rendered export inspection fixed empty-page overflow and inherited heading-theme fonts.


## 0.2.1 ? 2026-10-06

- Fix recursive native-window exposure in the JavaScript bridge.
Expand Down
22 changes: 17 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,28 @@
![GraphPaper — Graph-first AI writing studio](docs/images/graphpaper-header.svg)
### A studio for connected thought.

**Windows fix: [v0.2.1](https://github.com/AronAxe/GraphPaper/releases/tag/v0.2.1)** fixes the native interface freeze and the save-on-close deadlock. Existing projects remain intact. See the [patch notes](docs/RELEASE-0.2.1.md).
**Current release: [GraphPaper 0.3.0](https://github.com/AronAxe/GraphPaper/releases/latest)** adds model-specific reasoning controls and a dedicated Science workspace. The native Windows freeze and save-on-close fixes are retained. Existing projects remain intact.


**Source material → knowledge graph → a distinctive angle → an editable outline → writing worth reading.**

GraphPaper is a local-first, Windows-oriented writing studio for **nonfiction and fiction**. It is a graphical application, not a command-line writing tool. Bring your sources, see how their ideas connect, guide the interpretation, and keep authorship of the result.
GraphPaper is a local-first, Windows-oriented writing studio for **nonfiction, fiction and scientific manuscripts**. It is a graphical application, not a command-line writing tool. Bring your sources, see how their ideas connect, guide the interpretation, and keep authorship of the result.

![GraphPaper's interactive graph studio](docs/images/graph.webp)
*Actual app screenshot using the explicitly illustrative project included with the application.*

## GraphPaper 0.2.0
## New in 0.3.0

[**Download GraphPaper for Windows**](https://github.com/AronAxe/GraphPaper/releases/latest) ? [Science and reasoning guide](docs/UPDATE-0.3.md)

**Reasoning depth:** choose independently for the writer, editor and extractor. Codex supplies its supported levels through model discovery; other providers receive their native reasoning parameters. Defaults are preserved and unsupported levels are not silently substituted.

**Science:** search PubMed, Semantic Scholar, arXiv, Crossref and Europe PMC; screen studies, retrieve available full text, inspect the evidence matrix, and draft a source-linked scientific manuscript. APA 7 Word export generates author-year citations and hanging references from retrieved metadata. A research package adds BibTeX, RIS, the protocol and the actual search log. Search limits and abstract-only evidence stay visible; author checks do not pretend to confer journal or ethics approval.

![The Science research desk](docs/images/research-v0.3.webp)
*Actual interface using clearly labelled synthetic workflow-test material.*

## Author voice, folders and prose tools (retained from 0.2)

[**Download the Windows release**](https://github.com/AronAxe/GraphPaper/releases/latest) · [What is new](docs/UPDATE-0.2.md)

Expand All @@ -28,12 +39,13 @@ Your own writing voice from uploads or article URLs; a project Inbox with automa

There is no need to type commands. The native window uses Microsoft Edge WebView2. See [Windows setup and troubleshooting](docs/WINDOWS.md).

**Executable packaging:** a Windows build script and GitHub Actions workflow are included. They generate a portable `GraphPaper.exe` folder/ZIP; this source package is not a prebuilt or signed Windows executable. Version 0.2 has native Windows automated tests and real-HTTP browser validation; see [validation scope](docs/QUALITY.md). Interactive native dialogs remain a separate check.
**Executable packaging:** a Windows build script and GitHub Actions workflow are included. They generate a portable `GraphPaper.exe` folder/ZIP; this source package is not a prebuilt or signed Windows executable. The release workflow includes automated, real-HTTP browser and actual native Windows interaction checks; see [validation scope](docs/QUALITY.md). The compiled executable is checked separately from the source edition.

## A connected writing workflow

| Stage | What you control |
|---|---|
| **Research (Science)** | Define the protocol, search scholarly databases, screen records and inspect evidence, full-text availability and the search log. |
| **Sources** | Drag in PDF, DOCX, text, Markdown, CSV or HTML. Paste notes, import a public article URL, or import a saved project. Label material as evidence, fiction canon, inspiration or a voice sample. |
| **Graph** | Build an evidence-linked graph, or import Graphify/NetworkX JSON. Pan, zoom, drag nodes, inspect quote anchors, highlight a path, and pin or exclude concepts. |
| **Angles** | Discover distinct interpretations from contradictions, branches, convergences and cross-community connections. Edit the title/thesis, inspect the evidence gaps, or write your own angle. Nothing is selected for you. |
Expand All @@ -60,7 +72,7 @@ JEV/TypeSafe is used for **candidate screening, angle evaluation, evidence-gap s

The preferred connection is **OpenRouter**, with a **direct TypeSafe route** available. Auto uses an available OpenRouter key first, then direct TypeSafe. You can select a route explicitly or switch JEV off; the app labels unscored results honestly. Scores are model judgments, not empirically calibrated probabilities of truth or writing quality.

Writing providers: OpenRouter, OpenAI-compatible APIs including local endpoints, and direct Anthropic. Writer, extraction and editorial-review models can be set separately. No model name is hard-coded as a universal best choice.
Writing providers: Codex / ChatGPT OAuth, OpenRouter, OpenAI-compatible APIs including local endpoints, and direct Anthropic. Writer, extraction and editorial-review models can be set separately. No model name is hard-coded as a universal best choice.

### Graphify without making setup painful

Expand Down
13 changes: 13 additions & 0 deletions docs/QUALITY.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Quality, tests and known limits

## Version 0.3.0 validation

Validated on 7 October 2026 in an isolated native Windows build environment:

- **172 automated tests passed; one symlink-permission test skipped.**
- **39 real-HTTP browser workflow checks passed**, with no JavaScript page errors: 17 base, 9 author-voice/folder/prose-tool, and 13 Science/reasoning checks.
- **10 native Windows source checks and 10 checks against the compiled executable passed.** These include a genuine Windows mouse interaction, Science protocol editing, bridge initialization, Connections, a native Save As dialog, and pending manuscript persistence before normal process exit.
- Actual metadata queries succeeded for PubMed, arXiv, Crossref and Europe PMC. Anonymous Semantic Scholar returned HTTP 429; that limitation is recorded, and its optional API-key route remains available.
- The APA exporter was rendered and visually inspected across four synthetic manuscript pages. Blank-page and inherited font-theme issues were fixed. This was a LibreOffice-rendered check of the same exporter source, not a Microsoft Word automation claim.
- The release uses streaming ZIP packaging and archive CRC/checksum verification, avoiding the large in-memory buffer used by PowerShell compression. Three packaging regression tests are included.

No real user OAuth ceremony or paid writing/JEV call was used in these tests. Model/database fixtures in UI tests are explicitly synthetic; live metadata connectivity is tested separately. Full reports are in [validation/v0.3.0](validation/v0.3.0/). Earlier version results below are historical.

## 0.2.1 native Windows correction ? 6 October 2026

The reported interface freeze exposed a gap in the earlier validation: the
Expand Down
31 changes: 31 additions & 0 deletions docs/RELEASE-0.3.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# GraphPaper 0.3.0 - Science mode and reasoning depth

## New

- **Three modes:** Nonfiction, Fiction and Science, with a separate research desk for scientific work.
- **Per-role reasoning:** independently select writer, editor and extraction/research effort. Codex options come from the runtime's model catalog, including extended levels only when advertised. OpenRouter, OpenAI-compatible and Anthropic routes use their native fields. Explicit thinking budgets and configurable request timeouts are supported where appropriate.
- **Live scholarly search:** PubMed, Semantic Scholar, arXiv, Crossref and Europe PMC, with query logs, timestamps, caps, duplicate merging and explicit partial failures. Optional NCBI/Semantic Scholar keys are stored securely.
- **Evidence workflow:** include/exclude decisions, exclusion reasons, open full text or uploaded-paper attachment, study appraisal, exact source quotations, design/limitations and an evidence matrix.
- **Scientific manuscripts:** editable question/protocol, IMRaD-style outlines, evidence-led drafting, abstract, keywords, author declarations and source-support review. Empirical mode requires the author's actual completed results; it does not invent experiments or analyses.
- **APA 7 Word export:** professional title/author-note page, abstract, consistent typography, running head and page numbers, author-year citations and hanging references generated from metadata. A research package adds BibTeX, RIS, the evidence CSV, protocol and search log.
- **Submission checks:** unresolved blockers and author confirmations are visible. Changes invalidate prior approval. The checklist is not a claim of journal acceptance or ethics approval.

The author-voice, project-folder, humanizer/deslop and Codex OAuth features remain available. The Windows bridge freeze and save-on-close fixes are retained.

## Install

Download **GraphPaper-v0.3.0-Windows-x64.zip**, extract the whole folder into a new location, and run **GraphPaper.exe**. Keep `_internal` with the executable. No Python installation or terminal workflow is required. Existing projects and credentials use the same local data directory. The binary is unsigned.

Use **Connections -> Load available models -> Reasoning depth** to choose effort levels. Create a **Science** project and open its **Research protocol** to begin scholarly work.

## Scope

Database search is real network retrieval, not simulated research. Searches are bounded and never presented as exhaustive when capped. Abstracts/preprints are labelled. Systematic/scoping review completeness checks are stricter. The author must verify original sources, specialized references and the target journal's reporting requirements. Live metadata checks are separate from controlled model tests; no real user OAuth sign-in or paid writing-model call is claimed as part of release validation.

Detailed instructions: [UPDATE-0.3.md](https://github.com/AronAxe/GraphPaper/blob/main/docs/UPDATE-0.3.md). Validation reports are under `docs/validation/v0.3.0`. SHA256SUMS.txt identifies the exact downloadable archive.

## Verified release build

172 automated Windows tests passed (one symlink-permission skip), all 39 browser workflow checks passed, and all 10 native checks passed against the actual compiled executable. The APA export received a four-page visual check. Live metadata retrieval succeeded on PubMed, arXiv, Crossref and Europe PMC; Semantic Scholar anonymous access was rate-limited with HTTP 429, reported explicitly. These are native local-build results, not a claim that a hosted Actions run completed.

Windows ZIP: **157,726,720 bytes**. SHA-256: `b32cb385726f185ee50c1347a31eb4631d924e7fc4247b46afc2003c14de0a1b`. The official Codex runtime remains bundled and its signed-out protocol check passed.
Loading
Loading