Files
finance/graphify-out/GRAPH_REPORT.md
T
k1nq c85b12b95e
CI / detect (push) Successful in 2s
CI / Compose & nginx validation (push) Failing after 4s
CI / Frontend (lint / type / test / build) (push) Failing after 19s
CI / Backend (lint / type / test / build) (push) Failing after 47s
Refactor Docker configurations for frontend and Celery worker
- Updated the Celery worker command in docker-compose.yml to remove unnecessary flags for improved performance.
- Modified the frontend Dockerfile to use pnpm instead of corepack for package management and included pnpm-workspace.yaml in the build context.
- Adjusted the Dockerfile to correctly copy the nginx configuration from the build stage.
- Added network and build arguments for HTTP proxies in the docker-compose.yml for better network handling.
2026-09-18 15:23:18 +05:00

15 KiB

Graph Report - finance (2026-09-14)

Corpus Check

  • 147 files · ~51,467 words
  • Verdict: corpus is large enough that graph structure adds value.

Summary

  • 1078 nodes · 3099 edges · 62 communities (42 shown, 14 thin omitted)
  • Extraction: 98% EXTRACTED · 2% INFERRED · 0% AMBIGUOUS · INFERRED: 50 edges (avg confidence: 0.93)
  • Token cost: 0 input · 0 output

Community Hubs (Navigation)

  • Identity and Configuration
  • Budget Domain Services
  • Database Models
  • Database Context and Exports
  • Statement Import Services
  • Parser Adapters
  • Ledger Services
  • API Domain Types
  • Authentication UI
  • Ledger API
  • Import Review UI
  • TypeScript Configuration
  • Analytics UI
  • API and Analytics
  • Frontend Development Dependencies
  • Accounts UI
  • Frontend Runtime Dependencies
  • Import Detail Mutations
  • Operations UI
  • Query Keys and Operations
  • Frontend Bootstrap
  • Frontend Test Support
  • Budget UI
  • HTTP API Client
  • Form Fields
  • Infrastructure and CI
  • Core Finance Domain
  • Frontend Scripts
  • Settings and Data Lifecycle
  • Budget Allocation Model
  • MVP and Import Design
  • Data Security and Recovery
  • Ledger Concepts
  • Parser Versioning
  • Frontend Architecture
  • Beta Release Governance
  • Package Metadata
  • Tenant Isolation
  • Deletion and Restore
  • API Generation Script
  • OpenAPI Schema
  • API Integration Tests
  • Localization Tests
  • Income Classification
  • Accessibility ESLint
  • JavaScript Globals
  • JSDOM Dependency
  • React Type Definitions
  • React DOM Types
  • TypeScript ESLint
  • Vite React Plugin
  • Vitest Dependency
  • Favicon Design
  • Database Role Initialization
  • Payee Concept
  • Backend Package Metadata

God Nodes (most connected - your core abstractions)

  1. Session - 111 edges
  2. Base - 46 edges
  3. AppError - 41 edges
  4. get_settings() - 38 edges
  5. PkMixin - 38 edges
  6. TimestampMixin - 37 edges
  7. conflict() - 34 edges
  8. record() - 32 edges
  9. bad_request() - 27 edges
  10. not_found() - 26 edges

