Skip to content

GraphPaper 0.2: author voice, project folders, humanizer and Codex sign-in - #2

Merged
AronAxe merged 2 commits into
mainfrom
release/graphpaper-v0.2.0
Oct 5, 2026
Merged

AronAxe merged 2 commits into
mainfrom
release/graphpaper-v0.2.0

Conversation

@AronAxe

@AronAxe AronAxe commented Oct 5, 2026

Copy link
Copy Markdown
Owner

Requested update

  • Learn an editable author voice from uploaded/pasted writing or selected articles discovered from an author/blog URL; adjustable influence and on/off control.
  • Per-project local folders, role-specific Inbox subfolders, stable-file automatic imports, source updates and preserved original uploads.
  • Separate Humanize and Deslop passes, local explainable prose inspection, protected quotations/numbers/citations/links/code, side-by-side proposals and explicit accept/discard with version history.
  • Official Codex / ChatGPT browser OAuth as a writing-provider option instead of an API key. Dedicated account directory, no session-token scraping or API fallback; official Codex runtime bundled for Windows. JEV remains optional and separately connected.
  • Versioned Windows release workflow, documentation, actual interface previews and repository topics.

Actual validation

GitHub's hosted runner remained queued and its bootstrap run was cancelled. The complete update was instead validated in an isolated temporary build environment on a native Windows 11 computer:

  • 120 automated tests passed; one symlink-permission test skipped. Windows DPAPI passed.
  • All 26 real-HTTP browser workflow checks passed, with zero JavaScript page errors (17 existing + 9 new).
  • Official Codex CLI 0.160.1 passed required-command and signed-out app-server protocol checks; its release archive digest was verified.
  • Windows executable built successfully and passed its startup/backend/bundled-interface self-test.
  • Final Windows ZIP: 157,603,030 bytes; SHA-256 2a7801075d1376f23538eddd401ef5423e68daab6097929a0c6afe4191b55145.

A real user OAuth completion and live model/JEV writing calls are not claimed as tested. Model and authentication test doubles are clearly labelled. Reports are committed under docs/validation/v0.2.

Source integrity

All 15 transferred implementation files were checksum-verified before integration. Temporary import scripts/workflow are removed. The 95-file publishing manifest was checked against actual staged Git blobs. Original README artwork and MIT license remain intact. No credentials, real manuscripts, build environments or runtime binaries are committed.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-05T20:41:27.965436Z 55463de PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@AronAxe
AronAxe merged commit 0d79780 into main Oct 5, 2026
8 of 10 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 55463def31

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread graphpaper/folders.py
Comment on lines +102 to +103
if old.get('stat') == signature:
continue

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Hash files even when size and mtime match

When an inbox file is replaced with different content that has the same byte length and preserved modification time—for example, by a synchronization or copy tool—this early return skips reading and hashing it. The stale source remains indefinitely, and even an explicit forced scan cannot detect the update because this check runs before the force handling. Compare the content hash during forced scans, or otherwise avoid treating the stat tuple as definitive.

Useful? React with 👍 / 👎.

Comment thread graphpaper/polish.py
('corporate-language', r'\b(?:leverage synergies|unlock (?:the )?(?:full )?potential|seamless integration|holistic approach|ever[- ]evolving landscape|rich tapestry)\b', 'Prefer the exact action, relationship or image.'),
('chat-wrapper', r"(?m)^\s*(?:Certainly!|Absolutely!|Here is (?:the|your) (?:revised|rewritten)|I hope this helps)", 'Remove chat scaffolding from the manuscript.'),
]
PROTECTED = re.compile(r'(?ms)```.*?```|~~~.*?~~~|^---\n.*?\n---(?=\n|$)|^>[^\n]*(?:\n>[^\n]*)*|`[^`\n]+`|\[[^\]\n]*\]\([^\)\n]+\)|\[S\d+\]|https?://[^\s<>]+|“[^”]+”|"[^"\n]+"|(?<!\w)[+-]?\d+(?:[.,:/-]\d+)*(?:\s?%|\b)')

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Protect curly single-quoted passages during prose edits

For manuscripts using curly single quotation marks, such as the common UK-style ‘quoted passage’, this pattern does not mask the quotation even though the UI and job status promise that quotations are protected. A humanize/deslop model can therefore alter or remove that quoted text without either unmask() or the subsequent protected-span comparison detecting it; the model-based fidelity review is not a deterministic substitute. Include paired curly single quotes among the protected forms.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant