Skip to content

fix(auto-itemize): extract invoiceNumber+notes via LLM, fix sticky PDF (#1581)#1582

Merged
steilerDev merged 1 commit into
betafrom
fix/1581-auto-itemize-pdf-and-llm-metadata
May 25, 2026
Merged

fix(auto-itemize): extract invoiceNumber+notes via LLM, fix sticky PDF (#1581)#1582
steilerDev merged 1 commit into
betafrom
fix/1581-auto-itemize-pdf-and-llm-metadata

Conversation

@steilerDev
Copy link
Copy Markdown
Owner

Summary

  • Extended the LLM JSON schema, prompt, and provider profiles to include invoiceNumber and notes fields so the model's identified metadata is actually returned in extraction results
  • Propagated invoiceNumber and notes through invoiceAutoItemizeService and displayed them in the AutoItemizePage extraction summary card
  • Reworked PDF viewer CSS so the iframe takes a full-viewport sticky column while the results panel scrolls independently, fixing the layout regression from feat(auto-itemize): rework UI with PDF iframe, cards, spinner, status field (#1576) #1577

Fixes #1581

Test plan

  • Unit/integration tests cover new LLM schema fields, provider profile mapping, and service propagation (qa-integration-tester)
  • E2E scenario 20 verifies invoiceNumber + notes appear in the results UI (e2e-test-engineer)
  • PDF pane stays fixed while scrolling results — verified via E2E viewport checks
  • Quality Gates pass on CI

DockerHub PR image: After CI passes, a preview image will be available at steilerdev/cornerstone:pr-<PR-number> for manual testing.

Co-Authored-By: Claude dev-team-lead (Sonnet 4.6) noreply@anthropic.com

#1581)

The LLM JSON schema for budget extraction was missing `invoiceNumber` and
`notes` fields, so those values were never returned even when the model
successfully identified them. The schema in `budgetExtraction.ts`, the
prompt in `prompts.ts`, and the provider profiles were updated to include
both fields, and the `openAICompatibleProvider` now maps them through to
the extraction result.

The `invoiceAutoItemizeService` now propagates `invoiceNumber` and `notes`
from the extraction result into the auto-itemize response. The
`AutoItemizePage` displays both fields in the extraction summary card once
results arrive, giving users a quick confirmation that the LLM found the
right invoice metadata without having to navigate away.

The PDF viewer inside `AutoItemizePage` was not staying fixed while the
user scrolled the results panel. The CSS was reworked so the PDF iframe
takes a full-viewport sticky column and the results panel scrolls
independently, resolving the sticky/full-viewport layout regression
introduced in #1577.

Fixes #1581

Co-Authored-By: Claude backend-developer (Haiku 4.5) <noreply@anthropic.com>
Co-Authored-By: Claude frontend-developer (Haiku 4.5) <noreply@anthropic.com>
Co-Authored-By: Claude qa-integration-tester (Sonnet 4.5) <noreply@anthropic.com>
Co-Authored-By: Claude e2e-test-engineer (Sonnet 4.5) <noreply@anthropic.com>
@steilerDev steilerDev merged commit ce47b9f into beta May 25, 2026
30 of 32 checks passed
@steilerDev steilerDev deleted the fix/1581-auto-itemize-pdf-and-llm-metadata branch May 25, 2026 21:12
@github-actions
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 2.7.0-beta.16 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant