Skip to content

Dev#2418

Merged
JamesPasta merged 55 commits into
dev2from
dev
May 7, 2026
Merged

Dev#2418
JamesPasta merged 55 commits into
dev2from
dev

Conversation

@JamesPasta
Copy link
Copy Markdown
Collaborator

No description provided.

jacobwillsmith and others added 30 commits April 30, 2026 16:13
Replace the byte[]-based attachment extraction pipeline with a streaming
one to avoid full in-memory buffering of CHEFS attachments when generating
AI summaries.

- ISubmissionAppService gains GetChefsFileAttachmentStream returning a
  ChefsFileAttachmentStream (Stream + content-type) backed by a temp file
  with FileOptions.DeleteOnClose. Implementation uses
  HttpCompletionOption.ResponseHeadersRead so the HTTP layer streams the
  response body directly to disk instead of buffering it. Temp file is
  cleaned up on copy/open failure.
- IResilientHttpRequest.HttpAsync gains an optional HttpCompletionOption
  parameter (default ResponseContentRead preserves all existing callers).
- ITextExtractionService.ExtractTextAsync now takes a Stream. The
  byte[] overload, the byte[] extractor dictionary, and the per-format
  byte[] private methods are removed. PDF/Word/Excel/PowerPoint
  extractors consume the stream directly; the text-file extractor reads
  incrementally via StreamReader.
- AttachmentSummaryRequest drops byte[] FileContent and gains
  string? ExtractedText. AttachmentSummaryService streams the file,
  extracts text once, and passes ExtractedText to the AI runtime.
- OpenAIRuntimeService.GenerateAttachmentSummaryAsync uses
  request.ExtractedText directly; the byte[] extraction fallback,
  sizeBytes payload field, and ITextExtractionService dependency are
  removed.

Build clean. Application.Tests 337/337 and Web.Tests 16/16 pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
…lling-dedupe-and-locking

Feature/ab#32451 ai generation polling dedupe and locking
…lling-dedupe-and-locking

AB#32451 add UOW to AI generation jobs
feature/AB#32839-AddCancelledToInvoiceStatusExclusions
…-ReportHistory

AB#32436: Applicant Profile - Reports History in History Tab
…r-IO-Calls

AB#32581: Fix Blocking I/O Calls
- Change date filter from 'alltime' to 'last7days' when searching submissions
- Trim chefs-api-submission seeder to create exactly one submission (removes
  custom overrides, draft, file attachment, and retrieve test blocks)
- Fix clickPaymentInfoSave to target #savePaymentInfoBtn and intercept the
  PUT supplier-number API instead of a fixed wait
- Add page reload in ensureSiteInfoReady so DataTable re-initializes with the
  saved SupplierId before Refresh Site List is clicked
- Intercept sites-by-supplier-number API in ensureSiteInfoReady to wait on
  the actual response rather than a timer
- Scroll #main-left pane to bring SiteInfoTable into view before row checks

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jacobwillsmith and others added 25 commits May 6, 2026 10:24
…-PROD-Only

AB#32842: Setup User-Friendly Error Page on UAT and PROD Only
…orting-code-into-unity-core

Feature/ab#32543 integrate ai reporting code into unity core
…ps-permission

AB#32452 refine prompt tools layout and access
…ts-lower-memory-ai-processing

Feature/ab#32302 stream attachments lower memory ai processing
Fixed setting management to check for all 3 AI permissions rather than just scoring.
…sis-Permissions-and-Features

- Removes the intermediate "AI Analysis" parent node from both the permission tree and the Features modal introduced in AB#32812. Having a parent that grants no actual capability was confusing for ITAdmins.
- The three AI sub-features (Attachment Summaries, Application Analysis, Scoring) are now flat siblings in the Features modal. The three View and Generate permission pairs are now direct children of the AI permission group with no intermediate parent.
- The six permission key strings were also cleaned up to remove the redundant `.Analysis.` segment (for example `AI.Analysis.ViewApplicationAnalysis` becomes `AI.ViewApplicationAnalysis`).
- As part of this change, the ConfigureAI settings permission was also fixed to appear when any of the three AI features is enabled rather than only when Scoring is enabled.
- A host migration cleans up the orphaned `AI.Analysis` permission grants, removes the `Unity.AI.Analysis` feature rows, and renames the six existing permission grants in the database to match the new key names.
Co-authored-by: Copilot <copilot@github.com>
AmazonS3Client internally owns an HttpClient, which maintains a pool of TCP connections to S3. Creating a new instance per request means a new connection pool per request — those pools are expensive to spin up and are never explicitly cleaned up when the class doesn't implement IDisposable.
…-upgrade

# Conflicts:
#	applications/Unity.GrantManager/src/Unity.GrantManager.Application/GrantManagerApplicationAutoMapperProfile.cs
Co-authored-by: Copilot <copilot@github.com>
…press

Feature/ab#32508 approval flow cypress
…ols-panel

AB#32452 remove prompt tools panel
…Client-Usage

AB#32684:  Register AmazonS3Client as singleton and reuse it
@JamesPasta JamesPasta merged commit 7e1dcb7 into dev2 May 7, 2026
12 checks passed
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 7, 2026

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.

6 participants