Skip to content

Add native PDF workspace entrypoints and conflict-safe host-file editing - #213

Merged
silverstein merged 17 commits into
masterfrom
feat/openai-pdf-workspace-20261001
Oct 1, 2026
Merged

silverstein merged 17 commits into
masterfrom
feat/openai-pdf-workspace-20261001

Conversation

@silverstein

@silverstein silverstein commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Outcome

Adapt the existing broad PDF Tools application to OpenAI's optional sidebar and conversation entrypoints, with an honest empty workspace and a coupled host-owned PDF import/save-back implementation. This is not a separate form-only connector.

The default model-visible catalog remains 56 tools. Two new app-only tools bring default discovery to 59 tools, with three app-only tools in total. Existing path-based workflows, optional OCR, portable MCP Apps behavior, and Lumin send confirmation remain intact.

Behavior and boundaries

  • The workspace opens without scanning folders, choosing a PDF, invoking a model, or sending a signing request.
  • The official OpenAI resource bridge reads only the opaque resource supplied by the host. Import is limited to 16 MiB and writes a generated file only inside the already-allowed plugin workspace. Explicit folder exclusions stay excluded.
  • Save-back is explicit and requires a writable resource, exact current PDF bytes, and the original ETag. Pending or in-flight edits block save. Conflict, read-only, stale, and size failures retain the local copy and do not retry.
  • Document switches and teardown dispose the original association. Unsupported hosts retain the existing display_pdf flow and a useful text fallback.
  • PDF file-handler metadata is deliberately not advertised before installed-host qualification.

Verification

  • Independently reviewed implementation and follow-through at 0f805d7. Review found and closed both pending-page-plan save races and immediate-disposal subscription behavior. Subsequent changes align the share lock and classify the new test and generated plugin output without changing product behavior or weakening assertions.
  • Mac Node 22.23.2: 13 targeted files, 333 tests passed.
  • Actual built viewer: ten synthetic host-resource scenarios, including real page rotation and exact changed-byte save; three portable empty-workspace scenarios passed.
  • Agent Plugin build and actual contained launcher passed: exact synthetic import, local rotation/readback, unchanged original, and excluded workspace policy refusal. No external requests or model calls.
  • Source/share generated viewer bytes match SHA-256 06fc84b1adad6dddba59f8949fff30b52e057a243c7fc947b557d20e6d55aea9. Locked Zod license provenance regenerated from integrity-checked registry bytes.
  • Deterministic extraction oracle changes are source provenance only; case answers were independently verified unchanged.
  • Full clean-commit Mac aggregate passed at 0f805d7: 195 Vitest files/3,848 tests, 99 intentional skips, plus 87 native passes/nine platform skips, zero failures. Independent read-only evidence audit accepts the qualified engineering checkpoint.
  • Final clean plugin build and contained import/edit/refusal probe pass. Final MCPB build and native smoke pass (59 tools/14 prompts), artifact SHA-256 e7ee1f1ebfec85a248d6e4be200858b3bdf4dbecad732d54b8c424e6b1e38163. Share reproducibility and retained ZIP match SHA-256 50e8e5e1857687b1a2fe1b7e907c28e606bc71e5c07729afd8c23d818937fccc. Final rebuilt-viewer ten resource and three portable cases also pass.
  • Both Node 20.19/22.12 CI gates passed in run 36804939731 at exact head 0f805d7: 3,779 Vitest passes and 168 intentional skips each, plus native/Python, reproducible share, build and packed MCPB smoke. The preceding Mac aggregate had 3,846 passes and one missing test-registry entry; that registration and generated-output classification are corrected without weakening assertions. Earlier failed/canceled runs remain preserved as such.

PR #213 merged as 2b9c95f. The merge includes the independently landed PR #214 Connect-key addition, so its full tree is not identical to the qualified feature head. The local application/viewer/server/package bytes are unchanged; fresh test-runner and Connect-auth checks pass at the clean actual merged Mac checkout. The full aggregate and artifacts above remain explicitly qualified at 0f805d7.

Not yet claimed

Installed ChatGPT qualification is pending because the designated Mac session is locked. No user app was restarted. This PR is not a public release, directory submission, or benchmark claim. OpenAI's standard public directory requires HTTPS; its documented local-MCP support route still needs confirmation for this full local application. The existing five-tool hosted profile is not a substitute, and no cloud document custody is introduced.

Tracked by the existing PDF Tools Beads epic pdf-toolkit-mcp-zshk.

@silverstein silverstein changed the title Add app-only PDF workspace entrypoints for OpenAI extensions Add native PDF workspace entrypoints and conflict-safe host-file editing Oct 1, 2026
@silverstein
silverstein merged commit 2b9c95f into master Oct 1, 2026
2 checks passed
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