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
44 changes: 24 additions & 20 deletions .github/workflows/graph-studio-release.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
name: GraphPaper 0.6 graph studio release
name: GraphPaper 0.7 System One release
on:
push:
branches: [main, feat/graph-studio-v0.6]
branches: [main, feat/system-one-v0.7]
paths:
- 'graphpaper/**'
- 'ui/**'
- 'scripts/**'
- 'tests/**'
- 'docs/RELEASE-0.6.0.md'
- 'docs/RELEASE-0.7.0.md'
- '.github/workflows/graph-studio-release.yml'
workflow_dispatch:
permissions:
contents: read
concurrency:
group: graph-studio-${{ github.ref }}
group: system-one-${{ github.ref }}
cancel-in-progress: true
jobs:
source:
Expand All @@ -30,12 +30,14 @@ jobs:
env:
TARGET_BRANCH: ${{ github.ref_name }}
run: |
set -eu
python scripts/prepare_assets.py --manifest
git add publish-manifest.json
if ! git diff --cached --quiet; then
git config user.name 'github-actions[bot]'
git config user.email '41898282+github-actions[bot]@users.noreply.github.com'
git commit -m 'Refresh graph studio source publishing manifest'
git diff --cached --check
git commit -m 'Refresh System One source publishing manifest'
git push origin "HEAD:$TARGET_BRANCH"
fi
echo "revision=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
Expand All @@ -54,6 +56,7 @@ jobs:
- run: python -m pip install -q -r requirements-dev.txt
- run: python -m pytest -q --junitxml=test-results/linux.xml
- run: node --test tests/graph_math.test.cjs
- run: python -m unittest discover -s docs/tests -p 'test_*.py' -v
- run: python scripts/docs_tool.py check
- run: python -m playwright install chromium
- run: python scripts/ui_smoke.py
Expand All @@ -63,10 +66,11 @@ jobs:
- run: python scripts/ui_polemic_smoke.py
- run: python scripts/ui_voices_smoke.py
- run: python scripts/ui_graph_studio_smoke.py
- run: python scripts/ui_system_one_smoke.py
- uses: actions/upload-artifact@v4
if: always()
with:
name: graph-studio-browser-validation
name: system-one-browser-validation
path: test-results/
windows:
needs: [source, browser]
Expand All @@ -91,18 +95,18 @@ jobs:
env:
GITHUB_TOKEN: ${{ github.token }}
run: ./scripts/build_release.ps1
- name: Exercise the actual compiled spatial graph editor and existing workspaces
run: python scripts/native_smoke.py --science --graphify --graph-studio --polemic --voices --executable dist/GraphPaper/GraphPaper.exe --out test-results/native-package
- name: Exercise the compiled System One desk and existing workspaces
run: python scripts/native_smoke.py --science --graphify --graph-studio --polemic --voices --system-one --executable dist/GraphPaper/GraphPaper.exe --out test-results/native-package
- uses: actions/upload-artifact@v4
with:
name: GraphPaper-0.6-tested-Windows
name: GraphPaper-0.7-tested-Windows
path: |
dist/GraphPaper-v0.6.0-Windows-x64.zip
dist/GraphPaper-v0.7.0-Windows-x64.zip
dist/SHA256SUMS.txt
- uses: actions/upload-artifact@v4
if: always()
with:
name: graph-studio-native-validation
name: system-one-native-validation
path: test-results/
publish:
needs: [source, browser, windows]
Expand All @@ -117,7 +121,7 @@ jobs:
ref: ${{ needs.source.outputs.revision }}
- uses: actions/download-artifact@v4
with:
name: GraphPaper-0.6-tested-Windows
name: GraphPaper-0.7-tested-Windows
path: release-package
- name: Publish the same tested archive, never overwrite an existing release
env:
Expand All @@ -127,13 +131,13 @@ jobs:
cd release-package
sha256sum --check SHA256SUMS.txt
cd ..
if gh release view v0.6.0 >/dev/null 2>&1; then echo 'Release already exists; refusing overwrite.'; exit 1; fi
cp docs/RELEASE-0.6.0.md release-package/notes.md
if gh release view v0.7.0 >/dev/null 2>&1; then echo 'Release already exists; refusing overwrite.'; exit 1; fi
cp docs/RELEASE-0.7.0.md release-package/notes.md
revision=$(git rev-parse HEAD)
digest=$(sha256sum release-package/GraphPaper-v0.6.0-Windows-x64.zip | cut -d' ' -f1)
printf '\n\nCompiled Windows graph editing and native save-on-close checks passed. Validation: https://github.com/%s/actions/runs/%s . Source: %s . Archive SHA-256: %s .\n' "$GITHUB_REPOSITORY" "$GITHUB_RUN_ID" "$revision" "$digest" >> release-package/notes.md
gh release create v0.6.0 release-package/GraphPaper-v0.6.0-Windows-x64.zip release-package/SHA256SUMS.txt --target "$revision" --title 'GraphPaper 0.6.0 — Ink, paper & spatial graph editing' --notes-file release-package/notes.md --draft
release_id=$(gh api "repos/$GITHUB_REPOSITORY/releases?per_page=100" --jq '.[]|select(.tag_name=="v0.6.0")|.id')
uploaded=$(gh api "repos/$GITHUB_REPOSITORY/releases/$release_id/assets" --jq '.[]|select(.name=="GraphPaper-v0.6.0-Windows-x64.zip")|.digest')
digest=$(sha256sum release-package/GraphPaper-v0.7.0-Windows-x64.zip | cut -d' ' -f1)
printf '\n\nCompiled Windows System One, graph editing and native save-on-close checks passed. Validation: https://github.com/%s/actions/runs/%s . Source: %s . Archive SHA-256: %s .\n' "$GITHUB_REPOSITORY" "$GITHUB_RUN_ID" "$revision" "$digest" >> release-package/notes.md
gh release create v0.7.0 release-package/GraphPaper-v0.7.0-Windows-x64.zip release-package/SHA256SUMS.txt --target "$revision" --title 'GraphPaper 0.7.0 — System One decision studio' --notes-file release-package/notes.md --draft
release_id=$(gh api "repos/$GITHUB_REPOSITORY/releases?per_page=100" --jq '.[]|select(.tag_name=="v0.7.0")|.id')
uploaded=$(gh api "repos/$GITHUB_REPOSITORY/releases/$release_id/assets" --jq '.[]|select(.name=="GraphPaper-v0.7.0-Windows-x64.zip")|.digest')
test "$uploaded" = "sha256:$digest"
gh release edit v0.6.0 --draft=false --latest
gh release edit v0.7.0 --draft=false --latest
1 change: 1 addition & 0 deletions .github/workflows/quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ jobs:
- run: python scripts/ui_polemic_smoke.py
- run: python scripts/ui_voices_smoke.py
- run: python scripts/ui_graph_studio_smoke.py
- run: python scripts/ui_system_one_smoke.py
- uses: actions/upload-artifact@v4
if: always()
with:
Expand Down
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,11 @@ GraphPaper is a **local-first writing studio for nonfiction, fiction, polemic an

