Robert Patch
92cca05cb7
feat(k1-import): position-based PDF extraction and field mapping
2 months ago
Robert Patch
cda15c95bb
fix(k1-parser): fix cross-column contamination, checkbox, Section L, and tax year extraction
- Reduce left column xMax from 445 to 435 to prevent right-column subtype
codes (at x~455) from being captured via 15pt tolerance
- Process subtype regions before simple regions in extractPartIII to ensure
right-column codes are consumed by their correct boxes first
- Add assignItemsToRegions() closest-center matching algorithm to resolve
contention when adjacent/overlapping regions compete for the same item
- Refactor extractCheckboxes to use closest-center: fixes G_LIMITED being
detected as G_GENERAL (x=180.3 at boundary x=178) and M_NO as M_YES
- Refactor extractSections to use closest-center: fixes Section L rows
(12pt spacing < 15pt tolerance) being assigned to wrong fields
- Lower tax year y-threshold from 745 to 710 to capture year fragments
at y=727.7, enabling proper 20+25 -> 2025 combination
- Add tools/test-k1-parse.mjs for standalone PDF parsing validation
Verified against actual K-1 PDF: all fields match expected values,
unmapped items reduced from many to 3 (noise only).
2 months ago
Robert Patch
41659a9c5b
fix: recalibrate K-1 position regions from actual PDF coordinates
- Rewrote k1-position-regions.ts with all coordinates measured from
actual e-filed K-1 PDF via pdfjs-dist text position extraction
- Fixed all y-coordinate offsets (header, Part I/II, sections J-N, Part III)
- Added missing regions: J_EXCHANGE, BOX_22, BOX_23, H2_DE_TIN
- Set clean column boundaries (left values x=370-445, right code x=445-510,
right values x=510-600) to prevent cross-column matching
- Reordered extraction: checkboxes now run before Part III to prevent
BOX_16_K3 checkbox X from being grabbed as a BOX_16 value
- Fixed stale fieldId refs: D_PARTNER_EIN->E_TIN, E_NAME->F_NAME_ADDR
- Removed SSL from client serve config for local HTTP development
- Changed API rootUrl from https to http for dev environment
- Added tools/extract-k1-positions.mjs utility for PDF coordinate dumps
2 months ago
Robert Patch
f65386b3b6
feat(k1-import): rewrite K-1 PDF parser with position-based pdfjs-dist extraction
2 months ago
Robert Patch
220417bc02
fix: resolve K-1 PDF upload ENOENT and controller route prefix issues
- Register MulterModule with disk storage in K1ImportModule so FileInterceptor
writes uploaded files to disk (sets file.filename and file.path)
- Make UploadService.createDocument robust for both disk and memory storage
by generating filename and writing buffer to disk when file.filename is unset
- Fix reprocess method to join relative filePath with uploadDir for absolute path
- Remove duplicate 'api/v1' prefix from K1ImportController and CellMappingController
(NestJS global prefix + URI versioning already adds /api/v1/)
2 months ago
Robert Patch
f219555dab
fix: resolve TypeScript compilation errors for K-1 import feature
- Update pdf-parse usage from v1 to v2 API (PDFParse class with getText())
- Fix Prisma relation names: memberships -> members, isActive -> endDate: null
- Remove unused imports, variables, and service injections
- Fix noUnusedLocals/noUnusedParameters violations across 9 files
2 months ago
Robert Patch
94409a6f37
feat(k1-import): Phase 8 polish - multi-entity detection, edge case warnings, navigation links, test fixtures
2 months ago
Robert Patch
063722b829
feat(k1-import): Phase 7 US5 - import history, reprocess, audit trail, KDocument detail with aggregation summary
2 months ago
Robert Patch
2e7d3780bc
feat(k1-import): Phase 6 US4 - cell mapping CRUD, controller endpoints, frontend config page, pipeline integration
2 months ago
Robert Patch
904fe4b820
feat(k1-import): Phase 5 US3 - confirm flow, allocation service, KDocument/Distribution creation, confirmation component
2 months ago
Robert Patch
4b5a98608a
feat(k1-import): Phase 4 US2 - verification logic, aggregation service, verify component with review enforcement
2 months ago
Robert Patch
7e48fd6fe6
feat(k1-import): Phase 3 US1 - upload, extraction pipeline, confidence scoring, frontend upload page
2 months ago
Robert Patch
3d25b555b6
feat(k1-import): Phase 2 foundational - modules, extractor interface, seed data, routes
2 months ago
Robert Patch
a256ee1e85
feat(k1-import): Phase 1 setup - deps, prisma schema, interfaces, DTOs, env vars
2 months ago
Robert Patch
6b1a0133fb
tasks: K-1 scan import task breakdown (51 tasks across 8 phases)
2 months ago
Robert Patch
a759b94ada
plan: update K-1 scan import plan with clarification decisions
Post-clarification updates (5 decisions integrated):
- research.md: +3 decisions (aggregation, unmapped items, auto-accept)
- data-model.md: +CellAggregationRule model, K1UnmappedItem interface, isReviewed field
- contracts/k1-import-api.md: +3 aggregation rule endpoints, unmapped items in verify
- quickstart.md: +aggregation service, updated workflow, updated tests
- plan.md: rebuilt with updated summary, 3 models/1 enum, extended project structure
- copilot-instructions.md: agent context refreshed
2 months ago
Robert Patch
610629ce6f
clarify: 5 clarifications for K-1 scan import spec
- Q1: Cell aggregation rules (custom admin-defined summaries, FR-030-034)
- Q2: Auto-accept high-confidence values, review medium/low only (FR-035)
- Q3: Aggregated summaries displayed on KDocument detail view (FR-036)
- Q4: Unmapped items section on verification screen (FR-037-038)
- Q5: Dynamic computation of aggregates, rules-only persistence (FR-039)
2 months ago
Robert Patch
269eed7faf
plan: K-1 scan import implementation plan (Phase 0+1)
- research.md: 9 architectural decisions (two-tier OCR, Azure+tesseract fallback)
- data-model.md: K1ImportSession, CellMapping models, K1ImportStatus enum
- contracts/k1-import-api.md: 10 REST endpoints
- quickstart.md: file structure, setup guide, workflow
- plan.md: summary, technical context, constitution check, project structure
- Updated copilot agent context with new tech stack entries
2 months ago
Robert Patch
5bf947b779
spec: add K-1 PDF scan import specification (004-k1-scan-import)
2 months ago
RobertgPatch
bf32a79ac2
Merge pull request #1 from RobertgPatch/003-portfolio-performance-views
003 portfolio performance views
2 months ago
RobertgPatch
f12782e163
Merge pull request #2 from RobertgPatch/copilot/sub-pr-1
Fix upload path, enum mismatches, missing validation, secrets in env, and i18n inconsistencies
2 months ago
copilot-swe-agent[bot]
2f2ebd1f39
fix: address review comments - upload path, validation, env credentials, entrypoint, i18n
Co-authored-by: RobertgPatch <5817970+RobertgPatch@users.noreply.github.com>
2 months ago
copilot-swe-agent[bot]
ec3034424f
Initial plan
2 months ago
Robert Patch
e8f5af7a30
feat: portfolio performance views and family office improvements (WIP)
2 months ago
Robert Patch
94acddab89
feat: transform Ghostfolio into single family office platform
- Add API modules: entity, partnership, distribution, k-document, family-office, upload
- Add client pages: entities, partnerships, entity-detail, partnership-detail, distributions, k-documents, family-dashboard
- Add CRUD dialogs for ownerships, members, assets, valuations, distributions, k-documents
- Add navigation items for Entities, Partnerships, Distributions, K-1 Documents
- Fix empty accounts dropdown in ownership dialog
- Add Prisma schema models and migrations for family office entities
- Add speckit scaffolding for spec-driven development
2 months ago
Kenrick Tandrian
a0424147d4
Task/improve type safety of admin and data services ( #6557 )
* Improve type safety
2 months ago
Thomas Kaul
397f60756f
Task/add destroyRef explicitly to lib components ( #6559 )
* Add destroyRef explicitly
2 months ago
Winn Cook
0638da9490
Task/eliminate OnDestroy lifecycle hook from public page component ( #6487 )
* Eliminate OnDestroy lifecycle hook
2 months ago
Thomas Kaul
c2acf28824
Bugfix/thousand separator detection test for de-CH locale (part 2) ( #6572 )
* Fix test
2 months ago
Thomas Kaul
0cebc65ed4
Bugfix/thousand separator detection test for de-CH locale ( #6571 )
* Fix thousand separator detection for de-CH
* Update changelog
2 months ago
Thomas Kaul
f678d91113
Task/pin node version in "Build code" GitHub action ( #6570 )
* Pin node version
* Update changelog
2 months ago
Erwin
aaf7570b3c
Task/eliminate OnDestroy lifecycle hook from app component ( #6568 )
* Eliminate OnDestroy lifecycle hook
2 months ago
Kenrick Tandrian
7c20bfff92
Task/improve type safety in tags selector component ( #6497 )
* Improve type safety
2 months ago
Erwin
3db4209dff
Task/eliminate OnDestroy lifecycle hook from header component ( #6567 )
* Eliminate OnDestroy lifecycle hook
2 months ago
Erwin
a458608bd6
Task/eliminate OnDestroy lifecycle hook from admin users component ( #6565 )
* Eliminate OnDestroy lifecycle hook
2 months ago
Erwin
0883298cf1
Task/eliminate OnDestroy lifecycle hook from data provider status component ( #6566 )
* Eliminate OnDestroy lifecycle hook
2 months ago
Erwin
19315e8ca5
Task/eliminate OnDestroy lifecycle hook from admin settings component ( #6560 )
* Eliminate OnDestroy lifecycle hook
2 months ago
Erwin
89b41da17f
Task/eliminate OnDestroy lifecycle hook from admin tag component ( #6561 )
* Eliminate OnDestroy lifecycle hook
2 months ago
Thomas Kaul
2b072391cc
Task/upgrade @ionic/angular to version 8.8.1 ( #6558 )
* Upgrade @ionic/angular to version 8.8.1
* Update changelog
2 months ago
Erwin
2f34c7d471
Task/eliminate OnDestroy lifecycle hook from admin market data component ( #6552 )
* Eliminate OnDestroy lifecycle hook
2 months ago
Erwin
319bde1816
Task/eliminate OnDestroy lifecycle hook from auth page ( #6528 )
* Eliminate OnDestroy lifecycle hook
2 months ago
Erwin
f469bb9d36
Task/eliminate OnDestroy lifecycle hook from admin platform component ( #6553 )
* Eliminate OnDestroy lifecycle hook
2 months ago
Erwin
980060a49f
Task/eliminate OnDestroy lifecycle hook from home watchlist component ( #6551 )
* Eliminate OnDestroy lifecycle hook
2 months ago
Kenrick Tandrian
9310466c7a
Task/improve type safety of holdings table component ( #6556 )
* Improve type safety
2 months ago
Kenrick Tandrian
27c50bf509
Task/improve type safety of benchmark component ( #6555 )
* Improve type safety
2 months ago
Akd11111
06492b6012
Task/improve language localization for PL (20260312) ( #6523 )
* Improve language localization for PL
* Update changelog
2 months ago
Thomas Kaul
a3b1b922d2
Task/implement OnModuleInit interface in AssetsController ( #6451 )
* Implement OnModuleInit interface
2 months ago
Thomas Kaul
cf57c156fc
Task/refactor open Bull Board in admin jobs component ( #6525 )
* Refactoring
2 months ago
Thomas Kaul
439af5f21d
Task/consolidate sign-out logic ( #6526 )
* Consolidate sign-out logic
* Update changelog
2 months ago
Kenrick Tandrian
573fbb9a40
Task/improve type safety of toggle component ( #6533 )
* Improve type safety
2 months ago