Conversation
Introduces base, image-streams, and overlays for dev and prod environments to support backend-services deployment on OpenShift using kustomize. Includes ConfigMap, Deployment, Service, Route, PVC, NetworkPolicy, and environment-specific configuration for streamlined management and deployment.
Deleted all kustomize configuration files for backend-services and related image streams in the OpenShift deployments director. redundant now with overlays.
AI-489 QA Workflows Fix
alex-struk
added a commit
that referenced
this pull request
Jun 23, 2026
…op caller key (spans PR4/5/6) Workflow module hardening. This commit spans phases (relocate at split time): PR 5 (document sources / upload endpoint): - #8: sanitise file.originalname to a safe basename and run the key through validateBlobFilePath — closes the cross-tenant path-traversal write. - #9: add a static Multer fileSize ceiling so oversized uploads are rejected before buffering; keep the dynamic per-source limit. - #10: add the missing non-member -> Forbidden authorization test for upload. - #11: magic-byte content sniffing; reject when bytes contradict the declared MIME. - #12: store source uploads under a new generic OperationCategory.WORKFLOW, not OCR. PR 4 (try-in-place): - #16: versionRunCount cache is now a real bounded LRU (was an unbounded "LRU"). - #17: run-history first-page enrichment fans out fetchHistory with bounded concurrency. PR 6 (cross): temporal-client startGraphWorkflow drops the apiKey param (part of #4); upload-and-Try and /runs are symmetric (resolves #2). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
alex-struk
pushed a commit
that referenced
this pull request
Jul 2, 2026
The first SUMMARY framed the gap between iteration's 70.3% per-field
accuracy and the benchmark's 0.943 f1.median as "iteration was overly
strict, benchmark's fuzzy-0.85 was more forgiving."
Looking at the per-sample numbers, that framing is misleading:
- synth-full (1) iteration scorer (strict-with-normalisation):
52/74 = 70.3% match
- synth-full (1) benchmark scorer (fuzzy@0.85):
54/74 matched, recall 0.730, F1 0.844
Fuzzy gave 2 extra credits on close-but-not-exact OCR misreads. The
fuzzy-vs-strict gap is small. The actual driver is that synth-full (1)
is genuinely a hard sample for gpt-5.4 (F1 0.844 << run median 0.943);
the headline aggregate was pulled up by easier samples scoring 0.95+,
not by the scorer being lenient.
Also affirm explicitly that the schema-aware + fuzzy@0.85 + threshold-
0.8 evaluator config is identical across E01-E04 (wired in seed.ts:
2044-2062), so the cross-experiment comparison is apples-to-apples.
Updates:
- Iteration-section framing: scorer-difference is small; sample
selection is the dominant factor.
- Comparison-vs-E01-E03 section: explicit "identical evaluator" note
+ per-sample variance caveat.
- Retrospective lesson #1: rewritten — single-sample iteration is a
poor proxy for benchmark performance because per-sample variance
dominates.
- Retrospective lesson #12: rewritten — pick 2-3 samples spanning the
dataset rather than relying on fuzzy-vs-strict scoring difference
to bridge the gap.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
alex-struk
pushed a commit
that referenced
this pull request
Jul 2, 2026
The first SUMMARY framed the gap between iteration's 70.3% per-field
accuracy and the benchmark's 0.943 f1.median as "iteration was overly
strict, benchmark's fuzzy-0.85 was more forgiving."
Looking at the per-sample numbers, that framing is misleading:
- synth-full (1) iteration scorer (strict-with-normalisation):
52/74 = 70.3% match
- synth-full (1) benchmark scorer (fuzzy@0.85):
54/74 matched, recall 0.730, F1 0.844
Fuzzy gave 2 extra credits on close-but-not-exact OCR misreads. The
fuzzy-vs-strict gap is small. The actual driver is that synth-full (1)
is genuinely a hard sample for gpt-5.4 (F1 0.844 << run median 0.943);
the headline aggregate was pulled up by easier samples scoring 0.95+,
not by the scorer being lenient.
Also affirm explicitly that the schema-aware + fuzzy@0.85 + threshold-
0.8 evaluator config is identical across E01-E04 (wired in seed.ts:
2044-2062), so the cross-experiment comparison is apples-to-apples.
Updates:
- Iteration-section framing: scorer-difference is small; sample
selection is the dominant factor.
- Comparison-vs-E01-E03 section: explicit "identical evaluator" note
+ per-sample variance caveat.
- Retrospective lesson #1: rewritten — single-sample iteration is a
poor proxy for benchmark performance because per-sample variance
dominates.
- Retrospective lesson #12: rewritten — pick 2-3 samples spanning the
dataset rather than relying on fuzzy-vs-strict scoring difference
to bridge the gap.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.