Use **Codex / ChatGPT sign-in** or your own model API. Keep control of the argument, the evidence and the final words. **Polemic and argument-led nonfiction preserve your thesis and voice across angle selection, outlining and review.** [Continue an existing project in Polemic](docs/POLEMIC.md).

**External Graphify now supports Codex sign-in and per-model reasoning.** The Windows release includes the public runtime; there is no extra API-key requirement or duplicate Native pass. [Graphify setup and distribution](docs/UPDATE-0.3.1.md)
**New in 0.7: the System One decision studio.** JEV now guides source selection, graph exploration, targeted intent repair, edit checks and research triage. Inspect its questions, distributions and resulting actions; save reusable corrections and train a local preference ranker on your own feedback. Optional model routing uses only alternatives you approve. [System One controls and validation scope](docs/SYSTEM-ONE.md).

**New in 0.6: the spatial graph studio.** Orbit or flatten your graph, focus its neighborhoods, and edit nodes and connections directly. Ink-blue surfaces and a real scanned graph-paper sidebar. [Explore the graph controls](docs/GRAPH-STUDIO.md).
**External Graphify supports Codex sign-in and per-model reasoning.** The Windows release includes the public runtime; there is no extra API-key requirement or duplicate Native pass. [Graphify setup and distribution](docs/UPDATE-0.3.1.md)

**The spatial graph studio.** Orbit or flatten your graph, focus its neighborhoods, and edit nodes and connections directly. Ink-blue surfaces and a real scanned graph-paper sidebar. [Explore the graph controls](docs/GRAPH-STUDIO.md).

## How GraphPaper works

Expand All @@ -46,7 +48,7 @@ Sources become a navigable graph, then an angle you choose, an outline you can e

**Sources → Graph → Angles → Outline → Write**

Science adds a **Research** desk for scholarly search, screening and evidence appraisal. [Explore the workflows →](docs/README.md)
Science adds a **Research** desk for scholarly search, screening and evidence appraisal. **System One** makes the decision layer visible across the workflow. [Explore the workflows →](docs/README.md)

## Open the studio

Expand All @@ -57,7 +59,7 @@ Science adds a **Research** desk for scholarly search, screening and evidence ap

The portable build needs Microsoft Edge WebView2 and is currently unsigned. Existing projects live separately from the executable. [Windows setup and upgrades →](docs/WINDOWS.md)

