Skip to content

Develop - #12

Merged
kmandryk merged 24 commits into
mainfrom
develop
Nov 26, 2025
Merged

Develop#12
kmandryk merged 24 commits into
mainfrom
develop

Conversation

@kmandryk

Copy link
Copy Markdown
Collaborator

No description provided.

kmandryk and others added 24 commits November 18, 2025 14:56
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
@kmandryk
kmandryk merged commit 9190071 into main Nov 26, 2025
8 of 10 checks passed
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>
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.

3 participants