Skip to content

Integrate private Otter archive and durable conversation images - #574

Merged
witbrock merged 1 commit into
mainfrom
feat/JVNAUTOSCI-2726-otter-images
Sep 7, 2026
Merged

Integrate private Otter archive and durable conversation images#574
witbrock merged 1 commit into
mainfrom
feat/JVNAUTOSCI-2726-otter-images

Conversation

@witbrock

@witbrock witbrock commented Sep 7, 2026

Copy link
Copy Markdown
Member

Merge decision: ready — a configured owner can retrieve the private Otter archive, inspect cited originals, and use durable uploaded or retrieved images in Von conversations; this PR does not activate the main runtime.

User outcome

JVNAUTOSCI-2726 adds the separate private OtterArchiveMCP integration and the reusable image path needed for research-slide questions. The baseline had neither this archive adapter nor durable native image input on the ordinary conversation path.

Material changes

  • Expose all ten stdio archive tools with an owner-bound resource argument hidden from the model. Recheck the actor before launch and before reading staged copies; preserve LinkedIn and hosted Otter integrations.
  • Route existing picker, paste and drop handlers through durable PNG/JPEG/WebP uploads, previews, removal, failure blocking, queued message binding and restored history. Original bytes and provenance use the existing blob/file-copy store. New image metadata explicitly uses attributes to avoid duplicate relation writes; existing file metadata keeps its contract.
  • Deliver access-checked original bytes to OpenAI Chat/Responses and Ollama native image inputs. Carry source references through continuations and evidence envelopes, and persist retrieved images with the answer. Add bounded crop/zoom with parent hash and region provenance. Gemini fails explicitly for image input.
  • Provide authenticated original/source views and resolve exact Otter resource citations safely in both Markdown renderers. Include six CC0 reference fixtures, generator, tests and operating documentation.

The ownership boundary prevents another actor from reading this private backup merely through an Otter shared label, a model-supplied selector, or a persisted copy URL. No new semantic workflow or mandatory reasoning gate is introduced.

Evidence

  • Affected adaptive/image/archive suite: 281 passed. Final image/archive/OpenAI/file-ingestion/attachment suite: 101 passed. Markdown/image checks: 20 passed. Frontend: 293 passed. Earlier queue/Gemini/attachment regression: 156 passed. Minimum Python 3.11 grammar and PDM lock checks passed.
  • Live schema parity for all ten upstream tools; real status/overview/entities, nonempty search, conversation reads and bounded original-chunk metadata.
  • Authenticated AgentTest browser: picker and clipboard uploads, multiple previews, removal, invalid-image submission prevention, history reload, crop delivery, private screenshot-dependent answer and opened original/source citations. The existing drop handler shares this pipeline; a physical cross-window drag was not exercised.
  • Six synthetic content reviews passed with Luna, including exact equation/structure and honest illegibility. Native SDK tests and live hash receipts distinguish pixels actually delivered from plausible output. A live envelope-loss defect found during testing was repaired and regression-tested.
  • A private slide answer corrected cached OCR/vision errors in the chart axes and read the median pairs. A follow-up reused the stored interpretation with one model call and no archive/crop calls. Final reload preserved images and clickable source citations.

Private originals and detailed receipts are outside Git; the Jira decision record retains the evidence summary and limitations.

Ship boundary

  • Minimum ship criteria: configured owner retrieval, native pixels with durable provenance, reusable upload/history/crop path, working authenticated citations, wrong-actor/revocation denial, bounded useful research-image evidence.
  • Stop-ship conditions: private-source access by another actor, lost/corrupt originals, silent text-only submission after image failure, retrieved media dropped before the provider, or citations that cannot lead to the original source. Targeted tests and browser read-back address these.
  • Non-blocking observations: one tiny private-chart digit remained misread by Luna and Terra, despite cropping; those readings are explicitly not counted as successful. Cached local Gemma4 output remains fallible. Astra's existing Chat Completions/reasoning tool configuration rejected the comparison before image inspection; no Astra or Gemini vision claim. Uploads still take roughly 20–33 seconds and original reads around 3 seconds in the tested Atlas environment. No corpus-wide or perfect scientific-reading claim.
  • Non-goals: rebuilding ingestion/OCR in Von, automatic corpus enrichment, reconciling all export groups, changing shared model defaults, cancelling Otter, mutating backups, or deploying/activating the main runtime. Temporary model settings used in evaluation were restored.

@witbrock
witbrock merged commit 0d79bc0 into main Sep 7, 2026
2 checks passed
@witbrock
witbrock deleted the feat/JVNAUTOSCI-2726-otter-images branch September 7, 2026 20:25
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