**New: reusable voice graphs.** Save a voice once, select it in any project, and keep its training pieces separate. JEV receives compact graph context with automatic request sizing—not the article pile. [Voice graphs and author control](docs/VOICE-GRAPHS.md)
**Reusable voice graphs.** Save a voice once, select it in any project, and keep its training pieces separate. JEV receives compact graph context with automatic request sizing—not the article pile. [Voice graphs and author control](docs/VOICE-GRAPHS.md)

## What makes it useful

Expand All @@ -71,7 +73,7 @@ The portable build needs Microsoft Edge WebView2 and is currently unsigned. Exis
## Inside GraphPaper

![GraphPaper 0.6 spatial graph studio with real graph-paper sidebar](docs/images/graph-studio-v0.6.webp)
*Actual v0.6 interface: the included illustrative project, spatial graph controls and colored connections. [Visual tour and capture provenance](docs/VISUAL-TOUR.md).*
*Actual v0.6 capture of the spatial graph workspace retained in v0.7. [Visual tour and capture provenance](docs/VISUAL-TOUR.md).*

<details>
<summary><strong>Science, writing and reusable voice graphs — v0.6 screenshots</strong></summary>
Expand All @@ -96,7 +98,7 @@ A graph suggests connections; it does not prove them. Science keeps capped searc

## Documentation and development

[Getting started](docs/GETTING-STARTED.md) · [Project folders](docs/PROJECTS-AND-SOURCES.md) · [Author voice](docs/VOICE-AND-PROSE.md) · [Graph and JEV](docs/GRAPH-AND-JEV.md) · [Exports and APA](docs/EXPORTS-AND-APA.md) · [Troubleshooting](docs/TROUBLESHOOTING.md)
[Getting started](docs/GETTING-STARTED.md) · [System One](docs/SYSTEM-ONE.md) · [Project folders](docs/PROJECTS-AND-SOURCES.md) · [Author voice](docs/VOICE-AND-PROSE.md) · [Graph and JEV](docs/GRAPH-AND-JEV.md) · [Exports and APA](docs/EXPORTS-AND-APA.md) · [Troubleshooting](docs/TROUBLESHOOTING.md)

For implementation details, tests and builds, see the [developer guide](docs/DEVELOPMENT.md) and [architecture](docs/ARCHITECTURE.md). Recorded release validation is separate from the live CI badge: [test reports and scope](docs/QUALITY.md).

Expand Down
10 changes: 6 additions & 4 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@

**Connect your sources. Find your angle. Write in your own voice.**