Surprising Connections (you probably didn't know these)

  • Versioned Statement Imports --conceptually_related_to--> Statement Import [INFERRED] docs/adr/0003-versioned-statement-imports.md → CONTEXT.md
  • MVP Release Gates --conceptually_related_to--> Closed Beta Launch Gates [INFERRED] .kilo/plans/1789034192214-financial-tracker-mvp.md → docs/operations/beta-release-runbook.md
  • Financial Space Ownership --conceptually_related_to--> Financial Space [INFERRED] docs/adr/0001-financial-space-ownership-and-rls.md → CONTEXT.md
  • Typed Same-Origin API Client --conceptually_related_to--> Same-Origin Reverse Proxy [INFERRED] frontend/README.md → infra/README.md
  • Compose and Nginx Validation --references--> Docker Compose Development Stack [EXTRACTED] .github/workflows/ci.yml → infra/docker-compose.yml

Import Cycles

  • None detected.

Hyperedges (group relationships)

  • Financial Space Tenancy Boundary — context_financial_space, context_membership, docs_adr_0001_financial_space_ownership_and_rls_defense_in_depth_authorization, docs_adr_0001_financial_space_ownership_and_rls_transaction_local_rls, docs_adr_0001_financial_space_ownership_and_rls_cross_space_integrity [EXTRACTED 1.00]
  • Auditable Financial Model — context_operation, context_posting, docs_adr_0002_journal_and_budget_reserves_derived_balances, docs_adr_0002_journal_and_budget_reserves_plan_funding_separation, docs_adr_0002_journal_and_budget_reserves_closure_snapshots [EXTRACTED 1.00]
  • Safe Statement Import Flow — context_statement_import, context_parse_run, context_source_record, docs_adr_0003_versioned_statement_imports_immutable_statement_document, docs_adr_0003_versioned_statement_imports_conservative_deduplication, docs_adr_0003_versioned_statement_imports_atomic_confirm_revert [EXTRACTED 1.00]

Communities (62 total, 14 thin omitted)

Community 0 - "Identity and Configuration"

Cohesion: 0.05 Nodes (87): get_settings(), Settings, current_context(), current_session(), alias, Context, CurrentSession, Db (+79 more)

Community 1 - "Budget Domain Services"

Cohesion: 0.09 Nodes (84): balances(), cash_flow(), category_spend(), plan_fact(), date, UUID, BudgetPeriod, Calendar month budget period in the space timezone (month granularity). (+76 more)

Community 2 - "Database Models"

Cohesion: 0.08 Nodes (64): downgrade(), upgrade(), AuditEvent, Append-only domain/security event. Never stores raw financial payloads., ExpectedIncome, ExpectedIncomeMatch, FundingMovement, PeriodClosure (+56 more)

Community 3 - "Database Context and Exports"

Cohesion: 0.06 Nodes (46): get_db(), get_session_factory(), Any, sessionmaker, Transaction-local RLS context. No-op on SQLite (tests); fail-closed on…, Transactional scope for workers/endpoints that own the transaction lifecycle., session_scope(), set_space_context() (+38 more)

Community 4 - "Statement Import Services"

Cohesion: 0.10 Nodes (55): detect_adapter(), magic_kind(), new_object_key(), decrypt_file(), encrypt_file(), EncryptedFile, Per-file random DEK; DEK wrapped with the KEK from the secret manager., Crypto-shred hook: deleting wrapped DEK rows in DB plus blobs removes access. (+47 more)

Community 5 - "Parser Adapters"

Cohesion: 0.08 Nodes (42): AppError, Any, Domain error rendered as a machine-readable JSON error payload., unprocessable(), AlfaCreditXlsxAdapter, AlfaDebitXlsxAdapter, AlfaXlsxAdapterBase, _cell_str() (+34 more)

Community 6 - "Ledger Services"

Cohesion: 0.14 Nodes (48): Any, record(), get_income_source(), conflict(), not_found(), confirm_document(), Operation, Posting (+40 more)

Community 7 - "API Domain Types"

Cohesion: 0.07 Nodes (39): AccountStatus, BalanceItem, BalancesReport, BudgetBlocker, BudgetCategory, BudgetStatus, BudgetSummary, BudgetWarning (+31 more)

Community 8 - "Authentication UI"

Cohesion: 0.10 Nodes (33): AcceptInvitePayload, LoginPayload, PasswordResetPayload, AcceptInvitePage, AccountsPage, BudgetPage, LoginPage, OperationsPage (+25 more)

Community 9 - "Ledger API"

Cohesion: 0.15 Nodes (31): account_json(), AccountBody, accounts(), archive_account(), create_account(), create_operation(), delete_account(), operation_json() (+23 more)

Community 10 - "Import Review UI"

Cohesion: 0.11 Nodes (21): Operation, ImportsPage, NotFoundPage, ReviewQueuePage, Badge(), BadgeTone, EmptyState(), EmptyStateProps (+13 more)

Community 11 - "TypeScript Configuration"

Cohesion: 0.07 Nodes (28): compilerOptions, baseUrl, esModuleInterop, forceConsistentCasingInFileNames, isolatedModules, jsx, lib, module (+20 more)

Community 12 - "Analytics UI"

Cohesion: 0.12 Nodes (19): AnalyticsPage, CashFlowColumn, ColumnChart(), ColumnChartProps, BarRow, HorizontalBars(), HorizontalBarsProps, PlanFactBars() (+11 more)

Community 13 - "API and Analytics"

Cohesion: 0.14 Nodes (22): balances(), cash_flow(), category_spend(), plan_fact(), Context, date, Db, get (+14 more)

Community 14 - "Frontend Development Dependencies"

Cohesion: 0.10 Nodes (21): eslint, @eslint/js, eslint-plugin-react-hooks, devDependencies, eslint, @eslint/js, eslint-plugin-react-hooks, openapi-typescript (+13 more)

Community 15 - "Accounts UI"

Cohesion: 0.16 Nodes (15): Account, AccountType, ConfirmDialog(), ConfirmDialogProps, Modal(), ModalProps, useAccounts(), useArchiveAccount() (+7 more)

Community 16 - "Frontend Runtime Dependencies"

Cohesion: 0.11 Nodes (19): dependencies, @hookform/resolvers, i18next, react, react-dom, react-hook-form, react-i18next, react-router-dom (+11 more)

Community 17 - "Import Detail Mutations"

Cohesion: 0.27 Nodes (15): RowDecision, ImportDetailPage, useToast(), useConfirmImport(), useImport(), useImportErrorToaster(), useReparseImport(), useRevertImport() (+7 more)

Community 18 - "Operations UI"

Cohesion: 0.27 Nodes (14): useActiveAccounts(), useCreateOperation(), useLedgerMutation(), useOperations(), useVoidOperation(), amountField(), dateField(), ExpenseForm() (+6 more)

Community 19 - "Query Keys and Operations"

Cohesion: 0.22 Nodes (10): api, invalidationRoots, queryKeys, SESSION_ROOT, sessionInvalidationRoot, SPACE_ROOT, spaceInvalidationRoot, OperationFilters (+2 more)

Community 20 - "Frontend Bootstrap"

Cohesion: 0.17 Nodes (10): Locale, App(), queryClient, AppRoutes(), createI18n(), detectLocale(), i18n, LOCALES (+2 more)

Community 21 - "Frontend Test Support"

Cohesion: 0.17 Nodes (12): User, ToastApi, ToastContext, ToastItem, ToastKind, ToastProvider(), createTestQueryClient(), renderWithProviders() (+4 more)

Community 22 - "Budget UI"

Cohesion: 0.36 Nodes (12): useBudgetCategories(), useBudgetErrorToaster(), useBudgetSummary(), useCloseMonth(), useCopyPreviousMonth(), useFundCategory(), usePeriodMutation(), useReopenMonth() (+4 more)

Community 23 - "HTTP API Client"

Cohesion: 0.23 Nodes (10): apiClient, ApiError, buildUrl(), ErrorEnvelope, parseErrorEnvelope(), QueryValue, readCsrfToken(), request() (+2 more)

Community 24 - "Form Fields"

Cohesion: 0.23 Nodes (10): FieldChrome, InputProps, MoneyField(), MoneyFieldProps, SelectFieldProps, SelectProps, TextareaField(), TextareaFieldProps (+2 more)

Community 25 - "Infrastructure and CI"

Cohesion: 0.18 Nodes (12): Backend Quality Gate, CI Pipeline, Compose and Nginx Validation, Frontend Quality Gate, Commodity Infrastructure Services, Docker Compose Development Stack, Internal Backend Network, Same-Origin Frontend Service (+4 more)

Community 26 - "Core Finance Domain"

Cohesion: 0.22 Nodes (9): Credit Reserve, Financial Account, Financial Space, Membership, User, Carry-Over Budget Reserves, Closed Beta Zero-Based Budgeting, Finance Tracker (+1 more)

Community 27 - "Frontend Scripts"

Cohesion: 0.22 Nodes (9): scripts, api:generate, build, dev, lint, preview, test, test:watch (+1 more)

Community 28 - "Settings and Data Lifecycle"

Cohesion: 0.44 Nodes (7): useCancelDeletion(), useRequestDeletion(), useRequestExport(), useSpaceDeletion(), DeletionForm(), DeletionFormValues, SettingsPage()

Community 29 - "Budget Allocation Model"

Cohesion: 0.29 Nodes (8): Budget Period, Funding, General Pool, Monthly Category, Plan Assignment, Savings Envelope, Immutable Closure Snapshots, Plan and Funding Separation

Community 30 - "MVP and Import Design"

Cohesion: 0.25 Nodes (8): Atomic Import Confirm and Revert, Conservative Deduplication, Versioned Statement Imports, Budget Invariants, Critical User Path, Financial Tracker MVP, Statement Import Pipeline, Modular Monolith

Community 31 - "Data Security and Recovery"

Cohesion: 0.25 Nodes (8): Immutable Statement Document, Per-File Envelope Encryption, Provider-Neutral Data Boundary, Russian Federation Data Residency, Backup and Restore Runbook, Mandatory KEK Backup, Quarterly Restore Drill, Provider-Neutral Infrastructure

Community 32 - "Ledger Concepts"

Cohesion: 0.38 Nodes (7): Internal Transfer, Operation, Posting, Refund, Derived Account Balances, Operations and Postings Journal, Ledger Invariants

Community 33 - "Parser Versioning"

Cohesion: 0.33 Nodes (7): Parse Run, Source Record, Statement Import, Parser Versioning and Review Diff, Layout Drift Re-Gating, Parser Private Fixture Gate, Private Statement Test Contract

Community 34 - "Frontend Architecture"

Cohesion: 0.29 Nodes (7): Server-Side Secret Boundary, Grossbukh Application Shell, Accessible Responsive UI, Finance Frontend SPA, RU and EN Localization, Space-Scoped Query Keys, Typed Same-Origin API Client

Community 35 - "Beta Release Governance"

Cohesion: 0.29 Nodes (7): Closed Beta Release Runbook, Forward-Fix Rollback Policy, Financial Data Incident Response, Closed Beta Launch Gates, Production Launch Sequence, Adapter Beta Eligibility, MVP Release Gates

Community 36 - "Package Metadata"

Cohesion: 0.29 Nodes (6): allowScripts, esbuild@0.25.12, name, private, type, version

Community 37 - "Tenant Isolation"

Cohesion: 0.33 Nodes (6): Audited Break-Glass Access, Cross-Space Referential Integrity, Defense-in-Depth Authorization, Financial Space Ownership, Transaction-Local RLS Context, Tenant Boundary

Community 38 - "Deletion and Restore"

Cohesion: 0.40 Nodes (6): Crypto-Shredded Deletion, Disaster Restore Procedure, Thirty-Day Space Deletion, Durable Deletion Ledger, Idempotent Resumable Purge, Post-Restore Deletion Replay

Community 39 - "API Generation Script"

Cohesion: 0.40 Nodes (5): firstReadable(), LOCAL_CANDIDATES, main(), OUT_DIR, REMOTE_CANDIDATES

Community 40 - "OpenAPI Schema"

Cohesion: 0.33 Nodes (5): components, $defs, operations, paths, webhooks

Community 41 - "API Integration Tests"

Cohesion: 0.67 Nodes (3): TestClient, test_invite_login_and_authenticated_space(), test_openapi_contains_critical_paths()

Knowledge Gaps

  • 176 isolated node(s): finance-backend, name, private, version, type (+171 more) These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 296 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
  • 14 thin communities (<3 nodes) omitted from report — run graphify query to explore isolated nodes.

Suggested Questions

Questions this graph is uniquely positioned to answer:

  • Why does Session connect Budget Domain Services to Identity and Configuration, Database Models, Database Context and Exports, Statement Import Services, Ledger Services? High betweenness centrality (0.072) - this node is a cross-community bridge.
  • Why does AppError connect Parser Adapters to Identity and Configuration, Budget Domain Services, Database Models, Database Context and Exports, Statement Import Services, Ledger Services, API and Analytics? High betweenness centrality (0.035) - this node is a cross-community bridge.
  • Why does get_settings() connect Identity and Configuration to Database Models, Database Context and Exports, Statement Import Services, Parser Adapters, API and Analytics? High betweenness centrality (0.024) - this node is a cross-community bridge.
  • Are the 2 inferred relationships involving Session (e.g. with UTCDateTime and test_postgres_rls_requires_matching_transaction_context()) actually correct? Session has 2 INFERRED edges - model-reasoned connections that need verification.
  • Are the 3 inferred relationships involving Base (e.g. with downgrade() and upgrade()) actually correct? Base has 3 INFERRED edges - model-reasoned connections that need verification.
  • Are the 13 inferred relationships involving AppError (e.g. with request_export() and login()) actually correct? AppError has 13 INFERRED edges - model-reasoned connections that need verification.
  • What connects finance-backend, name, private to the rest of the system? 176 weakly-connected nodes found - possible documentation gaps or missing edges.