From 27cc667b8af37298936d920b2b19bf54f22628d4 Mon Sep 17 00:00:00 2001 From: Oleh Martsokha Date: Thu, 3 Sep 2026 14:44:29 +0200 Subject: [PATCH 1/2] Correct intermediates and edit-location API descriptions Two spec-description fixes surfaced when the sdk-ts contract was regenerated (the SDK is generated from this server's OpenAPI, so both fixes belong here / upstream, not in the SDK): - The intermediates endpoint described its response as `{ body, parts }`, but the unified part tree folded the body into parts: an ArtifactSet is a `parts` list, each carrying a path `id`, `modality`, and the extracted `artifact`. Corrected the endpoint description. - Bump elide-runtime to pick up the elide-review fix that makes the `Add.location` field doc modality-agnostic (text a character range, images a bounding box, audio a time span, tabular a row and column), instead of the text-only guidance that was being stamped onto every modality's location schema. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_018bKk1YEG4tZ69jzYVQvQL8 --- Cargo.lock | 12 ++++++------ crates/nvisy-server/src/handler/detection_audits.rs | 7 ++++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 50e2a95b..e3fcab65 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3000,7 +3000,7 @@ dependencies = [ [[package]] name = "elide-export" version = "0.1.0" -source = "git+https://github.com/nvisycom/elide-runtime?branch=main#9f800a84600d45a6c71b52645a3ac03db970ec55" +source = "git+https://github.com/nvisycom/elide-runtime?branch=main#1a27c2c779bd03ab80abe53da40ed8a29542d9b1" dependencies = [ "csv", "elide", @@ -3023,7 +3023,7 @@ dependencies = [ [[package]] name = "elide-governance" version = "0.1.0" -source = "git+https://github.com/nvisycom/elide-runtime?branch=main#9f800a84600d45a6c71b52645a3ac03db970ec55" +source = "git+https://github.com/nvisycom/elide-runtime?branch=main#1a27c2c779bd03ab80abe53da40ed8a29542d9b1" dependencies = [ "elide-core", "elide-operator", @@ -3161,7 +3161,7 @@ dependencies = [ [[package]] name = "elide-pipeline" version = "0.1.0" -source = "git+https://github.com/nvisycom/elide-runtime?branch=main#9f800a84600d45a6c71b52645a3ac03db970ec55" +source = "git+https://github.com/nvisycom/elide-runtime?branch=main#1a27c2c779bd03ab80abe53da40ed8a29542d9b1" dependencies = [ "bytes", "elide", @@ -3182,7 +3182,7 @@ dependencies = [ [[package]] name = "elide-provider" version = "0.1.0" -source = "git+https://github.com/nvisycom/elide-runtime?branch=main#9f800a84600d45a6c71b52645a3ac03db970ec55" +source = "git+https://github.com/nvisycom/elide-runtime?branch=main#1a27c2c779bd03ab80abe53da40ed8a29542d9b1" dependencies = [ "elide", "elide-bentoml", @@ -3206,7 +3206,7 @@ dependencies = [ [[package]] name = "elide-review" version = "0.1.0" -source = "git+https://github.com/nvisycom/elide-runtime?branch=main#9f800a84600d45a6c71b52645a3ac03db970ec55" +source = "git+https://github.com/nvisycom/elide-runtime?branch=main#1a27c2c779bd03ab80abe53da40ed8a29542d9b1" dependencies = [ "elide", "elide-governance", @@ -3230,7 +3230,7 @@ dependencies = [ [[package]] name = "elide-template" version = "0.1.0" -source = "git+https://github.com/nvisycom/elide-runtime?branch=main#9f800a84600d45a6c71b52645a3ac03db970ec55" +source = "git+https://github.com/nvisycom/elide-runtime?branch=main#1a27c2c779bd03ab80abe53da40ed8a29542d9b1" dependencies = [ "elide-core", "elide-governance", diff --git a/crates/nvisy-server/src/handler/detection_audits.rs b/crates/nvisy-server/src/handler/detection_audits.rs index 7f69c001..1082c09c 100644 --- a/crates/nvisy-server/src/handler/detection_audits.rs +++ b/crates/nvisy-server/src/handler/detection_audits.rs @@ -142,9 +142,10 @@ fn get_detection_intermediates_docs(op: TransformOperation) -> TransformOperatio op.summary("Get detection intermediates") .description( "Returns the detection's enrichment intermediates — an image's OCR layout, an audio \ - clip's transcript, or tokenized text — as `{ body, parts }`, so a client can search \ - the extracted content and add entities the analysis missed. A detection whose \ - analysis ran no enricher has no intermediates (404).", + clip's transcript, or tokenized text — as a `parts` list, each part carrying its \ + path `id`, `modality`, and the extracted `artifact`, so a client can search the \ + content and add entities the analysis missed. A detection whose analysis ran no \ + enricher has no intermediates (404).", ) .response::<200, Json>() .response::<401, Json>() From 5a0454835aa6e638c7d77f8592fe8203ae8677a3 Mon Sep 17 00:00:00 2001 From: Oleh Martsokha Date: Thu, 3 Sep 2026 16:43:45 +0200 Subject: [PATCH 2/2] Describe the intermediates response as an object, not a bare list "as a `parts` list" could read as a top-level JSON array; the response is an ArtifactSet object with a `parts` field. Say "an object with a `parts` list". Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_018bKk1YEG4tZ69jzYVQvQL8 --- crates/nvisy-server/src/handler/detection_audits.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/nvisy-server/src/handler/detection_audits.rs b/crates/nvisy-server/src/handler/detection_audits.rs index 1082c09c..7a4b4b18 100644 --- a/crates/nvisy-server/src/handler/detection_audits.rs +++ b/crates/nvisy-server/src/handler/detection_audits.rs @@ -142,10 +142,10 @@ fn get_detection_intermediates_docs(op: TransformOperation) -> TransformOperatio op.summary("Get detection intermediates") .description( "Returns the detection's enrichment intermediates — an image's OCR layout, an audio \ - clip's transcript, or tokenized text — as a `parts` list, each part carrying its \ - path `id`, `modality`, and the extracted `artifact`, so a client can search the \ - content and add entities the analysis missed. A detection whose analysis ran no \ - enricher has no intermediates (404).", + clip's transcript, or tokenized text — as an object with a `parts` list, each part \ + carrying its path `id`, `modality`, and the extracted `artifact`, so a client can \ + search the content and add entities the analysis missed. A detection whose analysis \ + ran no enricher has no intermediates (404).", ) .response::<200, Json>() .response::<401, Json>()