These guides cover **GraphPaper 0.6.0**: the ink-blue studio, real graph-paper sidebar, spatial graph editor, four writing modes and reusable voice graphs. [Download for Windows](https://github.com/AronAxe/GraphPaper/releases/latest) · [See the interface](VISUAL-TOUR.md) · [Version history](../CHANGELOG.md).
These guides cover **GraphPaper 0.7.0**: the System One decision studio, ink-blue interface, real graph-paper sidebar, spatial graph editor, four writing modes and reusable voice graphs. [Download for Windows](https://github.com/AronAxe/GraphPaper/releases/latest) · [System One guide](SYSTEM-ONE.md) · [See the interface](VISUAL-TOUR.md) · [Version history](../CHANGELOG.md).

## Start here

| You want to… | Read |
|---|---|
| See the real application before installing | [Visual tour](VISUAL-TOUR.md) |
| Inspect JEV decisions, save corrections and configure routing | [System One decision studio](SYSTEM-ONE.md) |
| Finish a first project | [Getting started](GETTING-STARTED.md) |
| Install or upgrade without losing work | [Windows installation](WINDOWS.md) |
| Choose models, Codex sign-in and reasoning depth | [Models and reasoning](CONNECTIONS.md) |
Expand All @@ -23,7 +24,7 @@ These guides cover **GraphPaper 0.6.0**: the ink-blue studio, real graph-paper s
| Fiction | Build characters, scenes and consequences while preserving canon | [Fiction workflow](FICTION.md) |
| Science | Search scholarly databases, screen evidence and prepare an APA manuscript | [Science workflow](SCIENCE.md) |

**Sources → Graph → Angles → Outline → Write.** Science adds a Research desk. In an existing project, **current mode · Change** switches writing mode without deleting the sources, graph, voice or manuscript. Review the brief and refresh affected generated work afterward.
**Sources → Graph → Angles → Outline → Write.** Science adds a Research desk. **System One** exposes the focused judgments and policies that guide the work. In an existing project, **current mode · Change** switches writing mode without deleting the sources, graph, voice or manuscript. Review the brief and refresh affected generated work afterward.

## Work with your material

Expand All @@ -32,6 +33,7 @@ These guides cover **GraphPaper 0.6.0**: the ink-blue studio, real graph-paper s
| [Projects and sources](PROJECTS-AND-SOURCES.md) | Uploads, source roles, project Inbox, local storage and backups |
| [Spatial graph studio](GRAPH-STUDIO.md) | 3D/2D, orbit/pan/zoom, density, connection styles, node/edge editing and undo |
| [Graph exploration and JEV](GRAPH-AND-JEV.md) | Extraction, Graphify, evidence status, paths, pins and bounded typed decisions |
| [System One](SYSTEM-ONE.md) | Decision receipts, source selection, fidelity repair, research triage, feedback, local preference learning and approved routing |
| [Reusable voice graphs](VOICE-GRAPHS.md) | Save a voice once, train separately, edit its graph, reuse it and inspect overlays |
| [Author voice and prose tools](VOICE-AND-PROSE.md) | Style direction, Humanize, Deslop, comparison and explicit acceptance |
| [Exports and APA](EXPORTS-AND-APA.md) | Word, Markdown, HTML, project backups and scientific export packages |
Expand All @@ -40,13 +42,13 @@ These guides cover **GraphPaper 0.6.0**: the ink-blue studio, real graph-paper s

Open **The city after dark**, the included illustrative example. Explore the Graph tab: drag the background to orbit, Shift-drag to pan, and scroll to zoom. Click a node or connection to inspect and edit it. Try **Focus here**, then **Reset filters**. Manual graph editing does not call a model.

Next, open Angles, edit a thesis and explore Outline and Write. These are your editorial decisions. Model calls start only when you explicitly run a generation or analysis action.
Next, open Angles, edit a thesis and explore Outline and Write. These are your editorial decisions. Model calls start only when you explicitly run a generation or analysis action. Opening the **System One** desk only reads saved results; **Evaluate current work** explicitly runs JEV after provider configuration and consent.

For an existing learned voice, use **Your writing voice → Save as reusable voice**. In another project, choose it in **My voices → Use in this project**. Saving the existing profile and applying it require no retraining or model request.

## Upgrade notes for existing projects

The visual redesign does **not** require rebuilding graphs or re-uploading sources. Saved voices are independent of the article evidence. Your current instructions override saved style defaults; rhetorical force is separate from evidence detail.
The visual redesign and System One upgrade do **not** require rebuilding graphs or re-uploading sources. Saved voices are independent of the article evidence. Your current instructions override saved style defaults and reusable corrections; rhetorical force is separate from evidence detail. Model routing is off unless you explicitly enable it and name approved alternatives.

Source changes may require a graph rebuild. Brief, mode or voice changes instead call for refreshing affected angles or outlines using the existing graph. [Recovery and common problems](TROUBLESHOOTING.md).

Expand Down
23 changes: 23 additions & 0 deletions docs/RELEASE-0.7.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# GraphPaper 0.7.0 — System One decision studio

This release implements an operational JEV layer across the writing workflow, with a new **System One** sidebar desk.

- Focused Noul predicates, descriptive Score levels and probability-aware Choices. Fidelity is not a tradeable fraction of a generic quality score.
- Stage-level question fan-out, exact-context caching, typed-distribution validation, bounded request sizes and honest unscored fallbacks.
- Guided graph exploration and semantic source selection. Entity identity suggestions require explicit author-approved, undoable merging.
- One-pass angle-intent repair, independent passage checks, contextual changed-prose checks and confidence-gated automatic refinement. No politeness filter or new vocabulary restrictions.
- Task-selected reusable voice habits, explicit saved corrections, local preference training with held-out projects and decision/feedback export.
- Science screening advice, full-text priorities, appraisal-gap checks and fiction continuity decisions.
- Optional routing only among author-approved model alternatives and reasoning settings. Routing defaults to off.

## Use the Windows release

Extract the complete ZIP into a new folder. Run **GraphPaper.exe** with `_internal` beside it. Your project database stays in its existing data directory. No graph rebuild or voice retraining is required to use the update.

Open a project, select **System One**, and configure your JEV connection in **Connections & settings**. **Evaluate current work** evaluates available material without writing or replacing it. The desk exposes questions, distributions, policy outcomes, cached results and failures. Prefer/reject feedback and local training do not make model calls.

The existing graph-paper design, four writing modes, Graphify, Codex sign-in, reusable voice library and reversible edits remain. The application is unsigned. Review the [System One guide](https://github.com/AronAxe/GraphPaper/blob/main/docs/SYSTEM-ONE.md).

## Verification scope

The release workflow runs regression tests and eight real-HTTP browser suites before building Windows; it then tests the actual packaged native window, including the System One desk, feedback, configuration, graph edits, native export and save-on-close. Provider fixtures are explicitly synthetic: passing these checks does not claim a measured live JEV writing-quality or cost advantage. The published asset must match the tested archive checksum.
Loading