Activity Dashboard
Branch activity from ch/product and jy/product · All history · Generated 2026-09-10 15:41:16 KST
| Branch | Commits | Active Days |
|---|---|---|
| 🟢 ch/product | 636 | 111 |
| 🔵 jy/product | 780 |
2026-09-10 (Thu)
🟢 ch/product
other 15:40:45 c1d5f8eb
ci: align PoC deployments and add Slack notifications
5 files · +239 · -7
- CI/CD
- deploy-poc-admin-web.yml
- deploy-poc-docs.yml
- deploy-poc-frontend.yml
- deploy-poc-landing.yml
- deploy-poc-web.yml
other 15:36:08 6cce8f5b
ci: split PoC deployments into independent workflows
6 files · +319 · -203
- CI/CD
- deploy-poc-admin-web.yml
- deploy-poc-docs.yml
- deploy-poc-frontend.yml
- deploy-poc-landing.yml
- deploy-poc-web.yml
- deploy-poc.yml
feat 15:30:32 d83649de
feat(infra): isolate PoC deployments and add frontend CI
46 files · +828 · -63
- Admin
- .env.poc
- package
- CI/CD
- deploy-admin-web.yml
- deploy-landing.yml
- deploy-poc.yml
- deploy-web.yml
- Infra
- .env.example
- CDK Stack (api-stack)
- CDK Stack (api-stage-routes.test)
- CDK Stack (certificate-stack)
- CDK Stack (ci-deploy-role-stack)
- CDK Stack (docs-stack)
- CDK Stack (lambda-helpers)
- CDK Stack (poc-ci-role.test)
- CDK Stack (poc-stacks.test)
- CDK Stack (spa-bucket-deployment)
- CDK Stack (spa-bucket-deployment.test)
- addresses.ts
- app.ts
- ci.ts
- client-lazy-signer.test.ts
- client.ts
- derive-signer-addresses.ts
- docs-app.test.ts
- docs-environment.test.ts
- docs-environment.ts
- docs.ts
- environment-stage-split.test.ts
- environment.ts
- fund-signers.ts
- kms.ts
- kyc-upgrade.ts
- load-env.ts
- migrate-signer-roles.ts
- package.json
- poc-isolation.test.ts
- roles.ts
- script-stage.test.ts
- script-stage.ts
- verify-signer-roles.ts
- Investor Web
- .env.poc
- package
- Other
- .gitignore
- landing/.env.poc.example
- landing/package.json
fix 00:38:50 e2a9e1db
fix(admin): preserve delinquency drafts and their original revisions
4 files · +266 · -82
- Admin
- panel
- test-delinquency-editor
- use-delinquency-editor
- Docs
- delinquency-inputs.md
fix 00:33:20 29585f08
fix(delinquency): select supplemental observations for the current population
3 files · +49 · -4
- Infra
- DB 0223_delinquency_supplement_population.sql
- delinquency-snapshot.postgres.py
- supabase-projection.ts
fix 00:16:28 703fa598
fix(delinquency): prevent stale edits and incorrect bucket reuse
20 files · +299 · -66
- Admin
- api
- panel
- use-delinquency
- Infra
- DB 0222_delinquency_snapshot_revision.sql
- assemble.ts
- buckets.ts
- delinquency-consumers.test.ts
- delinquency-monitor.test.ts
- delinquency-repository.test.ts
- delinquency-snapshot.postgres.py
- delinquency.ts
- inputs.test.ts
- manage.ts
- pools.get.delinquency.test.ts
- pools.post.delinquency-snapshot.test.ts
- pools.put.delinquency.test.ts
- read.ts
- repository.ts
- supabase-projection.ts
- Other
- packages/types/src/delinquency.ts
🔵 jy/product
No activity
2026-09-09 (Wed)
🟢 ch/product
feat 22:31:08 82bac9de
feat(delinquency): support supplemental inputs for monitoring and loss calculations
59 files · +1823 · -61
- Admin
- Route (admin-settings)
- api
- config-form
- field
- panel
- snapshot-draft
- snapshot-draft.test
- snapshot-form
- use-delinquency
- Docs
- delinquency-inputs.md
- Infra
- CDK Stack (api-stack)
- CDK Stack (route-configs)
- DB 0219_pool_delinquency_configuration.sql
- DB 0220_restrict_delinquency_config_execution.sql
- DB 0221_delinquency_alert_attempts.sql
- alerts.ts
- assemble.ts
- compute.test.ts
- compute.ts
- context.ts
- delinquency-alert-recipients.test.ts
- delinquency-alerts.postgres.py
- delinquency-alerts.ts
- delinquency-consumers.test.ts
- delinquency-monitor.test.ts
- delinquency-notification-recovery.test.ts
- delinquency-repository.test.ts
- delinquency.ts
- derive-report.ts
- dispatch.ts
- evaluate.test.ts
- evaluate.ts
- freshness.ts
- index.ts
- inputs.test.ts
- manage.ts
- monitor.ts
- npl.ts
- parse.ts
- pool-mutation-registry.ts
- pools.get.delinquency.test.ts
- pools.post.delinquency-snapshot.test.ts
- pools.put.delinquency.test.ts
- read.ts
- repository.ts
- types.ts
- Investor Web
- Widget (fund-data-tab)
- Widget (overview-tab)
- dpd-buckets
- dpd-buckets.test
- Investor Web API
- pools
- Lambda API
- pools.get.delinquency
- pools.post.delinquency-snapshot
- pools.put.delinquency
- Other
- packages/types/src/delinquency.ts
- packages/types/src/index.ts
fix 17:58:54 d5ccb725
fix(web): use approved maturity disclosure for zero-lockup pools
4 files · +54 · -21
- Investor Web
- Widget (invest-sidebar)
- Widget (maturity-disclosure.test)
- Widget (risk-disclosure)
- status
fix 17:48:29 8a45fb18
fix(yield): expose read failures and block deposits until totals recover
18 files · +353 · -91
- Admin
- Route (yield)
- create-distribution-dialog
- due-now-card
- partner-owes-block
- partner-owes-block.test
- yield-calc-breakdown
- yield-read-failure
- yield-read-failure-notice
- Admin API
- yield-due-row
- yield-prepayment.test
- Docs
- 15-api-reference.md
- Infra
- chain-read-failure.test.ts
- chain-read-failure.ts
- due-row-math.ts
- due-rows.ts
- holder-yield.ts
- yield-due-escrow.test.ts
fix 17:27:06 ef133006
fix(repayment): expose UNKNOWN reasons in API and progress notices
10 files · +145 · -21
- Admin
- cumulative-progress-bar
- cumulative-progress-logic
- maturity-due-progress.test
- repayment-plan
- Admin API
- pools
- Docs
- 15-api-reference.md
- Infra
- maturity-due.test.ts
- maturity-due.ts
- pools.get.repayment-cycles.test.ts
🔵 jy/product
other 11:20:16 b63b13ce
revert(landing): put the /partners hero and What you get copy back
1 files · +3 · -11
- Other
- landing/app/shared/copy/fund-managers.ts
other 11:16:01 a6ee99c9
revert(landing): hide the Contact nav link again
2 files · +17 · -8
- Other
- landing/app/shared/config/hidden-sections.ts
- landing/app/widgets/header/header.tsx
other 11:09:48 939c9048
Revert "refactor(landing): take the stock photography off /trust and let the type carry it"
7 files · +208 · -290
- Other
- landing/app/shared/copy/trust.ts
- landing/app/shared/ui/facts.tsx
- landing/app/shared/ui/index.ts
- landing/app/widgets/trust/audit-access.tsx
- landing/app/widgets/trust/hero.tsx
- landing/app/widgets/trust/how-we-operate.tsx
- landing/app/widgets/trust/what-you-can-say.tsx
other 11:05:21 59d7e5f5
revert(landing): take the header Log in button back out
2 files · +1 · -20
- Other
- landing/app/shared/copy/landing.ts
- landing/app/widgets/header/header.tsx
fix 10:58:48 5b3a4b1a
fix(landing): the hidden /investors hero stops carrying the CTA that was removed twice
2 files · +17 · -8
- Other
- landing/app/shared/copy/site.ts
- landing/app/widgets/investors/hero.tsx
fix 10:54:36 e7fef82f
fix(landing): the 404 page stops offering the way in it was told twice not to
1 files · +17 · -17
- Other
- landing/app/routes/$.tsx
2026-09-08 (Tue)
🟢 ch/product
docs 16:07:12 0b1d97c9
docs(infra): 리저브 08 연체 데이터 정규화와 회수 반영 설계
2 files · +43 · -7
- Other
- .scratch/external-reserve/drafts/08-delinquency-recovery-data.md
- .scratch/spec/external-reserve.spec.md
docs 16:05:37 e4a405d7
docs(infra): 리저브 07 연체 일수 모니터링 기준과 발송 설계
3 files · +40 · -14
- Other
- .scratch/external-reserve/README.md
- .scratch/external-reserve/drafts/07-delinquency-monitoring.md
- .scratch/spec/external-reserve.spec.md
fix 16:05:15 47a26d69
fix(web,admin): 회차 15 마지막 계획 회차의 충족률로 완료 판정
12 files · +118 · -47
- Admin
- plan-completion.test
- plan-heading
- repayment-schedule-card
- repayment-stage
- repayment-stage.test
- Investor Web
- Widget (repayment-cycles-card)
- Widget (repayment-progress)
- Widget (repayment-progress.test)
- Investor Web API
- repayment-cycles
- Other
- .scratch/post-maturity-yield-reserve/README.md
- .scratch/post-maturity-yield-reserve/drafts/15-investor-cycle-progress.md
- .scratch/spec/post-maturity-repayment.spec.md
fix 16:04:55 b92b3508
fix(admin): TARGET 07 잠금 시점과 편집 제한 설명 일치
6 files · +37 · -13
- Admin
- lock-note.test
- permissions
- permissions.test
- Other
- .scratch/spec/target-yield.spec.md
- .scratch/target-yield/README.md
- .scratch/target-yield/drafts/07-approved-lock-labels.md
docs 16:04:33 76a01833
docs(infra): TARGET 06 실제 구현체 기록 실패의 인수조건 보완
2 files · +7 · -3
- Other
- .scratch/spec/target-yield.spec.md
- .scratch/target-yield/drafts/06-record-created-implementation.md
docs 15:37:03 5e644094
docs(external-reserve): 리저브 08 연체 데이터 정규화와 회수 반영 명세 작성
1 files · +19
- Other
- .scratch/external-reserve/drafts/08-delinquency-recovery-data.md
docs 15:37:03 dd199f27
docs(external-reserve): 리저브 07 연체 일수 모니터링 기준과 발송 명세 작성
3 files · +56 · -4
- Other
- .scratch/external-reserve/README.md
- .scratch/external-reserve/drafts/07-delinquency-monitoring.md
- .scratch/spec/external-reserve.spec.md
fix 15:36:54 e6aa15ce
fix(web): 회차 18 투자자 앱의 기본 문서 언어 수정
2 files · +23 · -1
- Investor Web
- root
- Other
- .scratch/post-maturity-yield-reserve/drafts/18-english-document-language.md
fix 15:36:54 fc47aa77
fix(web): 회차 17 펀드 대출 잔액 라벨 구분
2 files · +23 · -1
- Investor Web
- Widget (fund-data-tab)
- Other
- .scratch/post-maturity-yield-reserve/drafts/17-loan-book-label.md
fix 15:36:46 82f49f3e
fix(infra): 회차 16 누적 진행률의 미신청 원금 표시
13 files · +144 · -4
- Admin
- cumulative-progress-bar
- overview-tab
- repayment-schedule-card
- unrequested-progress.test
- Admin API
- pools
- use-pools
- Infra
- index.ts
- pools.get.repayment-cycles.test.ts
- read-repayment-cycles.ts
- repayment-cycles.ts
- unrequested-principal.test.ts
- unrequested-principal.ts
- Other
- .scratch/post-maturity-yield-reserve/drafts/16-unrequested-principal.md
fix 15:36:33 25e8e037
fix(web): 회차 15 정산 중 회차와 계획 잔여 회차 표시
8 files · +125 · -14
- Investor Web
- Route (pool.$id)
- Widget (pool-header-card)
- Widget (repayment-cycles-card)
- Widget (repayment-progress)
- Widget (repayment-progress.test)
- Investor Web API
- use-repayment-cycles
- Investor Web UI
- PoolStatusAlert
- Other
- .scratch/post-maturity-yield-reserve/drafts/15-investor-cycle-progress.md
fix 15:36:14 038dcee9
fix(web): 회차 14 잔여원금·청구 가능액·손실 분리
4 files · +76
- Investor Web
- Widget (position-card)
- Widget (repayment-principal)
- Widget (repayment-principal.test)
- Other
- .scratch/post-maturity-yield-reserve/drafts/14-principal-and-loss.md
fix 15:36:06 5cf151e1
fix(infra): 회차 13 정산 시점에 투자자 청구 안내
7 files · +186 · -65
- Infra
- epoch.ts
- redemption.ts
- settlement-notification.test.ts
- Other
- .scratch/post-maturity-yield-reserve/README.md
- .scratch/post-maturity-yield-reserve/drafts/13-notify-at-settlement.md
- .scratch/spec/post-maturity-repayment.spec.md
fix 15:35:57 800f8dd5
fix(admin): TARGET 07 잠금 시점의 승인 문구 적용
9 files · +76 · -24
- Admin
- editorial
- field-lock
- lock-note.test
- step-basics
- step-compliance
- step-redemption
- step-terms
- step-yield-fees
- Other
- .scratch/target-yield/drafts/07-approved-lock-labels.md
fix 15:35:46 350077d5
fix(infra): TARGET 06 생성된 풀의 실제 구현체 기록
5 files · +66 · -27
- Infra
- create-pool.ts
- Other
- .scratch/spec/target-yield.spec.md
- .scratch/target-yield/README.md
- .scratch/target-yield/drafts/06-record-created-implementation.md
- scripts/check-accrual-mode.mjs
fix 15:13:13 1ba996e1
fix(landing): use approved safeguards text token
1 files · +1 · -1
- Other
- landing/app/widgets/landing/safeguards.tsx
docs 12:25:07 0ead5b35
docs(handoff): 리저브 티켓 완료와 기존 풀 범위 제외 기록
9 files · +113 · -48
- Other
- .scratch/external-reserve/README.md
- .scratch/external-reserve/drafts/02-decide-legacy-gating.md
- .scratch/external-reserve/drafts/03-enforce-legacy-gating.md
- .scratch/external-reserve/drafts/06-operator-exit-procedure.md
- .scratch/external-reserve/legacy-gating-decision.md
- .scratch/external-reserve/operator-exit-procedure.draft.md
- .scratch/external-reserve/retired-guarantees-audit.md
- .scratch/post-maturity-yield-reserve/README.md
- .scratch/spec/external-reserve.spec.md
docs 12:24:50 0779cd3a
docs(vitepress): 외부 리저브와 철회된 출구 보장 설명 수정
20 files · +145 · -115
- Docs
- 02-core-concepts.md
- 04-pool-models.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09a-custody.md
- 23-money-path.md
- 24-field-governance.md
- 26-glossary.md
fix 12:24:33 a63eefbe
fix(landing): 외부 리저브와 모순되는 수탁 설명 제거
3 files · +21 · -29
- Other
- landing/app/shared/copy/trust.ts
- landing/app/widgets/trust/tests/pillars.test.ts
- landing/app/widgets/trust/pillars.tsx
fix 12:24:15 919ddfd0
fix(admin): 현재 온체인 게이팅 표시와 감소 전용 입력 적용
5 files · +80 · -18
- Admin
- overview-tab
- pool-controls
- redemption-gating-status
- redemption-gating.test
- use-redemption-gating
fix 12:23:58 d350417e
fix(infra): 게이팅 온체인 검증과 신규 설정 경로 제거
13 files · +199 · -17
- Infra
- build-params-mode.test.ts
- build-params.ts
- create-pool-params.ts
- create-pool.ts
- deploy-payload-yield-promise.test.ts
- deploy-payload.ts
- eth-rpc.ts
- governance-rules.ts
- governance.ts
- index.ts
- messages.ts
- pools.post.governance.test.ts
fix 12:23:34 ffcc5d17
fix(contract): 게이팅 신규 설정과 증가 차단
5 files · +88 · -19
- Contract Test
- GatingLowering.t
- GoldenFixtures.t
- LegacyGatingTransitions.t
- PlatformPoolEpoch.t
- Smart Contract
- GovernanceLib
fix 12:23:15 d621421b
fix(money-domain): 기존 게이팅의 감소 전용 규칙 정의
3 files · +17
- Other
- packages/money-domain/src/tests/redemption-gating.test.ts
- packages/money-domain/src/index.ts
- packages/money-domain/src/policies/redemption-gating.ts
🔵 jy/product
refactor 17:42:25 955403d8
refactor(landing): take the stock photography off /trust and let the type carry it
7 files · +290 · -208
- Other
- landing/app/shared/copy/trust.ts
- landing/app/shared/ui/facts.tsx
- landing/app/shared/ui/index.ts
- landing/app/widgets/trust/audit-access.tsx
- landing/app/widgets/trust/hero.tsx
- landing/app/widgets/trust/how-we-operate.tsx
- landing/app/widgets/trust/what-you-can-say.tsx
fix 17:36:43 f5b9e069
fix(landing): correct the four claims that were wrong, and the doors that were missing
25 files · +309 · -116
- Other
- landing/app/routes.ts
- landing/app/routes/$.tsx
- landing/app/routes/about.tsx
- landing/app/routes/fund-managers-redirect.tsx
- landing/app/routes/fund-managers.tsx
- landing/app/routes/investors.tsx
- landing/app/routes/landing.tsx
- landing/app/routes/partners.tsx
- landing/app/routes/trust.tsx
- landing/app/shared/config/anchors.ts
- landing/app/shared/config/app-url.ts
- landing/app/shared/config/contact.ts
- landing/app/shared/copy/about.ts
- landing/app/shared/copy/fund-managers.ts
- landing/app/shared/copy/investors.ts
- landing/app/shared/copy/landing.ts
- landing/app/shared/copy/trust.ts
- landing/app/shared/ui/pill-button.tsx
- landing/app/widgets/footer/footer.tsx
- landing/app/widgets/header/header.tsx
- landing/app/widgets/landing/final-cta.tsx
- landing/app/widgets/landing/hero.tsx
- landing/app/widgets/landing/investor-access.tsx
- landing/app/widgets/landing/talk-to-us.tsx
- landing/app/widgets/trust/security.tsx
fix 15:15:01 fe35a3a5
fix(landing): restore the type-scale token the mk/product merge reverted
1 files · +1 · -1
- Other
- landing/app/widgets/landing/safeguards.tsx
refactor 10:12:53 1a04176f
refactor(ds,admin,landing): stop shipping three typefaces nobody renders, and load Quicksand once
9 files · +120 · -12
- Admin
- drop-unused-font-imports
- no-font
- root
- vite.config
- Other
- landing/global.css
- packages/ds-editorial/package.json
- packages/ds-editorial/src/fonts-sans.css
- packages/ds-editorial/src/fonts-serif.css
- packages/ds-editorial/src/fonts.css
2026-09-07 (Mon)
🟢 ch/product
docs 19:24:29 5c7b06ab
docs(handoff): 티켓 구현 결과와 정책 대기 상태 갱신
3 files · +9 · -3
- Other
- .scratch/external-reserve/README.md
- .scratch/post-maturity-yield-reserve/README.md
- .scratch/target-yield/README.md
docs 19:23:52 ae6735ea
docs(handoff): 리저브 06 정산 지연 운영 절차 초안 작성
2 files · +30 · -2
- Other
- .scratch/external-reserve/drafts/06-operator-exit-procedure.md
- .scratch/external-reserve/operator-exit-procedure.draft.md
docs 19:23:11 34ac1edc
docs(handoff): 리저브 03의 게이팅 정책 의존성 기록
1 files · +3 · -1
- Other
- .scratch/external-reserve/drafts/03-enforce-legacy-gating.md
test 19:23:01 8046cb1a
test(contract): 리저브 02 게이팅 전이의 실제 상환액 검증
3 files · +70 · -4
- Contract Test
- LegacyGatingTransitions.t
- Other
- .scratch/external-reserve/drafts/02-decide-legacy-gating.md
- .scratch/external-reserve/legacy-gating-decision.md
fix 19:21:54 f3d2564e
fix(web): 리저브 05 배너의 신청창 상태를 주기적으로 갱신
2 files · +15 · -6
- Investor Web
- Widget (timelock-countdown)
- Other
- .scratch/external-reserve/drafts/05-exit-guarantee-disclosure.md
test 19:21:46 803b9373
test(web): 회차 03 브라우저 동작 검증 기록
3 files · +4 · -2
- Investor Web
- Widget (repayment-cycles-card)
- Widget (repayment-cycles-list)
- Other
- .scratch/post-maturity-yield-reserve/drafts/03-investor-cycle-disclosure.md
fix 19:21:10 124c6e61
fix(web): 회차 04 투자 확인 단계의 상환 계획 공시 보완
4 files · +22 · -1
- Investor Web
- Widget (invest-confirm-dialog)
- Widget (invest-confirm-plan.test)
- repayment-plan
- Other
- .scratch/post-maturity-yield-reserve/drafts/04-repayment-plan-disclosure.md
fix 19:20:06 107cebdb
fix(web): TARGET 02 투자 확인 화면의 모드 공시 보완
3 files · +36 · -3
- Investor Web
- Widget (invest-confirm-dialog)
- Widget (invest-confirm-yield.test)
- Other
- .scratch/target-yield/drafts/02-investor-yield-mode.md
fix 19:12:34 1ef3e624
fix(admin,contract): 검증된 FIXED 수익 선납 경로 허용
6 files · +141 · -67
- Admin
- create-distribution-dialog
- yield-calc-breakdown
- Admin API
- yield-due-row
- yield-prepayment.test
- Contract Test
- ZeroSupplyPrepayment.t
- Other
- .scratch/target-yield/drafts/05-zero-supply-prepayment.md
fix 19:08:27 4bef3165
fix(web): 다음 상환 회차와 접힌 전체 일정 제공
6 files · +209 · -159
- Investor Web
- Widget (repayment-cycles-card)
- Widget (repayment-cycles-list)
- Widget (repayment-cycles-list.test)
- package
- Other
- .scratch/post-maturity-yield-reserve/drafts/03-investor-cycle-disclosure.md
- pnpm-lock.yaml
fix 19:05:08 ead703cf
fix(web): 청산 대기 출구 안내에 실제 신청 조건 반영
7 files · +57 · -13
- Investor Web
- Route (activity)
- Route (help)
- Widget (timelock-countdown)
- index
- timelock-exit
- timelock-exit.test
- Other
- .scratch/external-reserve/drafts/05-exit-guarantee-disclosure.md
fix 19:03:11 1f5322b8
fix(web): 만기와 계획 회차 상환 안내 구분
7 files · +55 · -15
- Investor Web
- PoolBrowseCard
- Widget (invest-sidebar)
- repayment-plan
- repayment-plan.test
- Investor Web API
- pools
- pools.test
- Other
- .scratch/post-maturity-yield-reserve/drafts/04-repayment-plan-disclosure.md
fix 18:57:08 9938bf9b
fix(web): 투자자 금리와 예상 수익에 계약 모드 반영
7 files · +83 · -15
- Investor Web
- Widget (invest-sidebar)
- Widget (pool-header-card)
- pool-yield
- pool-yield.test
- Investor Web API
- pools
- pools.test
- Other
- .scratch/target-yield/drafts/02-investor-yield-mode.md
fix 18:54:38 df489e75
fix(admin,contract): 외부 리저브 청산 안내를 오라클 NAV 기준으로 수정
5 files · +47 · -12
- Admin
- pool-controls
- status
- wind-down-copy.test
- Contract Test
- PlatformPool.t
- Other
- .scratch/external-reserve/drafts/04-wind-down-confirmation.md
fix 18:52:48 a33c533e
fix(admin): 수익 분배 미리보기와 서명 안내를 모드별로 구분
7 files · +63 · -57
- Admin
- create-distribution-dialog
- package
- yield-allocation-note
- yield-allocation-note.test
- yield-calc-breakdown
- Other
- .scratch/target-yield/drafts/04-distribution-mode-copy.md
- pnpm-lock.yaml
fix 18:49:41 e916e8ab
fix(admin,infra): 수익 큐의 FIXED 추정치와 불완전 채무 표시 수정
7 files · +71 · -51
- Admin
- due-now-card
- partner-owes-block
- partner-owes-block.test
- Infra
- due-row-math.test.ts
- due-row-math.ts
- due-rows.ts
- Other
- .scratch/target-yield/drafts/03-yield-due-mode-total.md
fix 18:45:31 d1cc69d2
fix(admin,infra): 신규 풀 게이팅 설정의 생성·편집 경로 제거
8 files · +87 · -24
- Admin
- gating-payload.test
- payload
- Infra
- create-rules.test.ts
- create-rules.ts
- pools.patch.update.test.ts
- update.ts
- Other
- .scratch/external-reserve/drafts/01-remove-new-gating-input.md
fix 18:41:50 67b8e687
fix(admin,infra): TARGET 연체 환산 실패와 원금 조회 부재 구분
9 files · +69 · -82
- Admin
- cumulative-progress-bar
- cumulative-progress-logic
- cumulative-progress.test
- maturity-due-progress.test
- repayment-plan
- Admin API
- pools
- Infra
- maturity-due.test.ts
- maturity-due.ts
- Other
- .scratch/target-yield/drafts/01-target-unpriced-overdue.md
fix 18:38:21 ef1952d5
fix(infra): 신청창 시작 전 미신청 알림 차단
4 files · +37 · -5
- Infra
- redemption-requests.scheduler.unrequested-holders.test.ts
- unrequested-holders-firing.test.ts
- unrequested-holders.ts
- Other
- .scratch/post-maturity-yield-reserve/drafts/02-reminder-window-start.md
docs 18:34:40 6c62e4a8
docs(handoff): 회차상환·TARGET·외부 리저브 명세와 티켓 추가
37 files · +1937
- Other
- .scratch/external-reserve/README.md
- .scratch/external-reserve/code-audit.md
- .scratch/external-reserve/drafts/01-remove-new-gating-input.md
- .scratch/external-reserve/drafts/02-decide-legacy-gating.md
- .scratch/external-reserve/drafts/03-enforce-legacy-gating.md
- .scratch/external-reserve/drafts/04-wind-down-confirmation.md
- .scratch/external-reserve/drafts/05-exit-guarantee-disclosure.md
- .scratch/external-reserve/drafts/06-operator-exit-procedure.md
- .scratch/external-reserve/manifest.json
- .scratch/post-maturity-yield-reserve/README.md
- .scratch/post-maturity-yield-reserve/baseline-test-results.txt
- .scratch/post-maturity-yield-reserve/code-audit.md
- .scratch/post-maturity-yield-reserve/drafts/01-target-unpriced-overdue.md
- .scratch/post-maturity-yield-reserve/drafts/02-reminder-window-start.md
- .scratch/post-maturity-yield-reserve/drafts/03-investor-cycle-disclosure.md
- .scratch/post-maturity-yield-reserve/drafts/04-repayment-plan-disclosure.md
- .scratch/post-maturity-yield-reserve/drafts/05-investor-yield-mode.md
- .scratch/post-maturity-yield-reserve/drafts/06-yield-due-mode-total.md
- .scratch/post-maturity-yield-reserve/drafts/07-distribution-mode-copy.md
- .scratch/post-maturity-yield-reserve/drafts/08-remove-new-gating-input.md
- .scratch/post-maturity-yield-reserve/drafts/09-decide-legacy-gating.md
- .scratch/post-maturity-yield-reserve/drafts/10-enforce-legacy-gating.md
- .scratch/post-maturity-yield-reserve/drafts/11-wind-down-confirmation.md
- .scratch/post-maturity-yield-reserve/drafts/12-zero-supply-prepayment.md
- .scratch/post-maturity-yield-reserve/manifest.json
- .scratch/post-maturity-yield-reserve/regressions.test.ts
- .scratch/spec/external-reserve.spec.md
- .scratch/spec/post-maturity-repayment.spec.md
- .scratch/spec/target-yield.spec.md
- .scratch/target-yield/README.md
- .scratch/target-yield/code-audit.md
- .scratch/target-yield/drafts/01-target-unpriced-overdue.md
- .scratch/target-yield/drafts/02-investor-yield-mode.md
- .scratch/target-yield/drafts/03-yield-due-mode-total.md
- .scratch/target-yield/drafts/04-distribution-mode-copy.md
- .scratch/target-yield/drafts/05-zero-supply-prepayment.md
- .scratch/target-yield/manifest.json
🔵 jy/product
fix 18:10:02 7ba15d39
fix(infra,build): the email font stack comes from the design system, and a guard keeps it there
6 files · +216 · -8
- Infra
- design-tokens.generated.ts
- notification-email.ts
- package.json
- templates.ts
- Other
- scripts/check-design-tokens.mjs
- scripts/sync-email-tokens.mjs
fix 11:03:48 b3a1bbba
fix(admin): a TARGET pool's principal is a denominator, not a withheld total
3 files · +76 · -27
- Admin
- cumulative-progress-logic
- cumulative-progress.test
- repayment-plan
2026-09-06 (Sun)
🟢 ch/product
fix 17:15:13 eb3dced0
fix(infra): a TARGET pool has no interest leg, but it does have a principal (W-T)
2 files · +45 · -6
- Infra
- maturity-due.test.ts
- maturity-due.ts
🔵 jy/product
No activity
2026-09-04 (Fri)
🟢 ch/product
No activity
🔵 jy/product
docs 18:39:21 e3588f9a
docs(redemption): record the permissionless exit fallback as withdrawn (v3-157)
4 files · +116 · -8
- Docs
- 14-decisions.md
- 17-changelog.md
feat 18:38:54 fcdd5ca9
feat(admin): name the yield mode, so a missing accrual row means one thing (A')
1 files · +47
- Admin
- configuration-tab
docs 09:15:44 97181db9
docs(rbac): unregister v3-156 — the role redesign is being re-planned
4 files · +4 · -96
- Docs
- 09-rbac.md
- 14-decisions.md
feat 18:11:31 760a6868
feat(admin): the cumulative bar measures principal, net of delinquency (A-1)
7 files · +288 · -275
- Admin
- cumulative-progress-bar
- cumulative-progress-logic
- cumulative-progress.test
- overview-tab
- repayment-plan
- repayment-schedule-card
- Admin API
- pools
fix 18:06:04 279a2622
fix(admin): a committed rate of zero is not the absence of one (A-2)
2 files · +25 · -5
- Admin
- configuration-tab
- Admin API
- pools
feat 15:55:26 28595c43
feat(admin): the cumulative bar measures the partner debt, both legs (F-6)
4 files · +484 · -87
- Admin
- cumulative-progress-bar
- cumulative-progress-logic
- cumulative-progress.test
- repayment-plan
fix 15:33:07 8e0a5114
fix(admin): the cumulative bar gates on its data, not on the stage (F-6)
1 files · +16 · -13
- Admin
- repayment-schedule-card
feat 14:37:57 175da4e4
feat(admin): cumulative repayment bar on the plan (F-6)
7 files · +420 · -7
- Admin
- cumulative-progress-bar
- cumulative-progress-logic
- cumulative-progress.test
- overview-tab
- repayment-schedule-card
- Admin API
- pools
- use-pools
2026-09-03 (Thu)
🟢 ch/product
feat 11:52:01 71a70590
feat(infra): what the pool owes when its term ends, and a cancel path no button reaches (W-T, 3-5)
10 files · +451 · -5
- Infra
- epoch-redemption.ts
- index.ts
- maturity-due.test.ts
- maturity-due.ts
- pools.get.repayment-cycles.test.ts
- pools.get.repayment-cycles.ts
- read-repayment-cycles.ts
- repayment-cycles.ts
- Smart Contract
- RedemptionLib
test 11:52:01 8bb2fbd1
test(contract): a campaign that starts empty has to get lucky, and one run in three did not
1 files · +34 · -1
- Contract Test
- PlatformPoolYieldInvariant.t
fix 11:52:01 77939ef8
fix(contract): capital returned is not cash paid, and the escrow period is billed once (CR-9)
4 files · +123 · -77
- Contract Test
- FixedAccrualBasis.t
- Smart Contract
- FixedYieldEngine
- PoolLedgerLib
- RedemptionLib
perf 11:52:01 73a1fbee
perf(contract): eighteen doors were eighteen delegatecalls, and the room was in the calling
11 files · +445 · -795
- Contract Test
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolGovernanceDoor.t
- Infra
- governance.ts
- Other
- packages/money-contract/src/generated/platform-pool-base.ts
- packages/money-contract/src/generated/platform-pool-target.ts
- packages/money-contract/src/generated/platform-pool.ts
- Smart Contract
- GovernanceLib
- PlatformPoolBase
- PlatformPoolTypes
- foundry.toml
fix 11:52:01 535aa5e7
fix(infra): a cost basis that outlived its LP, and a NAV record the chain never took (W-W)
8 files · +411 · -6
- Infra
- apply-pending-nav.ts
- fold.test.ts
- fold.ts
- index.ts
- nav-changes.scheduler.apply-pending.test.ts
- nav-changes.scheduler.apply-pending.ts
- nav-changes.ts
- pool.ts
🔵 jy/product
No activity
2026-09-02 (Wed)
🟢 ch/product
No activity
🔵 jy/product
docs 04:55:27 5c559fe7
docs(rbac): v3-156 had the split backwards — ADMIN retires, not FUND_MANAGER
4 files · +19 · -17
- Docs
- 09-rbac.md
- 14-decisions.md
feat 12:09:43 947969da
feat(admin): a pool can be performance-based, and the mode is the rate it commits to
9 files · +154 · -58
- Admin
- Route (pools)
- configuration-tab
- payload
- permissions
- pool-metrics-line
- step-structure
- step-terms
- validation
- Admin API
- pools
docs 02:40:15 f361d976
docs(rbac): register v3-156 and mark the sections it inverts
4 files · +96 · -6
- Docs
- 09-rbac.md
- 14-decisions.md
fix 11:30:38 073b5c77
fix(admin): the reserve wallet gets the control its copy already promised, and the surplus moves to where it can be seen
4 files · +55 · -26
- Admin
- cycle-axis-rows
- cycle-progress-bar
- pool-controls
- Admin API
- pools
2026-09-01 (Tue)
🟢 ch/product
docs 17:46:40 9d1cc3da
docs(contract): the round is on Base Sepolia, and this is what is actually there
2 files · +252 · -248
- Contract Deploy
- run
- Smart Contract
- sepolia.md
feat 17:46:40 4030cdd6
feat(infra): the mode a pool is deployed with, the rate it may not have, and a wallet governance could not reach (W-Q, W-R, W-S)
27 files · +705 · -34
- Docs
- 11-db-schema.md
- Infra
- DB 0216_apy_rate_is_a_rate_a_pool_may_not_have.sql
- DB 0217_governance_can_change_the_reserve_wallet.sql
- DB 0218_a_target_pool_commits_no_rate.sql
- DB schema.sql
- build-params-mode.test.ts
- build-params.ts
- create-pool-params.ts
- create-pool.ts
- create-rules.ts
- deploy-payload.ts
- governance-rules.ts
- governance.ts
- index.ts
- messages.ts
- package.json
- pools.post.create.test.ts
- pools.post.create.ts
- pools.post.governance.test.ts
- pools.post.governance.ts
- pools.worker.deploy.ts
- publish.ts
- yield-mode.test.ts
- yield-mode.ts
- Other
- scripts/check-accrual-mode.mjs
docs 17:46:40 92441325
docs(ko): the Korean locale was wired up but empty, so it said nothing at all
27 files · +16845 · -508
- Docs
- 01-overview.md
- 02-core-concepts.md
- 03-kyc-identity.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09-rbac.md
- 09a-custody.md
- 10-status-machines.md
- 11-db-schema.md
- 12-triggers.md
- 13-operations.md
- 14-decisions.md
- 15-api-reference.md
- 16-timeline.md
- 17-changelog.md
- 18-failure-types.md
- 20-joob-pool-config.md
- 21-holder-verification.md
- 22-notifications.md
- 23-money-path.md
- 24-field-governance.md
- 25-design-system.md
- 26-glossary.md
refactor 17:46:40 8549b59a
refactor(contract): the interest basis is the capital the pool took in, as decided, and what that costs (R-T2)
15 files · +216 · -222
- Contract Test
- FixedAccrualBasis.t
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFlows.t
- SequenceDiagramVerification.t
- Other
- packages/money-contract/src/tests/pool-surfaces.test.ts
- packages/money-contract/src/generated/platform-pool-base.ts
- packages/money-contract/src/generated/platform-pool-target.ts
- packages/money-contract/src/generated/platform-pool.ts
- Smart Contract
- FixedYieldEngine
- PlatformPool
- PlatformPoolBase
- PlatformPoolStorage
- YieldLib
- foundry.toml
fix 17:46:40 e892dbd2
fix(contract): interest is owed on what the LP was sold for, and impairment does not move it (R-T2)
19 files · +405 · -169
- Contract Test
- EscrowAccrualRecognition.t
- FixedAccrualBasis.t
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFlows.t
- SequenceDiagramVerification.t
- YieldAccrualPolicy.t
- Other
- packages/money-contract/src/tests/pool-surfaces.test.ts
- packages/money-contract/src/generated/platform-pool-base.ts
- packages/money-contract/src/generated/platform-pool-target.ts
- packages/money-contract/src/generated/platform-pool.ts
- Smart Contract
- FixedYieldEngine
- LifecyclePolicy
- PlatformKYCSoulbound
- PlatformPool
- PlatformPoolBase
- PlatformPoolStorage
- RedemptionLib
- YieldAccrualPolicy
fix 11:21:40 641707d7
fix(infra): being late is not being lost, and only one of them may price a pool (R-B4)
9 files · +174 · -22
- Infra
- compute.test.ts
- history.ts
- index.ts
- observe.test.ts
- observe.ts
- read.test.ts
- summary.ts
- types.ts
fix 00:53:44 566ce775
fix(web): a pool may not have a rate, and the reader has to know before the column does (F-8)
12 files · +123 · -21
- Investor Web
- PoolBrowseCard
- PoolCard
- PoolRow
- Route (dashboard)
- Route (pools)
- Widget (PCWidgets)
- Widget (invest-sidebar)
- Widget (pool-header-card)
- apy-rate.test
- formatters
- portfolio-stats
- Investor Web API
- pools
docs 00:12:26 2eb3db14
docs(infra): why the over-funding detector stays after C-2 makes it unreachable
1 files · +8
- Infra
- epoch.ts
refactor 00:12:26 1ec8741c
refactor(admin): the yield mode has one name, and it is the contract's (R-T6-bis)
4 files · +16 · -8
- Admin
- Route (pool-create)
- step-terms
- types
- validation
feat 00:12:08 33e09c7d
feat(money-contract): three pool surfaces, with the boundary drawn by the compiler (R-T7)
6 files · +9095 · -3
- Other
- packages/money-contract/scripts/generate.mjs
- packages/money-contract/src/tests/pool-surfaces.test.ts
- packages/money-contract/src/generated/index.ts
- packages/money-contract/src/generated/platform-pool-base.ts
- packages/money-contract/src/generated/platform-pool-factory.ts
- packages/money-contract/src/generated/platform-pool-target.ts
feat 00:11:42 5893a002
feat(contract)!: a pool can accrue on what its assets produced, and it is a different contract
29 files · +2007 · -95
- Contract Deploy
- DeployFactory.s
- DeployV3Sepolia.s
- Contract Test
- EpochFundingWindow.t
- FixedAccrualBasis.t
- GoldenFixtures.t
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFactory.t
- PlatformPoolFlows.t
- PlatformPoolInvariant.t
- PlatformPoolNonCustodial.t
- PlatformPoolPenaltyInvariant.t
- PlatformPoolTarget.t
- PlatformPoolYieldInvariant.t
- PolicyConformance.t
- SequenceDiagramVerification.t
- TargetYieldEngine.t
- Smart Contract
- FixedYieldEngine
- NavLib
- PlatformPool
- PlatformPoolBase
- PlatformPoolFactory
- PlatformPoolStorage
- PlatformPoolTarget
- PlatformPoolTypes
- PoolLedgerLib
- RedemptionLib
- TargetYieldEngine
- YieldLib
🔵 jy/product
docs 18:30:11 d96002a3
docs(admin): two comments of mine now say the opposite of what is true
2 files · +12 · -7
- Admin
- overview-tab
- Admin API
- pools
fix 18:27:11 a83610e4
fix(admin): the review screen kept a sentence FD-6 had just retired, and it was half wrong to begin with
1 files · +6 · -1
- Admin
- step-compliance
fix 18:23:33 006ff156
fix(admin): a claim we can back again, a countdown that can be late, and a bar with one layer in it
3 files · +82 · -69
- Admin
- cycle-progress-bar
- overview-tab
- step-basics
fix 17:33:18 2fd0a63e
fix(web): a settlement date that has passed stops calling itself the next one
4 files · +34 · -7
- Investor Web
- Widget (epoch-countdown)
- Widget (timelock-countdown)
- Widget (withdraw-dialog)
- status
fix 17:22:17 36b82df3
fix(web): the investor app said the reserve was in two places at once
5 files · +71 · -13
- Investor Web
- Widget (PCWidgets)
- Widget (overview-tab)
- Widget (risk-disclosure)
- portfolio
- Investor Web API
- pools
feat 16:31:33 dfbf5d50
feat(admin): the cycle being settled, as two layers, and the gap between them says what is stuck
4 files · +239
- Admin
- cycle-progress-bar
- cycle-progress-bar.test
- cycle-progress-logic
- repayment-schedule-card
refactor 16:16:06 2d9a16ad
refactor(web,admin): one maturity, answered by the backend, read by both apps
5 files · +53 · -32
- Admin
- pool-controls
- Admin API
- pools
- Investor Web
- Widget (invest-sidebar)
- Widget (pool-header-card)
- Investor Web API
- pools
fix 16:09:43 1a0e550a
fix(admin): the reserve card said the pool holds money it routes away
1 files · +29 · -6
- Admin
- overview-tab
fix 16:08:45 4f9a8bf7
fix(admin): the reopen ceiling was measured from the wrong end of the offering
1 files · +12 · -2
- Admin
- pool-controls
fix 16:02:14 73542c9c
fix(admin): the gating a live pool is still being held to, back on the screen
1 files · +15
- Admin
- overview-tab
refactor 15:40:35 310a07bb
refactor(web,admin): two MVP-scope controls come off the screens, and the columns stay
15 files · +82 · -275
- Admin
- Route (pool-edit)
- epoch-schedule-block
- step-redemption
- step-yield-fees
- validation
- yield-settings-tab
- Investor Web
- Route (pool.$id)
- Route (portfolio)
- Route (styleguide.portfolio)
- Widget (PCWidgets)
- Widget (overview-tab)
- Widget (position-card)
- status
fix 14:58:03 d6e0ed2e
fix(web,admin): take down the exit the contract no longer offers, and five lines about a reserve that left
7 files · +75 · -153
- Admin
- step-terms
- Investor Web
- Route (activity)
- Widget (position-card)
- portfolio
- Investor Web API
- redemption-requests
- use-redemption-requests
feat 14:57:42 9cd059b8
feat(admin): a pool says where its reserve goes, and can be asked again later
8 files · +107 · -3
- Admin
- Route (pool-create)
- overview-tab
- payload
- step-basics
- step-compliance
- types
- validation
- Admin API
- pools
2026-08-31 (Mon)
🟢 ch/product
chore 20:41:59 27098720
chore(infra): delete the pending-reserve backfill, which has nothing left to repair
1 files · -167
- Infra
- backfill-pending-reserve.ts
feat 20:36:37 6a460488
feat(infra): the yield queue carries the debt the liability figure cannot see (W-O)
5 files · +162 · -4
- Infra
- due-row-math.test.ts
- due-row-math.ts
- due-rows.ts
- read.ts
- Other
- packages/types/src/index.ts
fix 19:49:45 8e78bc55
fix(infra): a deploy that cannot say what it built now says so (W-M)
8 files · +261 · -21
- Docs
- 11-db-schema.md
- Infra
- DB schema.sql
- create-pool.ts
- deploy-pool.ts
- pool-generation.test.ts
- pool-generation.ts
- pool.ts
- Other
- packages/types/src/index.ts
feat 18:30:02 675bcfdd
feat(contract,infra)!: the reserve wallet can pay an exit, with a role of its own
15 files · +278 · -12
- Contract Test
- PlatformPool.t
- Docs
- 08-smart-contracts.md
- 09-rbac.md
- 09a-custody.md
- Infra
- client.ts
- config-mirrors.ts
- create-pool-config-calls.test.ts
- create-pool.ts
- event-coverage.test.ts
- events.ts
- Other
- packages/money-contract/src/generated/platform-pool.ts
- packages/money-contract/src/roles.ts
- Smart Contract
- GovernanceLib
- PlatformPoolBase
other 18:29:34 90229580
revert(web,admin): the screens go back, because changing them was not mine to do
15 files · +119 · -130
- Admin
- Route (pool-create)
- payload
- step-basics
- step-terms
- types
- validation
- Investor Web
- Route (activity)
- Widget (position-card)
- contract-errors
- index
- portfolio
- Investor Web API
- pools
- redemption-requests
- use-redemption-requests
feat 17:39:56 eaef4288
feat(admin,web): a pool asks where its reserve goes, and stops saying the pool holds it
10 files · +67 · -10
- Admin
- Route (pool-create)
- payload
- step-basics
- step-terms
- types
- validation
- Investor Web
- Widget (position-card)
- portfolio
- Investor Web API
- pools
test 17:33:21 36176f21
test(contract): pin the reserve-wallet timelock, including the case it exists for
1 files · +76
- Contract Test
- PlatformPool.t
feat 17:27:52 00943f68
feat(contract): the reserve wallet moves on a timelock, like the fund wallet
6 files · +182 · -1
- Contract Test
- PlatformPoolEpoch.t
- Other
- packages/money-contract/src/generated/platform-pool.ts
- Smart Contract
- GovernanceLib
- PlatformPoolBase
- PlatformPoolStorage
- PlatformPoolTypes
feat 17:13:04 feab572e
feat(infra): a pool declares where its reserve goes, or it is not created
18 files · +155 · -27
- Infra
- DB 0215_pools_reserve_wallet.sql
- DB schema.sql
- create-pool-params.ts
- create-pool.ts
- create-rules.test.ts
- create-rules.ts
- create.ts
- deploy-payload-yield-promise.test.ts
- deploy-payload.ts
- pool-field-validation.test.ts
- pool-field-validation.ts
- pools.post.create.test.ts
- pools.post.create.ts
- pools.post.lifecycle.test.ts
- pools.post.lifecycle.ts
- pools.ts
- pools.worker.deploy.ts
- publish.ts
fix 16:55:16 bfcc3c47
fix(web,docs): take down the exit the contract no longer offers
14 files · +93 · -129
- Docs
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09-rbac.md
- 09a-custody.md
- 15-api-reference.md
- Infra
- freeze-state.ts
- redemption.ts
- Investor Web
- Route (activity)
- contract-errors
- index
- Investor Web API
- redemption-requests
- use-redemption-requests
refactor 16:42:37 fd84769b
refactor(infra): stop watching a reserve the pool does not hold
11 files · +41 · -65
- Admin API
- redemption-requests
- Infra
- alerts.ts
- engine.ts
- index.ts
- instant-summary.test.ts
- instant-summary.ts
- pool.ts
- reconcile-mirrors.test.ts
- reconcile.ts
- redemption-requests.get.instant-summary.ts
- redemption-sweeps.ts
feat 16:34:43 fc1303aa
feat(infra)!: the backend follows the reserve out of the pool
24 files · +132 · -836
- Infra
- CDK Stack (route-configs)
- DB 0214_money_event_kind_released_to_reserve.sql
- DB schema.sql
- announce-epoch-demand.ts
- approve-redemption.ts
- catalog-integrity.test.ts
- claim-fallback.ts
- decode.ts
- epoch-redemption.ts
- events.ts
- fallback-redemption.ts
- fold.ts
- index.ts
- pool-mutation-registry.ts
- redemption-reader.ts
- redemption-requests.post.claim-fallback.test.ts
- redemption-requests.post.claim-fallback.ts
- redemption-requests.scheduler.epoch-cutoff.test.ts
- redemption-requests.scheduler.epoch-cutoff.ts
- redemption-requests.scheduler.partner-funding.test.ts
- redemption.ts
- Lambda API
- redemption-requests.post.claim-fallback
- Other
- packages/money-domain/src/events.ts
feat 16:07:21 55b82aa9
feat(contract)!: the reserve leaves the pool, and every instant exit waits for funding
29 files · +916 · -623
- Contract Deploy
- CreatePool.s
- DeployV3Sepolia.s
- Contract Test
- EscrowYieldRule.t
- GoldenFixtures.t
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFactory.t
- PlatformPoolFlows.t
- PlatformPoolInvariant.t
- PlatformPoolNonCustodial.t
- PlatformPoolPenaltyInvariant.t
- PlatformPoolYieldInvariant.t
- PolicyConformance.t
- SequenceDiagramVerification.t
- Other
- packages/money-contract/src/generated/platform-pool-factory.ts
- packages/money-contract/src/generated/platform-pool.ts
- packages/money-domain/fixtures/deposit.json
- packages/money-domain/fixtures/epoch.json
- packages/money-domain/fixtures/redemption-instant.json
- Smart Contract
- NavLib
- PlatformPool
- PlatformPoolBase
- PlatformPoolFactory
- PlatformPoolStorage
- PlatformPoolTypes
- PoolConfigLib
- PoolLedgerLib
- RedemptionLib
- YieldLib
refactor 14:59:44 360108cb
refactor(contract): wind-down moves the lifecycle and stops repricing the exit (D3-v)
11 files · +126 · -393
- Contract Test
- GoldenFixtures.t
- PlatformPoolEpoch.t
- PlatformPoolNonCustodial.t
- Infra
- fold.test.ts
- fold.ts
- governance.ts
- Other
- packages/money-core/src/tests/pricing.test.ts
- packages/money-core/src/pricing.ts
- packages/money-domain/fixtures/wind-down.json
- packages/money-domain/src/tests/money-core-conformance.test.ts
- Smart Contract
- PlatformPoolBase
refactor 14:36:16 7736ce53
refactor(types): the lock-up has one anchor, and "not deployed" is now its own question
7 files · +226 · -174
- Admin
- permissions.test
- pool-implementation.test
- Infra
- lockup-anchor.test.ts
- pools.post.close.test.ts
- Investor Web
- portfolio-liquidity.test
- redemption-state.test
- Other
- packages/types/src/index.ts
🔵 jy/product
docs 10:28:19 38054cc5
docs(vitepress): point the 2026-08-27 markers at the cards they were written for
14 files · +38 · -38
- Docs
- 02-core-concepts.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09-rbac.md
- 10-status-machines.md
- 11-db-schema.md
- 15-api-reference.md
- 17-changelog.md
- 23-money-path.md
- 26-glossary.md
2026-08-30 (Sun)
🟢 ch/product
No activity
🔵 jy/product
docs 23:04:50 20d458e3
docs(vitepress): cards for the 2026-08-27 decisions, and the reinvest rule two pages disagreed about
3 files · +173 · -8
- Docs
- 02-core-concepts.md
- 14-decisions.md
- 17-changelog.md
2026-08-29 (Sat)
🟢 ch/product
No activity
🔵 jy/product
docs 18:00:47 2ffa5d7d
docs(vitepress): the 2026-08-27 decisions as pending, and five places the docs were wrong
16 files · +72 · -32
- Docs
- 02-core-concepts.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09-rbac.md
- 09a-custody.md
- 10-status-machines.md
- 11-db-schema.md
- 15-api-reference.md
- 23-money-path.md
- 24-field-governance.md
- 26-glossary.md
- Infra
- DB schema.sql
2026-08-28 (Fri)
🟢 ch/product
docs 14:19:09 c4a922c1
docs(readme): the three in-flight architecture tracks, structure only
1 files · +55 · -2
- Other
- README.md
refactor 12:53:59 865887a3
refactor: dead code, and names that claimed a unit or a shape the code had stopped using
26 files · +213 · -197
- Admin
- Route (deposits)
- Route (pool-detail)
- investor-panel
- investor-sidebar
- pool-controls
- redemption-detail-panel
- Admin API
- pools
- Contract Deploy
- CreatePool.s
- DeployV3Sepolia.s
- Docs
- 09-rbac.md
- 11-db-schema.md
- 17-changelog.md
- 23-money-path.md
- Infra
- DB 0213_reserve_change_type_says_bps.sql
- DB schema.sql
- client.ts
- config-mirrors.ts
- governance-rules.test.ts
- governance-rules.ts
- governance.ts
- index.ts
- messages.ts
- pools.post.governance.test.ts
- pools.post.governance.ts
- Smart Contract
- .env.example
🔵 jy/product
No activity
2026-08-27 (Thu)
🟢 ch/product
refactor 16:45:04 983957c4
refactor(infra): three auth modules were half live and half oracle-support
8 files · +73 · -41
- Infra
- admin-oauth.ts
- admin-tokens.ts
- dashboard.ts
- fund-pools.ts
- fund-scoping.ts
- granted-pages.ts
- page-permissions.ts
- tokens.ts
fix 16:44:37 c338b6ce
fix(infra): the pools list asked PostgREST to negate is against a value, and got a 500
4 files · +31 · -3
- Infra
- list.ts
- pools.ts
- query-parts.ts
- supabase-projection.ts
refactor 15:56:27 de0c3162
refactor(infra): the layer guard passes, and most of what it caught was misfiling
342 files · +5140 · -4679
- Infra
- CDK Stack (api-stack)
- CDK Stack (route-group-stack)
- CDK Stack (ses-send-policy)
- CDK Stack (ses-stack)
- activity-events.get.counts.test.ts
- activity-events.get.export.test.ts
- activity-events.get.list.test.ts
- activity-events.ts
- activity.ts
- admin-me.patch.update.test.ts
- admin-mfa.ts
- admin-notification-preferences.get.list.test.ts
- admin-notification-preferences.put.update.test.ts
- admin-notifications.get.list.test.ts
- admin-notifications.patch.read-all.test.ts
- admin-notifications.patch.read.test.ts
- admin-sessions.ts
- admin-signer-balances.get.list.test.ts
- admin-tokens.ts
- admin-user-wallets.get.list.test.ts
- admin-users.delete.test.ts
- admin-users.get.list.test.ts
- admin-users.patch.permissions.test.ts
- admin-users.patch.update.test.ts
- admin-users.post.create.test.ts
- admin-users.post.invite.test.ts
- admin-users.post.invite.ts
- admin-wallet.post.nonce.test.ts
- admin-wallet.post.verify.test.ts
- alerts.ts
- applicant-info.ts
- applicant-mirror.test.ts
- applicant-mirror.ts
- applicant-submitted.test.ts
- apply-review.ts
- approve-redemption.ts
- audience.ts
- auth.post.admin-2fa-verify.test.ts
- auth.post.admin-2fa-verify.ts
- auth.post.admin-login.test.ts
- auth.post.admin-login.ts
- auth.post.admin-logout-all.ts
- auth.post.admin-oauth.test.ts
- auth.post.admin-oauth.ts
- auth.post.logout.ts
- auth.post.refresh.test.ts
- auth.post.verify.test.ts
- auth.post.verify.ts
- authoring.ts
- backfill-invested-at.ts
- backfill-pending-reserve.ts
- build-params.ts
- catalog-integrity.test.ts
- categories.ts
- client.ts
- close.ts
- config.get.chains.test.ts
- config.get.stablecoins.test.ts
- config.ts
- context.ts
- cookies.ts
- create-pool-params.ts
- create-pool.ts
- create-rules.ts
- create-system-update.ts
- create.ts
- dashboard.get.stats.test.ts
- decide-schedule-change.ts
- deliver.ts
- deliveries.ts
- deploy-pool.ts
- deposits.get.counts.test.ts
- deposits.get.list.test.ts
- deposits.post.create.test.ts
- derive-signer-addresses.ts
- detail.ts
- dispatch.ts
- drain-sbt-queue.ts
- due-rows.ts
- email-suppressions.delete.test.ts
- email-suppressions.get.list.test.ts
- email-suppressions.post.create.test.ts
- email.ts
- engine.ts
- epoch-funding-plan.ts
- epoch-redemption.ts
- epoch-schedule-view.ts
- epoch-schedule.ts
- epoch-shortfall.ts
- epoch-summary.ts
- event-types.ts
- event-units.ts
- events.ts
- fund-invites.delete.test.ts
- fund-invites.get.list.test.ts
- fund-invites.post.accept.test.ts
- fund-invites.post.create.test.ts
- fund-invites.post.create.ts
- fund-members.delete.test.ts
- fund-members.get.list.test.ts
- fund-members.patch.update.test.ts
- fund-members.post.create.test.ts
- fund-signers.ts
- funding-date-results.ts
- funds.delete.test.ts
- funds.get.list.test.ts
- funds.patch.update.test.ts
- funds.post.create.test.ts
- harness-drives-legacy.test.ts
- in-app.ts
- inapp-copy.test.ts
- index.ts
- instant-settlement.ts
- investor-activity.get.list.test.ts
- invite-admin.ts
- jwt-token-use.test.ts
- jwt.ts
- kyc-logs.get.list.test.ts
- kyc-sbt.ts
- kyc-upgrade.ts
- kyc-verification.ts
- kyc.get.status.test.ts
- kyc.post.access-token.ts
- kyc.post.mint-sbt.test.ts
- kyc.post.reuse.ts
- kyc.post.sync.test.ts
- kyc.post.webhook.ts
- kyc.scheduler.reconcile-sweep.ts
- list-handler.ts
- mailer.ts
- manage-funds.ts
- manage-invites.ts
- manage-updates.ts
- message.ts
- messages.ts
- middleware.ts
- migrate-signer-roles.ts
- mint-preview-token.ts
- mint-queue.ts
- nav-changes.get.list.test.ts
- nav-changes.post.activate.test.ts
- nav-changes.post.approve.test.ts
- nav-changes.post.cancel.test.ts
- nav-changes.post.dismiss.test.ts
- nav-changes.post.override.test.ts
- nav-changes.post.propose.test.ts
- nav-pricing.ts
- nav-proposals.get.list.test.ts
- notification-email.ts
- notification-logs.get.list.test.ts
- notification-logs.post.escalate.test.ts
- notification-logs.post.resend.test.ts
- notification-logs.post.resend.ts
- notification-preferences.get.list.test.ts
- notification-preferences.put.update.test.ts
- notifications.get.list.test.ts
- notifications.patch.read-all.test.ts
- notifications.patch.read.test.ts
- notifications.scheduler.sweep.ts
- notifications.worker.deliver.ts
- observe.test.ts
- observe.ts
- pipeline.ts
- platform-settings.get.test.ts
- platform-settings.put.update.test.ts
- pool-categories.delete.test.ts
- pool-categories.post.create.test.ts
- pool-documents.get.list.test.ts
- pool-field-validation.test.ts
- pool-field-validation.ts
- pool-follows.delete.test.ts
- pool-follows.get.list.test.ts
- pool-follows.post.create.test.ts
- pool-tvl-history.get.list.test.ts
- pool-updates.delete.test.ts
- pool-updates.get.list.test.ts
- pool-updates.patch.update.test.ts
- pool-updates.post.create.test.ts
- pools.delete.test.ts
- pools.get.eligibility.test.ts
- pools.get.list.test.ts
- pools.get.list.ts
- pools.get.repayment-cycles.test.ts
- pools.get.repayment-cycles.ts
- pools.patch.update.test.ts
- pools.patch.update.ts
- pools.post.close.test.ts
- pools.post.close.ts
- pools.post.create.test.ts
- pools.post.create.ts
- pools.post.epoch-funding.test.ts
- pools.post.epoch-schedule.test.ts
- pools.post.escalate-yield.test.ts
- pools.post.freeze.test.ts
- pools.post.governance.test.ts
- pools.post.impairment.test.ts
- pools.post.lifecycle.test.ts
- pools.post.lifecycle.ts
- pools.post.notify-fund.test.ts
- pools.post.pause.test.ts
- pools.post.preview-token.test.ts
- pools.post.preview-token.ts
- pools.post.schedule-change-request.test.ts
- pools.post.wind-down.test.ts
- pools.ts
- portfolio-positions.get.list.test.ts
- preview-fees.ts
- principal.ts
- principals.ts
- provider-review.ts
- provider.ts
- publish.ts
- queue.ts
- read-repayment-cycles.ts
- read-status.ts
- read.test.ts
- receive-webhook.ts
- recompute-yield-due.ts
- reconcile.ts
- record-deposit.ts
- record-distribution.ts
- record-reinvest.ts
- redemption-requests.get.counts.test.ts
- redemption-requests.get.epoch-summary.test.ts
- redemption-requests.get.exit-gate.test.ts
- redemption-requests.get.instant-summary.test.ts
- redemption-requests.get.list.test.ts
- redemption-requests.post.approve.test.ts
- redemption-requests.post.cancel.test.ts
- redemption-requests.post.claim-fallback.test.ts
- redemption-requests.post.claim.test.ts
- redemption-requests.post.create.test.ts
- redemption-requests.post.escalate.test.ts
- redemption-requests.post.notify-fund.test.ts
- redemption-requests.post.record-funding.test.ts
- redemption-requests.post.reject.test.ts
- refresh-audience.test.ts
- refresh-cookies.ts
- register-email.ts
- reopen-offering-close.test.ts
- reopen-offering-close.ts
- replay.ts
- report.scheduler.fetch.ts
- response.ts
- route.ts
- run-detail.ts
- schedule-change-requests.post.decide.test.ts
- service-providers.ts
- settle-epochs.ts
- siwe-verify.ts
- siwe.ts
- sources.ts
- statuses.ts
- supabase-projection.ts
- sync-review.ts
- templates.ts
- tokens.ts
- totp.ts
- tranche.post.writedown.test.ts
- tsconfig.json
- unread-bells.ts
- update.ts
- users.get.counts.test.ts
- users.get.investor-detail.test.ts
- users.get.list.test.ts
- users.get.me.test.ts
- users.patch.qualification.test.ts
- users.post.email.test.ts
- users.post.email.ts
- uuid.ts
- verify-signer-roles.ts
- verify-wallet.ts
- wallets.get.list.test.ts
- window-subscriptions.delete.test.ts
- window-subscriptions.get.list.test.ts
- window-subscriptions.post.create.test.ts
- wire.ts
- yield-claims.get.list.test.ts
- yield-claims.post.create.test.ts
- yield-distributions.get.counts.test.ts
- yield-distributions.get.fund-summary.test.ts
- yield-distributions.get.investors.test.ts
- yield-distributions.get.list.test.ts
- yield-distributions.get.me.test.ts
- yield-distributions.get.preview.test.ts
- yield-distributions.get.preview.ts
- yield-distributions.post.create.test.ts
- yield-distributions.post.create.ts
- yield-distributions.post.distribute.test.ts
- yield-interval.test.ts
- yield-interval.ts
- yield-period.test.ts
- yield-period.ts
- yield-schedule.ts
- yield.post.reinvest.test.ts
- Lambda API
- notifications.worker.deliver
- Other
- scripts/check-copy.mjs
- scripts/check-layer-boundaries.mjs
- scripts/check-onchain-units.mjs
refactor 14:56:11 7c67a6c9
refactor(infra): the first 53, and two of them did not want a port
88 files · +392 · -264
- Infra
- activate-change.ts
- admin-roles.ts
- admin-users.get.list.ts
- admin-users.patch.update.ts
- admin-users.post.create.ts
- admin-users.post.invite.ts
- admin-users.ts
- advance-pool-lifecycle.ts
- announce-epoch-demand.ts
- announce-epoch-window.ts
- apply-pending-nav.ts
- approve-redemption.ts
- audience.ts
- auth.post.logout.ts
- auth.post.refresh.ts
- authority.ts
- build-params.ts
- config-mirrors.ts
- config.ts
- context.ts
- create-pool.ts
- create-rules.test.ts
- create-rules.ts
- create.ts
- deposit.ts
- distribute.ts
- due-rows.ts
- engine.ts
- epoch-funding.ts
- epoch-redemption.ts
- epoch-settlement.ts
- epoch-summary.ts
- events.ts
- fallback-redemption.ts
- fees.ts
- governance.ts
- impairment.ts
- index.ts
- kyc.post.mint-sbt.ts
- kyc.post.sync.ts
- lifecycle.ts
- manage-accounts.ts
- manage-members.ts
- middleware.ts
- mint-sbt.ts
- mirror.ts
- nav.ts
- notify-fund.ts
- pools.get.list.ts
- pools.post.notify-fund.ts
- pools.ts
- portfolio-positions.get.list.ts
- portfolio-positions.ts
- principal.ts
- propose-change.ts
- read-repayment-cycles.ts
- read-scope.ts
- read.ts
- recompute-yield-due.ts
- reconcile-yield-claimed.ts
- redemption-requests.get.epoch-summary.ts
- redemption-requests.scheduler.epoch-cutoff.ts
- redemption.ts
- refresh-cookies.ts
- reinvest.ts
- reject.ts
- remind-funding-date.ts
- remind-governance-execute.ts
- remind-partner-funding.ts
- settle-epochs.ts
- snapshot-pool-tvl.ts
- sync-review.ts
- tokens.ts
- units.test.ts
- units.ts
- user-lookups.ts
- wind-down.ts
- yield-distribution.ts
- yield.ts
- Other
- scripts/check-layer-boundaries.mjs
- scripts/check-onchain-units.mjs
refactor 14:38:24 bee32a22
refactor(infra): Q6 — one tree, and the 136 things the second one was hiding
1138 files · +37085 · -37076
- Infra
- CDK Stack (api-stack)
- CDK Stack (kms-stack)
- CDK Stack (lambda-helpers)
- CDK Stack (parent-dedicated-roles.test)
- CDK Stack (route-group-stack)
- activate-change.ts
- activity-events.get.counts.test.ts
- activity-events.get.counts.ts
- activity-events.get.export.test.ts
- activity-events.get.export.ts
- activity-events.get.list.test.ts
- activity-events.get.list.ts
- activity-events.scheduler.archive.test.ts
- activity-events.scheduler.archive.ts
- activity-events.ts
- activity.ts
- actors.ts
- addresses.ts
- admin-2fa.ts
- admin-login.ts
- admin-me.patch.update.test.ts
- admin-me.patch.update.ts
- admin-mfa.ts
- admin-notification-preferences.get.list.test.ts
- admin-notification-preferences.get.list.ts
- admin-notification-preferences.put.update.test.ts
- admin-notification-preferences.put.update.ts
- admin-notifications.get.list.test.ts
- admin-notifications.get.list.ts
- admin-notifications.get.unread-count.ts
- admin-notifications.patch.read-all.test.ts
- admin-notifications.patch.read-all.ts
- admin-notifications.patch.read.test.ts
- admin-notifications.patch.read.ts
- admin-oauth.ts
- admin-roles.ts
- admin-sessions.ts
- admin-signer-balances.get.list.test.ts
- admin-signer-balances.get.list.ts
- admin-tokens.ts
- admin-user-wallets.get.list.test.ts
- admin-user-wallets.get.list.ts
- admin-users.delete.test.ts
- admin-users.delete.ts
- admin-users.get.list.test.ts
- admin-users.get.list.ts
- admin-users.patch.permissions.test.ts
- admin-users.patch.permissions.ts
- admin-users.patch.update.test.ts
- admin-users.patch.update.ts
- admin-users.post.create.test.ts
- admin-users.post.create.ts
- admin-users.post.invite.test.ts
- admin-users.post.invite.ts
- admin-users.ts
- admin-wallet.post.nonce.test.ts
- admin-wallet.post.nonce.ts
- admin-wallet.post.verify.test.ts
- admin-wallet.post.verify.ts
- admin-wallets.ts
- advance-pool-lifecycle.ts
- alerts.ts
- announce-epoch-demand.ts
- announce-epoch-window.ts
- announce-writedown.ts
- announced-nav.ts
- applicant-mirror.test.ts
- applicant-mirror.ts
- applicant-submitted.test.ts
- apply-on-chain.test.ts
- apply-on-chain.ts
- apply-pending-nav.ts
- apply-plane.ts
- apply-proposal.ts
- apply-review.ts
- approve-redemption.ts
- approve.ts
- audience.ts
- audit-export.ts
- audit.ts
- auth-nonces.ts
- auth.get.admin-sessions.ts
- auth.post.admin-2fa-verify.test.ts
- auth.post.admin-2fa-verify.ts
- auth.post.admin-login.test.ts
- auth.post.admin-login.ts
- auth.post.admin-logout-all.ts
- auth.post.admin-oauth.test.ts
- auth.post.admin-oauth.ts
- auth.post.admin-session-revoke.ts
- auth.post.logout.ts
- auth.post.nonce.test.ts
- auth.post.nonce.ts
- auth.post.refresh.test.ts
- auth.post.refresh.ts
- auth.post.verify-email.test.ts
- auth.post.verify-email.ts
- auth.post.verify.test.ts
- auth.post.verify.ts
- authority.ts
- body.ts
- build-params.ts
- cancel-change.ts
- cancel.ts
- catalog-integrity.test.ts
- catalog.ts
- chain-config.ts
- chain.ts
- claim-fallback.ts
- claim.ts
- client-lazy-signer.test.ts
- client.ts
- close.ts
- compute.test.ts
- compute.ts
- config-mirrors.test.ts
- config-mirrors.ts
- config.get.chains.test.ts
- config.get.chains.ts
- config.get.stablecoins.test.ts
- config.get.stablecoins.ts
- config.ts
- consent.ts
- contact.ts
- cookies.ts
- country-eligibility-policy.ts
- create-pool-config-calls.test.ts
- create-pool.ts
- create-rules.ts
- create-system-update.ts
- create.ts
- cursor.ts
- custody-gate.ts
- custody-mode.test.ts
- custody-mode.ts
- custody.ts
- dashboard.get.stats.test.ts
- dashboard.get.stats.ts
- dashboard.ts
- decide-channels.test.ts
- decide-schedule-change.ts
- decide.ts
- decode.ts
- deliver.ts
- deliveries.ts
- delivery-feedback.ts
- delivery-log.ts
- deploy-payload-yield-promise.test.ts
- deploy-payload.ts
- deploy-pool.ts
- deploy-queue.ts
- deposit-eligibility.test.ts
- deposit-eligibility.ts
- deposit-reader.ts
- deposit.ts
- deposits.get.counts.test.ts
- deposits.get.counts.ts
- deposits.get.list.test.ts
- deposits.get.list.ts
- deposits.post.create.test.ts
- deposits.post.create.ts
- deposits.ts
- derive-from-loss.ts
- describe-on-chain-error.test.ts
- detect-exit-gate-blocks.ts
- diff.ts
- digest.test.ts
- digest.ts
- disclaimer.ts
- dispatch-coverage.test.ts
- dispatch.ts
- display-name.ts
- distribute-plane.ts
- distribute.ts
- distribution.ts
- drain-sbt-queue.ts
- due-row-math.test.ts
- due-row-math.ts
- due-rows.ts
- eligibility.ts
- email-suppressions.delete.test.ts
- email-suppressions.delete.ts
- email-suppressions.get.list.test.ts
- email-suppressions.get.list.ts
- email-suppressions.post.create.test.ts
- email-suppressions.post.create.ts
- email-suppressions.ts
- email.ts
- engine.ts
- enter-review.ts
- enums.ts
- epoch-demand.test.ts
- epoch-demand.ts
- epoch-funding-plan.ts
- epoch-funding.ts
- epoch-redemption.ts
- epoch-schedule.test.ts
- epoch-schedule.ts
- epoch-settlement.ts
- epoch-summary.ts
- epoch.ts
- escalate.ts
- escape-html.ts
- eth-rpc.ts
- event-coverage.test.ts
- events.ts
- exit-eligibility.test.ts
- exit-eligibility.ts
- exit-gate.ts
- fallback-redemption.ts
- fastpath.ts
- feed.ts
- fees.ts
- fetch-all.ts
- fetch.ts
- final-rejection.ts
- format-date.ts
- format-nav.test.ts
- format-nav.ts
- freeze-milestones.test.ts
- freeze-state.test.ts
- freeze-state.ts
- freeze-windows.ts
- freeze.ts
- fund-data-reads.ts
- fund-data.ts
- fund-invites.delete.test.ts
- fund-invites.delete.ts
- fund-invites.get.list.test.ts
- fund-invites.get.list.ts
- fund-invites.post.accept.test.ts
- fund-invites.post.accept.ts
- fund-invites.post.create.test.ts
- fund-invites.post.create.ts
- fund-invites.ts
- fund-linked-pools.ts
- fund-members.delete.test.ts
- fund-members.delete.ts
- fund-members.get.list.test.ts
- fund-members.get.list.ts
- fund-members.patch.update.test.ts
- fund-members.patch.update.ts
- fund-members.post.create.test.ts
- fund-members.post.create.ts
- fund-members.ts
- fund-scoping.ts
- fund-summary.ts
- funding-date-monotonicity.test.ts
- funding-date-monotonicity.ts
- funds.delete.test.ts
- funds.delete.ts
- funds.get.list.test.ts
- funds.get.list.ts
- funds.patch.update.test.ts
- funds.patch.update.ts
- funds.post.create.test.ts
- funds.post.create.ts
- funds.ts
- gas-reader.ts
- governance-execute-due.test.ts
- governance-execute-due.ts
- governance-rules.ts
- governance-timelock.ts
- governance.ts
- handler-roles.ts
- handler-secrets.ts
- harness-drives-legacy.test.ts
- history-window.test.ts
- history-window.ts
- history.ts
- holder-yield.ts
- impairment.ts
- in-app-copy.ts
- in-app.ts
- inapp-copy.test.ts
- index.ts
- indexer.ts
- ingest.ts
- instant-summary.ts
- investor-activity.get.list.test.ts
- investor-activity.get.list.ts
- investor-activity.ts
- investor-pii.ts
- investor-preferences.test.ts
- investor-sessions.ts
- investor-stats.ts
- invite-admin.ts
- jwt-token-use.test.ts
- jwt.ts
- kms-address.test.ts
- kms-address.ts
- kms-signer.test.ts
- kms-signer.ts
- kyc-account.ts
- kyc-gating.test.ts
- kyc-gating.ts
- kyc-logs.get.list.test.ts
- kyc-logs.get.list.ts
- kyc-sbt.ts
- kyc-status.ts
- kyc-sweeps.ts
- kyc-verification.ts
- kyc.get.status.test.ts
- kyc.get.status.ts
- kyc.post.access-token.ts
- kyc.post.mint-sbt.test.ts
- kyc.post.mint-sbt.ts
- kyc.post.reuse.ts
- kyc.post.sync.test.ts
- kyc.post.sync.ts
- kyc.post.webhook.test.ts
- kyc.post.webhook.ts
- kyc.scheduler.reconcile-sweep.test.ts
- kyc.scheduler.reconcile-sweep.ts
- kyc.scheduler.reverify-sweep.test.ts
- kyc.scheduler.reverify-sweep.ts
- kyc.worker.apply-review.test.ts
- kyc.worker.apply-review.ts
- kyc.worker.mint-sbt.test.ts
- kyc.worker.mint-sbt.ts
- large-deposit.test.ts
- large-deposit.ts
- latest.ts
- ledger.ts
- lifecycle-enum.test.ts
- lifecycle.ts
- list-controls.ts
- list-handler.ts
- lockup-anchor.test.ts
- lockup-within-term.test.ts
- lockup-within-term.ts
- lookup.ts
- lookups.ts
- loss-waterfall.test.ts
- loss-waterfall.ts
- mailer.ts
- manage-accounts.ts
- manage-funds.ts
- manage-invites.ts
- manage-members.ts
- manage-suppressions.ts
- manage-updates.ts
- map-with-concurrency.ts
- mapping.ts
- middleware.ts
- migration-numbers-are-unique.test.ts
- mint-preview-token.ts
- mint-queue.ts
- mint-sbt.ts
- mirror-mode.test.ts
- mirror-mode.ts
- mirror.ts
- nav-changes.get.list.test.ts
- nav-changes.get.list.ts
- nav-changes.post.activate.test.ts
- nav-changes.post.activate.ts
- nav-changes.post.approve.test.ts
- nav-changes.post.approve.ts
- nav-changes.post.cancel.test.ts
- nav-changes.post.cancel.ts
- nav-changes.post.dismiss.test.ts
- nav-changes.post.dismiss.ts
- nav-changes.post.override.test.ts
- nav-changes.post.override.ts
- nav-changes.post.propose.test.ts
- nav-changes.post.propose.ts
- nav-changes.scheduler.apply-pending.test.ts
- nav-changes.scheduler.apply-pending.ts
- nav-changes.ts
- nav-formula.test.ts
- nav-formula.ts
- nav-proposals.get.list.test.ts
- nav-proposals.get.list.ts
- nav-proposals.scheduler.expire.test.ts
- nav-proposals.scheduler.expire.ts
- nav-proposals.ts
- nav.ts
- next-due.ts
- nonce.ts
- notification-email.ts
- notification-logs.get.list.test.ts
- notification-logs.get.list.ts
- notification-logs.post.escalate.test.ts
- notification-logs.post.escalate.ts
- notification-logs.post.resend.test.ts
- notification-logs.post.resend.ts
- notification-logs.ts
- notification-preferences.get.list.test.ts
- notification-preferences.get.list.ts
- notification-preferences.put.update.test.ts
- notification-preferences.put.update.ts
- notification-preferences.ts
- notification-read-state.ts
- notifications.get.list.test.ts
- notifications.get.list.ts
- notifications.get.unread-count.ts
- notifications.patch.read-all.test.ts
- notifications.patch.read-all.ts
- notifications.patch.read.test.ts
- notifications.patch.read.ts
- notifications.scheduler.sweep.test.ts
- notifications.scheduler.sweep.ts
- notifications.ts
- notifications.webhook.ses.test.ts
- notifications.webhook.ses.ts
- notifications.worker.deliver.test.ts
- notifications.worker.deliver.ts
- notifier.ts
- notify-fund.ts
- notify-stalled-yield.ts
- npl.ts
- observe.test.ts
- observe.ts
- offboard-fund-manager.ts
- offering-close-day.test.ts
- onchain-indexer.scheduler.test.ts
- onchain-indexer.scheduler.ts
- onchain.ts
- ops-variants.ts
- page-permissions.ts
- pagination.ts
- parse-body.ts
- pause.ts
- pipeline.ts
- plane.ts
- platform-settings.get.test.ts
- platform-settings.get.ts
- platform-settings.put.update.test.ts
- platform-settings.put.update.ts
- platform-settings.ts
- pool-aggregates.ts
- pool-archive.test.ts
- pool-archive.ts
- pool-categories.delete.test.ts
- pool-categories.delete.ts
- pool-categories.get.list.test.ts
- pool-categories.get.list.ts
- pool-categories.post.create.test.ts
- pool-categories.post.create.ts
- pool-categories.ts
- pool-consent.ts
- pool-create.ts
- pool-deploy.ts
- pool-documents.get.list.test.ts
- pool-documents.get.list.ts
- pool-field-validation.test.ts
- pool-field-validation.ts
- pool-follows.delete.test.ts
- pool-follows.delete.ts
- pool-follows.get.list.test.ts
- pool-follows.get.list.ts
- pool-follows.post.create.test.ts
- pool-follows.post.create.ts
- pool-follows.ts
- pool-lookups.ts
- pool-maturity.test.ts
- pool-maturity.ts
- pool-mirrors.ts
- pool-mutation-registry.ts
- pool-publish.ts
- pool-read-access.ts
- pool-read.ts
- pool-registry.ts
- pool-sweeps.ts
- pool-tvl-history.get.list.test.ts
- pool-tvl-history.get.list.ts
- pool-tvl-history.ts
- pool-update.ts
- pool-updates.delete.test.ts
- pool-updates.delete.ts
- pool-updates.get.list.test.ts
- pool-updates.get.list.ts
- pool-updates.patch.update.test.ts
- pool-updates.patch.update.ts
- pool-updates.post.create.test.ts
- pool-updates.post.create.ts
- pool-updates.ts
- pool-visibility.test.ts
- pool-visibility.ts
- pool.ts
- pools.delete.test.ts
- pools.delete.ts
- pools.get.eligibility.test.ts
- pools.get.eligibility.ts
- pools.get.fund-data-history.ts
- pools.get.fund-data-summary.ts
- pools.get.fund-data-writeoffs.ts
- pools.get.list.test.ts
- pools.get.list.ts
- pools.get.loss-history.test.ts
- pools.get.loss-history.ts
- pools.get.nav-history.test.ts
- pools.get.nav-history.ts
- pools.get.repayment-cycles.test.ts
- pools.get.repayment-cycles.ts
- pools.patch.update.test.ts
- pools.patch.update.ts
- pools.post.close.test.ts
- pools.post.close.ts
- pools.post.create.test.ts
- pools.post.create.ts
- pools.post.epoch-funding.test.ts
- pools.post.epoch-funding.ts
- pools.post.epoch-schedule.test.ts
- pools.post.epoch-schedule.ts
- pools.post.escalate-yield.test.ts
- pools.post.escalate-yield.ts
- pools.post.freeze.test.ts
- pools.post.freeze.ts
- pools.post.governance.test.ts
- pools.post.governance.ts
- pools.post.impairment.test.ts
- pools.post.impairment.ts
- pools.post.lifecycle.test.ts
- pools.post.lifecycle.ts
- pools.post.notify-fund.test.ts
- pools.post.notify-fund.ts
- pools.post.pause.test.ts
- pools.post.pause.ts
- pools.post.preview-token.test.ts
- pools.post.preview-token.ts
- pools.post.schedule-change-request.test.ts
- pools.post.schedule-change-request.ts
- pools.post.wind-down.test.ts
- pools.post.wind-down.ts
- pools.scheduler.epoch-funding-date.test.ts
- pools.scheduler.epoch-funding-date.ts
- pools.scheduler.epoch-window-open.test.ts
- pools.scheduler.epoch-window-open.ts
- pools.scheduler.governance-execute-due.test.ts
- pools.scheduler.governance-execute-due.ts
- pools.scheduler.lifecycle.test.ts
- pools.scheduler.lifecycle.ts
- pools.scheduler.tvl-snapshot.test.ts
- pools.scheduler.tvl-snapshot.ts
- pools.scheduler.yield-due.test.ts
- pools.scheduler.yield-due.ts
- pools.ts
- pools.worker.deploy.test.ts
- pools.worker.deploy.ts
- portfolio-positions.get.list.test.ts
- portfolio-positions.get.list.ts
- portfolio-positions.ts
- preference-catalog.test.ts
- preview-fees.ts
- principal.ts
- project.test.ts
- project.ts
- proposal-resolver.ts
- propose-change.ts
- propose-mode.ts
- provider.ts
- publish.ts
- query-parts.ts
- queue.ts
- range-limit.test.ts
- range-limit.ts
- read-invites.ts
- read-repayment-cycles.ts
- read-scope.ts
- read-self.ts
- read-signer-balances.ts
- read-status.ts
- read.test.ts
- read.ts
- receipt-investors.ts
- receive-webhook.ts
- recompute-yield-due.ts
- reconcile-kyc.ts
- reconcile-mirrors.test.ts
- reconcile-yield-claimed.ts
- reconcile.ts
- record-claim.ts
- record-deposit.ts
- record-distribution.ts
- record-funding.ts
- record-reinvest.ts
- redemption-decision.ts
- redemption-eligibility.test.ts
- redemption-eligibility.ts
- redemption-epochs.ts
- redemption-exit-gate.test.ts
- redemption-exit-gate.ts
- redemption-reader.ts
- redemption-requests.get.counts.test.ts
- redemption-requests.get.counts.ts
- redemption-requests.get.epoch-summary.test.ts
- redemption-requests.get.epoch-summary.ts
- redemption-requests.get.exit-gate.test.ts
- redemption-requests.get.exit-gate.ts
- redemption-requests.get.instant-summary.test.ts
- redemption-requests.get.instant-summary.ts
- redemption-requests.get.list.test.ts
- redemption-requests.get.list.ts
- redemption-requests.post.approve.test.ts
- redemption-requests.post.approve.ts
- redemption-requests.post.cancel.test.ts
- redemption-requests.post.cancel.ts
- redemption-requests.post.claim-fallback.test.ts
- redemption-requests.post.claim-fallback.ts
- redemption-requests.post.claim.test.ts
- redemption-requests.post.claim.ts
- redemption-requests.post.create.test.ts
- redemption-requests.post.create.ts
- redemption-requests.post.escalate.test.ts
- redemption-requests.post.escalate.ts
- redemption-requests.post.notify-fund.test.ts
- redemption-requests.post.notify-fund.ts
- redemption-requests.post.record-funding.test.ts
- redemption-requests.post.record-funding.ts
- redemption-requests.post.reject.test.ts
- redemption-requests.post.reject.ts
- redemption-requests.scheduler.epoch-cutoff.test.ts
- redemption-requests.scheduler.epoch-cutoff.ts
- redemption-requests.scheduler.epoch-execute.test.ts
- redemption-requests.scheduler.epoch-execute.ts
- redemption-requests.scheduler.exit-gate-sweep.test.ts
- redemption-requests.scheduler.exit-gate-sweep.ts
- redemption-requests.scheduler.partner-funding.test.ts
- redemption-requests.scheduler.partner-funding.ts
- redemption-requests.scheduler.unrequested-holders.test.ts
- redemption-requests.scheduler.unrequested-holders.ts
- redemption-requests.ts
- redemption-sweeps.ts
- redemption.ts
- refresh-audience.test.ts
- refresh-cookies.ts
- register-email.ts
- reinvest-reader.ts
- reinvest.ts
- reject.ts
- remind-funding-date.ts
- remind-governance-execute.ts
- remind-partner-funding.ts
- remove.ts
- reopen-offering-close.test.ts
- reopen-offering-close.ts
- repayment-cycle-amounts.test.ts
- repayment-cycle-amounts.ts
- repayment-cycle-viewer.test.ts
- repayment-cycle-viewer.ts
- repayment-cycles.ts
- report.scheduler.derive.test.ts
- report.scheduler.derive.ts
- report.scheduler.fetch.test.ts
- report.scheduler.fetch.ts
- reserve-shortfall.test.ts
- reserve-shortfall.ts
- resolve-proposal.ts
- resolve.ts
- response-shape.test.ts
- review-log.ts
- roles.ts
- run-count.ts
- run-detail.ts
- run-distribution.ts
- run-list.ts
- save-preferences.ts
- sbt-reader.ts
- sbt-sync.test.ts
- sbt-sync.ts
- sbt-validity.test.ts
- sbt-validity.ts
- schedule-change-requests.post.decide.test.ts
- schedule-change-requests.post.decide.ts
- schedule-change.ts
- schedule-revert-http.ts
- self-heal.test.ts
- self-heal.ts
- service-providers.ts
- sessions.ts
- settle-epochs.ts
- siwe-message.ts
- siwe-verify.ts
- siwe.ts
- snapshot-pool-tvl.ts
- source.ts
- sources.ts
- stablecoin.ts
- stalled-threshold.test.ts
- stalled-yield.ts
- stalled.ts
- start-verification.ts
- status-filter.test.ts
- status-filter.ts
- statuses.ts
- submission-retry.test.ts
- summary.ts
- sumsub.ts
- supabase.ts
- suppression.ts
- sweeps.ts
- sync-onchain-yield-due.ts
- sync-review.ts
- team.ts
- templates.ts
- token-calculations.ts
- tokens.ts
- totp.ts
- tranche.post.writedown.test.ts
- tranche.post.writedown.ts
- transfer-holders.test.ts
- types.ts
- underlying-assets.get.list.test.ts
- underlying-assets.get.list.ts
- units.test.ts
- units.ts
- unread-bells.ts
- unrequested-holders.ts
- unwritten-plan-cycles.test.ts
- unwritten-plan-cycles.ts
- update.ts
- users.get.counts.test.ts
- users.get.counts.ts
- users.get.investor-detail.test.ts
- users.get.investor-detail.ts
- users.get.list.test.ts
- users.get.list.ts
- users.get.me.test.ts
- users.get.me.ts
- users.patch.qualification.test.ts
- users.patch.qualification.ts
- users.post.email.test.ts
- users.post.email.ts
- users.ts
- uuid.test.ts
- validate-amount.ts
- validate-request.ts
- verification-gate.ts
- verify-email.ts
- verify-wallet.ts
- wallets.get.list.test.ts
- wallets.get.list.ts
- wallets.ts
- watched-events.test.ts
- webhook.ts
- wind-down.ts
- window-subscriptions.delete.test.ts
- window-subscriptions.delete.ts
- window-subscriptions.get.list.test.ts
- window-subscriptions.get.list.ts
- window-subscriptions.post.create.test.ts
- window-subscriptions.post.create.ts
- window-subscriptions.ts
- wire.ts
- write.ts
- writedown-crossing.test.ts
- writedown-governance.test.ts
- writedown-update-copy.ts
- writedown.ts
- yield-aggregates.ts
- yield-claim-reader.ts
- yield-claim.ts
- yield-claims.get.list.test.ts
- yield-claims.get.list.ts
- yield-claims.post.create.test.ts
- yield-claims.post.create.ts
- yield-distribution.ts
- yield-distributions.get.counts.test.ts
- yield-distributions.get.counts.ts
- yield-distributions.get.fund-summary.test.ts
- yield-distributions.get.fund-summary.ts
- yield-distributions.get.investors.test.ts
- yield-distributions.get.investors.ts
- yield-distributions.get.list.test.ts
- yield-distributions.get.list.ts
- yield-distributions.get.me.test.ts
- yield-distributions.get.me.ts
- yield-distributions.get.preview.test.ts
- yield-distributions.get.preview.ts
- yield-distributions.post.create.test.ts
- yield-distributions.post.create.ts
- yield-distributions.post.distribute.test.ts
- yield-distributions.post.distribute.ts
- yield-distributions.ts
- yield-due-date.ts
- yield-due-rows.ts
- yield-due-sync.ts
- yield-fund-summary.ts
- yield-interval.test.ts
- yield-interval.ts
- yield-mine.ts
- yield-period.test.ts
- yield-period.ts
- yield-reader.ts
- yield-receipt.ts
- yield-record.ts
- yield-schedule.ts
- yield.post.reinvest.test.ts
- yield.post.reinvest.ts
- yield.scheduler.reconcile.test.ts
- yield.scheduler.reconcile.ts
- yield.scheduler.stalled.test.ts
- yield.scheduler.stalled.ts
- yield.ts
- Lambda API
- fund-invites.get.list
- kyc.worker.apply-review
- notifications.worker.deliver
- pool-tvl-history.get.list
- pools.get.nav-history
- yield-distributions.get.list
- yield-distributions.get.me
- yield-distributions.post.distribute
- Other
- scripts/check-handler-secrets.mjs
- scripts/check-layer-boundaries.mjs
- scripts/check-notification-producers.mjs
- scripts/check-onchain-units.mjs
- scripts/check-pool-mutations.mjs
refactor 14:19:39 7b4e7b29
refactor(infra): Wave 5 — the oracles stop looking like deployable code, and stay
555 files · +28401 · -28369
- Infra
- activity-events.get.counts.test.ts
- activity-events.get.counts.ts
- activity-events.get.export.test.ts
- activity-events.get.export.ts
- activity-events.get.list.test.ts
- activity-events.get.list.ts
- activity-events.scheduler.archive.test.ts
- activity-events.scheduler.archive.ts
- admin-me.patch.update.test.ts
- admin-me.patch.update.ts
- admin-notification-preferences.get.list.test.ts
- admin-notification-preferences.get.list.ts
- admin-notification-preferences.put.update.test.ts
- admin-notification-preferences.put.update.ts
- admin-notifications.get.list.test.ts
- admin-notifications.get.list.ts
- admin-notifications.get.unread-count.test.ts
- admin-notifications.get.unread-count.ts
- admin-notifications.patch.read-all.test.ts
- admin-notifications.patch.read-all.ts
- admin-notifications.patch.read.test.ts
- admin-notifications.patch.read.ts
- admin-signer-balances.get.list.test.ts
- admin-signer-balances.get.list.ts
- admin-user-wallets.get.list.test.ts
- admin-user-wallets.get.list.ts
- admin-users.delete.test.ts
- admin-users.delete.ts
- admin-users.get.list.test.ts
- admin-users.get.list.ts
- admin-users.patch.permissions.test.ts
- admin-users.patch.permissions.ts
- admin-users.patch.update.test.ts
- admin-users.patch.update.ts
- admin-users.post.create.test.ts
- admin-users.post.create.ts
- admin-users.post.invite.test.ts
- admin-users.post.invite.ts
- admin-wallet.post.nonce.test.ts
- admin-wallet.post.nonce.ts
- admin-wallet.post.verify.test.ts
- admin-wallet.post.verify.ts
- auth.get.admin-sessions.test.ts
- auth.get.admin-sessions.ts
- auth.post.admin-2fa-verify.test.ts
- auth.post.admin-2fa-verify.ts
- auth.post.admin-login.test.ts
- auth.post.admin-login.ts
- auth.post.admin-logout-all.test.ts
- auth.post.admin-logout-all.ts
- auth.post.admin-oauth.test.ts
- auth.post.admin-oauth.ts
- auth.post.admin-session-revoke.test.ts
- auth.post.admin-session-revoke.ts
- auth.post.logout.test.ts
- auth.post.logout.ts
- auth.post.nonce.test.ts
- auth.post.nonce.ts
- auth.post.refresh.test.ts
- auth.post.refresh.ts
- auth.post.verify-email.test.ts
- auth.post.verify-email.ts
- auth.post.verify.test.ts
- auth.post.verify.ts
- config.get.chains.test.ts
- config.get.chains.ts
- config.get.stablecoins.test.ts
- config.get.stablecoins.ts
- dashboard.get.stats.test.ts
- dashboard.get.stats.ts
- deposits.get.counts.test.ts
- deposits.get.counts.ts
- deposits.get.list.test.ts
- deposits.get.list.ts
- deposits.post.create.test.ts
- deposits.post.create.ts
- email-suppressions.delete.test.ts
- email-suppressions.delete.ts
- email-suppressions.get.list.test.ts
- email-suppressions.get.list.ts
- email-suppressions.post.create.test.ts
- email-suppressions.post.create.ts
- fund-invites.delete.test.ts
- fund-invites.delete.ts
- fund-invites.get.list.test.ts
- fund-invites.get.list.ts
- fund-invites.post.accept.test.ts
- fund-invites.post.accept.ts
- fund-invites.post.create.test.ts
- fund-invites.post.create.ts
- fund-members.delete.test.ts
- fund-members.delete.ts
- fund-members.get.list.test.ts
- fund-members.get.list.ts
- fund-members.patch.update.test.ts
- fund-members.patch.update.ts
- fund-members.post.create.test.ts
- fund-members.post.create.ts
- funds.delete.test.ts
- funds.delete.ts
- funds.get.list.test.ts
- funds.get.list.ts
- funds.patch.update.test.ts
- funds.patch.update.ts
- funds.post.create.test.ts
- funds.post.create.ts
- investor-activity.get.list.test.ts
- investor-activity.get.list.ts
- kyc-logs.get.list.test.ts
- kyc-logs.get.list.ts
- kyc.get.status.test.ts
- kyc.get.status.ts
- kyc.post.access-token.test.ts
- kyc.post.access-token.ts
- kyc.post.mint-sbt.test.ts
- kyc.post.mint-sbt.ts
- kyc.post.reuse.test.ts
- kyc.post.reuse.ts
- kyc.post.sync.test.ts
- kyc.post.sync.ts
- kyc.post.webhook.test.ts
- kyc.post.webhook.ts
- kyc.scheduler.reconcile-sweep.test.ts
- kyc.scheduler.reconcile-sweep.ts
- kyc.scheduler.reverify-sweep.test.ts
- kyc.scheduler.reverify-sweep.ts
- kyc.worker.apply-review.test.ts
- kyc.worker.apply-review.ts
- kyc.worker.mint-sbt.test.ts
- kyc.worker.mint-sbt.ts
- logs.scheduler.retention.test.ts
- logs.scheduler.retention.ts
- nav-changes.get.list.test.ts
- nav-changes.get.list.ts
- nav-changes.post.activate.test.ts
- nav-changes.post.activate.ts
- nav-changes.post.approve.test.ts
- nav-changes.post.approve.ts
- nav-changes.post.cancel.test.ts
- nav-changes.post.cancel.ts
- nav-changes.post.dismiss.test.ts
- nav-changes.post.dismiss.ts
- nav-changes.post.override.test.ts
- nav-changes.post.override.ts
- nav-changes.post.propose.test.ts
- nav-changes.post.propose.ts
- nav-changes.scheduler.apply-pending.test.ts
- nav-changes.scheduler.apply-pending.ts
- nav-proposals.get.list.test.ts
- nav-proposals.get.list.ts
- nav-proposals.scheduler.expire.test.ts
- nav-proposals.scheduler.expire.ts
- notification-logs.get.list.test.ts
- notification-logs.get.list.ts
- notification-logs.post.escalate.test.ts
- notification-logs.post.escalate.ts
- notification-logs.post.resend.test.ts
- notification-logs.post.resend.ts
- notification-preferences.get.list.test.ts
- notification-preferences.get.list.ts
- notification-preferences.put.update.test.ts
- notification-preferences.put.update.ts
- notifications.get.list.test.ts
- notifications.get.list.ts
- notifications.get.unread-count.test.ts
- notifications.get.unread-count.ts
- notifications.patch.read-all.test.ts
- notifications.patch.read-all.ts
- notifications.patch.read.test.ts
- notifications.patch.read.ts
- notifications.scheduler.sweep.test.ts
- notifications.scheduler.sweep.ts
- notifications.webhook.ses.test.ts
- notifications.webhook.ses.ts
- notifications.worker.deliver.test.ts
- notifications.worker.deliver.ts
- onchain-indexer.scheduler.test.ts
- onchain-indexer.scheduler.ts
- platform-settings.get.test.ts
- platform-settings.get.ts
- platform-settings.put.update.test.ts
- platform-settings.put.update.ts
- pool-categories.delete.test.ts
- pool-categories.delete.ts
- pool-categories.get.list.test.ts
- pool-categories.get.list.ts
- pool-categories.post.create.test.ts
- pool-categories.post.create.ts
- pool-documents.get.list.test.ts
- pool-documents.get.list.ts
- pool-follows.delete.test.ts
- pool-follows.delete.ts
- pool-follows.get.list.test.ts
- pool-follows.get.list.ts
- pool-follows.post.create.test.ts
- pool-follows.post.create.ts
- pool-tvl-history.get.list.test.ts
- pool-tvl-history.get.list.ts
- pool-updates.delete.test.ts
- pool-updates.delete.ts
- pool-updates.get.list.test.ts
- pool-updates.get.list.ts
- pool-updates.patch.update.test.ts
- pool-updates.patch.update.ts
- pool-updates.post.create.test.ts
- pool-updates.post.create.ts
- pools.delete.test.ts
- pools.delete.ts
- pools.get.eligibility.test.ts
- pools.get.eligibility.ts
- pools.get.fund-data-history.test.ts
- pools.get.fund-data-history.ts
- pools.get.fund-data-summary.test.ts
- pools.get.fund-data-summary.ts
- pools.get.fund-data-writeoffs.test.ts
- pools.get.fund-data-writeoffs.ts
- pools.get.list.test.ts
- pools.get.list.ts
- pools.get.loss-history.test.ts
- pools.get.loss-history.ts
- pools.get.nav-history.test.ts
- pools.get.nav-history.ts
- pools.get.repayment-cycles.test.ts
- pools.get.repayment-cycles.ts
- pools.patch.update.test.ts
- pools.patch.update.ts
- pools.post.close.test.ts
- pools.post.close.ts
- pools.post.create.test.ts
- pools.post.create.ts
- pools.post.epoch-funding.test.ts
- pools.post.epoch-funding.ts
- pools.post.epoch-schedule.test.ts
- pools.post.epoch-schedule.ts
- pools.post.escalate-yield.test.ts
- pools.post.escalate-yield.ts
- pools.post.freeze.test.ts
- pools.post.freeze.ts
- pools.post.governance.test.ts
- pools.post.governance.ts
- pools.post.impairment.test.ts
- pools.post.impairment.ts
- pools.post.lifecycle.test.ts
- pools.post.lifecycle.ts
- pools.post.notify-fund.test.ts
- pools.post.notify-fund.ts
- pools.post.pause.test.ts
- pools.post.pause.ts
- pools.post.preview-token.test.ts
- pools.post.preview-token.ts
- pools.post.schedule-change-request.test.ts
- pools.post.schedule-change-request.ts
- pools.post.wind-down.test.ts
- pools.post.wind-down.ts
- pools.scheduler.epoch-funding-date.test.ts
- pools.scheduler.epoch-funding-date.ts
- pools.scheduler.epoch-window-open.test.ts
- pools.scheduler.epoch-window-open.ts
- pools.scheduler.governance-execute-due.test.ts
- pools.scheduler.governance-execute-due.ts
- pools.scheduler.lifecycle.test.ts
- pools.scheduler.lifecycle.ts
- pools.scheduler.tvl-snapshot.test.ts
- pools.scheduler.tvl-snapshot.ts
- pools.scheduler.yield-due.test.ts
- pools.scheduler.yield-due.ts
- pools.worker.deploy.test.ts
- pools.worker.deploy.ts
- portfolio-positions.get.list.test.ts
- portfolio-positions.get.list.ts
- redemption-epochs.ts
- redemption-requests.get.counts.test.ts
- redemption-requests.get.counts.ts
- redemption-requests.get.epoch-summary.test.ts
- redemption-requests.get.epoch-summary.ts
- redemption-requests.get.exit-gate.test.ts
- redemption-requests.get.exit-gate.ts
- redemption-requests.get.instant-summary.test.ts
- redemption-requests.get.instant-summary.ts
- redemption-requests.get.list.test.ts
- redemption-requests.get.list.ts
- redemption-requests.post.approve.test.ts
- redemption-requests.post.approve.ts
- redemption-requests.post.cancel.test.ts
- redemption-requests.post.cancel.ts
- redemption-requests.post.claim-fallback.test.ts
- redemption-requests.post.claim-fallback.ts
- redemption-requests.post.claim.test.ts
- redemption-requests.post.claim.ts
- redemption-requests.post.create.test.ts
- redemption-requests.post.create.ts
- redemption-requests.post.escalate.test.ts
- redemption-requests.post.escalate.ts
- redemption-requests.post.notify-fund.test.ts
- redemption-requests.post.notify-fund.ts
- redemption-requests.post.record-funding.test.ts
- redemption-requests.post.record-funding.ts
- redemption-requests.post.reject.test.ts
- redemption-requests.post.reject.ts
- redemption-requests.scheduler.epoch-cutoff.test.ts
- redemption-requests.scheduler.epoch-cutoff.ts
- redemption-requests.scheduler.epoch-execute.test.ts
- redemption-requests.scheduler.epoch-execute.ts
- redemption-requests.scheduler.exit-gate-sweep.test.ts
- redemption-requests.scheduler.exit-gate-sweep.ts
- redemption-requests.scheduler.partner-funding.test.ts
- redemption-requests.scheduler.partner-funding.ts
- redemption-requests.scheduler.unrequested-holders.test.ts
- redemption-requests.scheduler.unrequested-holders.ts
- report.scheduler.derive.test.ts
- report.scheduler.derive.ts
- report.scheduler.fetch.test.ts
- report.scheduler.fetch.ts
- schedule-change-requests.post.decide.test.ts
- schedule-change-requests.post.decide.ts
- tranche.post.writedown.test.ts
- tranche.post.writedown.ts
- underlying-assets.get.list.test.ts
- underlying-assets.get.list.ts
- users.get.counts.test.ts
- users.get.counts.ts
- users.get.investor-detail.test.ts
- users.get.investor-detail.ts
- users.get.list.test.ts
- users.get.list.ts
- users.get.me.test.ts
- users.get.me.ts
- users.patch.qualification.test.ts
- users.patch.qualification.ts
- users.post.email.test.ts
- users.post.email.ts
- uuid.test.ts
- uuid.ts
- wallets.get.list.test.ts
- wallets.get.list.ts
- window-subscriptions.delete.test.ts
- window-subscriptions.delete.ts
- window-subscriptions.get.list.test.ts
- window-subscriptions.get.list.ts
- window-subscriptions.post.create.test.ts
- window-subscriptions.post.create.ts
- yield-claims.get.list.test.ts
- yield-claims.get.list.ts
- yield-claims.post.create.test.ts
- yield-claims.post.create.ts
- yield-distributions.get.counts.test.ts
- yield-distributions.get.counts.ts
- yield-distributions.get.fund-summary.test.ts
- yield-distributions.get.fund-summary.ts
- yield-distributions.get.investors.test.ts
- yield-distributions.get.investors.ts
- yield-distributions.get.list.test.ts
- yield-distributions.get.list.ts
- yield-distributions.get.me.test.ts
- yield-distributions.get.me.ts
- yield-distributions.get.preview.test.ts
- yield-distributions.get.preview.ts
- yield-distributions.post.create.test.ts
- yield-distributions.post.create.ts
- yield-distributions.post.distribute.test.ts
- yield-distributions.post.distribute.ts
- yield.post.reinvest.test.ts
- yield.post.reinvest.ts
- yield.scheduler.reconcile.test.ts
- yield.scheduler.reconcile.ts
- yield.scheduler.stalled.test.ts
- yield.scheduler.stalled.ts
- Lambda API
- activity-events.get.counts
- activity-events.get.export
- activity-events.get.list
- activity-events.scheduler.archive
- admin-me.patch.update
- admin-notification-preferences.get.list
- admin-notification-preferences.put.update
- admin-notifications.get.list
- admin-notifications.get.unread-count
- admin-notifications.patch.read
- admin-notifications.patch.read-all
- admin-signer-balances.get.list
- admin-user-wallets.get.list
- admin-users.delete
- admin-users.get.list
- admin-users.patch.permissions
- admin-users.patch.update
- admin-users.post.create
- admin-users.post.invite
- admin-wallet.post.nonce
- admin-wallet.post.verify
- auth.get.admin-sessions
- auth.post.admin-2fa-verify
- auth.post.admin-login
- auth.post.admin-logout-all
- auth.post.admin-oauth
- auth.post.admin-session-revoke
- auth.post.logout
- auth.post.nonce
- auth.post.refresh
- auth.post.verify
- auth.post.verify-email
- config.get.chains
- config.get.stablecoins
- dashboard.get.stats
- deposits.get.counts
- deposits.get.list
- deposits.post.create
- email-suppressions.delete
- email-suppressions.get.list
- email-suppressions.post.create
- fund-invites.delete
- fund-invites.get.list
- fund-invites.post.accept
- fund-invites.post.create
- fund-members.delete
- fund-members.get.list
- fund-members.patch.update
- fund-members.post.create
- funds.delete
- funds.get.list
- funds.patch.update
- funds.post.create
- investor-activity.get.list
- kyc-logs.get.list
- kyc.get.status
- kyc.post.access-token
- kyc.post.mint-sbt
- kyc.post.reuse
- kyc.post.sync
- kyc.post.webhook
- kyc.scheduler.reconcile-sweep
- kyc.scheduler.reverify-sweep
- kyc.worker.apply-review
- kyc.worker.mint-sbt
- logs.scheduler.retention
- nav-changes.get.list
- nav-changes.post.activate
- nav-changes.post.approve
- nav-changes.post.cancel
- nav-changes.post.dismiss
- nav-changes.post.override
- nav-changes.post.propose
- nav-changes.scheduler.apply-pending
- nav-proposals.get.list
- nav-proposals.scheduler.expire
- notification-logs.get.list
- notification-logs.post.escalate
- notification-logs.post.resend
- notification-preferences.get.list
- notification-preferences.put.update
- notifications.get.list
- notifications.get.unread-count
- notifications.patch.read
- notifications.patch.read-all
- notifications.scheduler.sweep
- notifications.webhook.ses
- notifications.worker.deliver
- onchain-indexer.scheduler
- platform-settings.get
- platform-settings.put.update
- pool-categories.delete
- pool-categories.get.list
- pool-categories.post.create
- pool-documents.get.list
- pool-follows.delete
- pool-follows.get.list
- pool-follows.post.create
- pool-tvl-history.get.list
- pool-updates.delete
- pool-updates.get.list
- pool-updates.patch.update
- pool-updates.post.create
- pools.delete
- pools.get.eligibility
- pools.get.fund-data-history
- pools.get.fund-data-summary
- pools.get.fund-data-writeoffs
- pools.get.list
- pools.get.loss-history
- pools.get.nav-history
- pools.get.repayment-cycles
- pools.patch.update
- pools.post.close
- pools.post.create
- pools.post.epoch-funding
- pools.post.epoch-schedule
- pools.post.escalate-yield
- pools.post.freeze
- pools.post.governance
- pools.post.impairment
- pools.post.lifecycle
- pools.post.notify-fund
- pools.post.pause
- pools.post.preview-token
- pools.post.schedule-change-request
- pools.post.wind-down
- pools.scheduler.epoch-funding-date
- pools.scheduler.epoch-window-open
- pools.scheduler.governance-execute-due
- pools.scheduler.lifecycle
- pools.scheduler.tvl-snapshot
- pools.scheduler.yield-due
- pools.worker.deploy
- portfolio-positions.get.list
- redemption-requests.get.counts
- redemption-requests.get.epoch-summary
- redemption-requests.get.exit-gate
- redemption-requests.get.instant-summary
- redemption-requests.get.list
- redemption-requests.post.approve
- redemption-requests.post.cancel
- redemption-requests.post.claim
- redemption-requests.post.claim-fallback
- redemption-requests.post.create
- redemption-requests.post.escalate
- redemption-requests.post.notify-fund
- redemption-requests.post.record-funding
- redemption-requests.post.reject
- redemption-requests.scheduler.epoch-cutoff
- redemption-requests.scheduler.epoch-execute
- redemption-requests.scheduler.exit-gate-sweep
- redemption-requests.scheduler.partner-funding
- redemption-requests.scheduler.unrequested-holders
- report.scheduler.derive
- report.scheduler.fetch
- schedule-change-requests.post.decide
- tranche.post.writedown
- underlying-assets.get.list
- users.get.counts
- users.get.investor-detail
- users.get.list
- users.get.me
- users.patch.qualification
- users.post.email
- wallets.get.list
- window-subscriptions.delete
- window-subscriptions.get.list
- window-subscriptions.post.create
- yield-claims.get.list
- yield-claims.post.create
- yield-distributions.get.counts
- yield-distributions.get.fund-summary
- yield-distributions.get.investors
- yield-distributions.get.list
- yield-distributions.get.me
- yield-distributions.get.preview
- yield-distributions.post.create
- yield-distributions.post.distribute
- yield.post.reinvest
- yield.scheduler.reconcile
- yield.scheduler.stalled
- Other
- scripts/check-layer-boundaries.mjs
- scripts/check-notification-producers.mjs
- scripts/check-onchain-units.mjs
- scripts/check-parity-coverage.mjs
- scripts/check-pool-mutations.mjs
fix 11:59:14 0944f154
fix(infra): restore what the flat rebase dropped from an evil merge
13 files · +419 · -90
- Infra
- announce-epoch-demand.ts
- index.ts
- pool-sweeps.ts
- pools.scheduler.epoch-window-open.test.ts
- pools.ts
- recompute-yield-due.ts
- redemption-requests.scheduler.epoch-cutoff.test.ts
- yield-aggregates.ts
- yield-due-sync.ts
- Lambda API
- pools.get.list
- pools.scheduler.yield-due
- pools.worker.deploy
- redemption-requests.scheduler.epoch-cutoff
refactor 11:59:14 fc6e87ba
refactor(infra): the last handlers move behind the pipeline, and two live defects stop being invisible
396 files · +59802 · -15655
- Infra
- activate-change.ts
- activity-events.get.export.test.ts
- admin-2fa.ts
- admin-login.ts
- admin-mfa.ts
- admin-notifications.get.unread-count.test.ts
- admin-oauth.ts
- admin-sessions.ts
- advance-pool-lifecycle.ts
- alerts.test.ts
- alerts.ts
- apply-pending-nav.ts
- apply-plane.ts
- approve.ts
- audit-export.ts
- audit.ts
- auth-nonces.ts
- auth.get.admin-sessions.test.ts
- auth.post.admin-2fa-verify.test.ts
- auth.post.admin-login.test.ts
- auth.post.admin-logout-all.test.ts
- auth.post.admin-oauth.test.ts
- auth.post.admin-session-revoke.test.ts
- auth.post.logout.test.ts
- auth.post.nonce.test.ts
- auth.post.refresh.test.ts
- auth.post.verify-email.test.ts
- auth.post.verify.test.ts
- cancel-change.ts
- cancel.ts
- claim-fallback.ts
- claim.ts
- close.ts
- config.get.chains.test.ts
- config.get.stablecoins.test.ts
- config.ts
- context.kyc-webhook.ts
- context.ts
- create-rules.test.ts
- create-rules.ts
- create.ts
- csv.test.ts
- csv.ts
- dashboard.get.stats.test.ts
- dashboard.ts
- decide-schedule-change.ts
- delivery-feedback.ts
- deploy-queue.ts
- deposit-reader.ts
- deposits.post.create.test.ts
- deposits.ts
- derive-from-loss.test.ts
- derive-from-loss.ts
- eligibility.ts
- epoch-funding.ts
- epoch-schedule.ts
- epoch-summary.ts
- errors.ts
- escalate.ts
- eth-rpc.ts
- exit-gate.ts
- export.ts
- freeze.ts
- fund-data-reads.ts
- fund-data.ts
- fund-scope.ts
- fund-summary.test.ts
- fund-summary.ts
- governance-rules.test.ts
- governance-rules.ts
- governance.ts
- impairment.ts
- index-chains.ts
- index.ts
- indexer.ts
- instant-summary.test.ts
- instant-summary.ts
- investor-detail.ts
- kyc-status.ts
- kyc-verification.ts
- kyc.get.status.test.ts
- kyc.post.access-token.test.ts
- kyc.post.mint-sbt.test.ts
- kyc.post.reuse.test.ts
- kyc.post.sync.test.ts
- kyc.post.webhook.test.ts
- lifecycle.ts
- list.ts
- logout.ts
- loss-history.test.ts
- loss-history.ts
- manage-invites.ts
- manage-members.ts
- messages.ts
- mint-sbt.ts
- money-projections.ts
- nav-changes.post.activate.test.ts
- nav-changes.post.cancel.test.ts
- nav-changes.post.propose.test.ts
- nav-changes.ts
- nav.ts
- nonce.ts
- notification-read-state.ts
- notifications.get.unread-count.test.ts
- notifications.webhook.ses.test.ts
- notifier.ts
- notify-fund.ts
- onchain-indexer.scheduler.test.ts
- parse.ts
- pause.ts
- platform-settings.get.test.ts
- platform-settings.ts
- poll.ts
- pool-create.ts
- pool-deploy.ts
- pool-publish.ts
- pool-read.test.ts
- pool-sweeps.ts
- pool-update.ts
- pool-updates.ts
- pools.delete.test.ts
- pools.get.eligibility.test.ts
- pools.get.fund-data-history.test.ts
- pools.get.fund-data-summary.test.ts
- pools.get.fund-data-writeoffs.test.ts
- pools.get.loss-history.test.ts
- pools.get.nav-history.test.ts
- pools.get.repayment-cycles.test.ts
- pools.patch.update.test.ts
- pools.post.close.test.ts
- pools.post.create.test.ts
- pools.post.epoch-funding.test.ts
- pools.post.epoch-schedule.test.ts
- pools.post.escalate-yield.test.ts
- pools.post.freeze.test.ts
- pools.post.governance.test.ts
- pools.post.impairment.test.ts
- pools.post.lifecycle.test.ts
- pools.post.notify-fund.test.ts
- pools.post.pause.test.ts
- pools.post.schedule-change-request.test.ts
- pools.post.wind-down.test.ts
- preview-fees.ts
- principal.ts
- propose-change.ts
- provider.ts
- publish.ts
- queue.ts
- read-history.ts
- read-loss-history.ts
- read-mine.ts
- read-repayment-cycles.ts
- read-self.ts
- read-settings.ts
- read-stats.ts
- read-status.ts
- receipt-investors.ts
- receive-webhook.ts
- record-claim.ts
- record-deposit.ts
- record-distribution.ts
- record-funding.ts
- record-reinvest.ts
- redemption-decisions.ts
- redemption-reader.ts
- redemption-requests.get.epoch-summary.test.ts
- redemption-requests.get.exit-gate.test.ts
- redemption-requests.get.instant-summary.test.ts
- redemption-requests.post.approve.test.ts
- redemption-requests.post.cancel.test.ts
- redemption-requests.post.claim-fallback.test.ts
- redemption-requests.post.claim.test.ts
- redemption-requests.post.create.test.ts
- redemption-requests.post.escalate.test.ts
- redemption-requests.post.notify-fund.test.ts
- redemption-requests.post.record-funding.test.ts
- redemption-requests.post.reject.test.ts
- redemption-requests.scheduler.unrequested-holders.test.ts
- redemption-sweeps.ts
- refresh-cookies.ts
- refresh.ts
- reinvest-reader.ts
- reinvest.ts
- reject.ts
- remove.ts
- repayment-cycles.ts
- response.ts
- route.ts
- sbt-reader.ts
- schedule-change-requests.post.decide.test.ts
- schedule-change.ts
- ses-feedback.ts
- sessions.ts
- siwe-verify.ts
- siwe.ts
- stablecoins.ts
- start-verification.ts
- state.ts
- supabase-projection.ts
- sync-review.ts
- tokens.ts
- tranche.post.writedown.test.ts
- unread-bells.ts
- unread-count.ts
- unrequested-holders-firing.test.ts
- unrequested-holders.ts
- update-rules.ts
- update.ts
- users.get.investor-detail.test.ts
- users.get.me.test.ts
- users.ts
- verify-email.ts
- wallets.ts
- webhook.ts
- wind-down.ts
- writedown-governance.test.ts
- writedown.ts
- yield-claim-reader.ts
- yield-claim.ts
- yield-claims.post.create.test.ts
- yield-distributions.get.fund-summary.test.ts
- yield-distributions.get.investors.test.ts
- yield-distributions.get.me.test.ts
- yield-distributions.get.preview.test.ts
- yield-distributions.post.create.test.ts
- yield-fund-summary.ts
- yield-mine.ts
- yield-receipt.ts
- yield-record.ts
- yield.post.reinvest.test.ts
- Lambda API
- activity-events.get.export
- admin-notifications.get.unread-count
- auth.get.admin-sessions
- auth.post.admin-2fa-verify
- auth.post.admin-login
- auth.post.admin-logout-all
- auth.post.admin-oauth
- auth.post.admin-session-revoke
- auth.post.logout
- auth.post.nonce
- auth.post.refresh
- auth.post.verify
- auth.post.verify-email
- config.get.chains
- config.get.stablecoins
- dashboard.get.stats
- deposits.post.create
- kyc.get.status
- kyc.post.access-token
- kyc.post.mint-sbt
- kyc.post.reuse
- kyc.post.sync
- kyc.post.webhook
- nav-changes.post.activate
- nav-changes.post.cancel
- nav-changes.post.propose
- notifications.get.unread-count
- notifications.webhook.ses
- onchain-indexer.scheduler
- platform-settings.get
- pools.delete
- pools.get.eligibility
- pools.get.fund-data-history
- pools.get.fund-data-summary
- pools.get.fund-data-writeoffs
- pools.get.loss-history
- pools.get.nav-history
- pools.get.repayment-cycles
- pools.patch.update
- pools.post.close
- pools.post.create
- pools.post.epoch-funding
- pools.post.epoch-schedule
- pools.post.escalate-yield
- pools.post.freeze
- pools.post.governance
- pools.post.impairment
- pools.post.lifecycle
- pools.post.notify-fund
- pools.post.pause
- pools.post.schedule-change-request
- pools.post.wind-down
- redemption-requests.get.epoch-summary
- redemption-requests.get.exit-gate
- redemption-requests.get.instant-summary
- redemption-requests.post.approve
- redemption-requests.post.cancel
- redemption-requests.post.claim
- redemption-requests.post.claim-fallback
- redemption-requests.post.create
- redemption-requests.post.escalate
- redemption-requests.post.notify-fund
- redemption-requests.post.record-funding
- redemption-requests.post.reject
- redemption-requests.scheduler.unrequested-holders
- schedule-change-requests.post.decide
- tranche.post.writedown
- users.get.investor-detail
- users.get.me
- yield-claims.post.create
- yield-distributions.get.fund-summary
- yield-distributions.get.investors
- yield-distributions.get.me
- yield-distributions.get.preview
- yield-distributions.post.create
- yield.post.reinvest
- Other
- scripts/check-parity-coverage.mjs
- scripts/check-pool-mutations.mjs
refactor 11:57:36 ed13c308
refactor(infra): the NAV dismissal, and with it the second and last viaLookup case
7 files · +571 · -118
- Infra
- dismiss-proposal.ts
- index.ts
- messages.ts
- nav-changes.post.dismiss.test.ts
- nav-proposals.ts
- Lambda API
- nav-changes.post.dismiss
refactor 11:57:36 5c2e4323
refactor(infra): the two NAV-proposal writes, and a route may forward a status it was given
14 files · +567 · -84
- Infra
- context.ts
- index.ts
- messages.ts
- nav-changes.post.approve.test.ts
- nav-changes.post.override.test.ts
- nav-proposal.ts
- proposal-resolver.ts
- resolve-proposal.ts
- route.ts
- Lambda API
- nav-changes.post.approve
- nav-changes.post.override
- Other
- scripts/check-pool-mutations.mjs
fix 11:57:36 1f6fc028
fix(infra): BC-1 closes — a mirrored pool's yield can no longer be distributed
9 files · +1065 · -339
- Infra
- context.ts
- distribute-plane.ts
- distribute.ts
- index.ts
- messages.ts
- yield-distributions.post.distribute.test.ts
- Lambda API
- yield-distributions.post.distribute
- Other
- scripts/check-pool-mutations.mjs
feat 11:57:36 75e159a8
feat(infra): custody becomes a declaration, so handing the gate the wrong id stops being expressible
6 files · +191
- Infra
- context.ts
- custody.ts
- index.ts
- messages.ts
- route.ts
fix 11:57:31 176c49bc
fix(infra): the reminder fires on the window the pool actually has, not on dev's
5 files · +219 · -67
- Infra
- investor-preferences.test.ts
- pool.ts
- redemption.ts
- unrequested-holders-firing.test.ts
- Lambda API
- redemption-requests.scheduler.unrequested-holders
feat 11:33:05 3089d913
feat(infra): tell a matured holder the window is closing, because nothing redeems for them
3 files · +270
- Infra
- CDK Stack (api-stack)
- redemption.ts
- Lambda API
- redemption-requests.scheduler.unrequested-holders
feat 11:33:05 bcadc904
feat(infra): a partner can ask to move a cycle's payout date, and approving it is what executes
9 files · +537 · -19
- Infra
- CDK Stack (route-configs)
- DB 0212_epoch_schedule_change_requests.sql
- pool-mutation-registry.ts
- pool.ts
- schedule-revert-http.ts
- Lambda API
- pools.post.epoch-schedule
- pools.post.schedule-change-request
- schedule-change-requests.post.decide
- Other
- scripts/check-pool-mutations.mjs
fix 11:32:48 a13492b4
fix(infra): a cycle's demand is what it still owes, not every open request in the pool
5 files · +245 · -20
- Infra
- DB 0210_epoch_demand_is_per_cycle_remainder.sql
- DB schema.sql
- epoch-demand.test.ts
- epoch-demand.ts
- Lambda API
- redemption-requests.get.epoch-summary
fix 11:32:48 5d2db68c
fix(infra): the cutoff notice reads the cycle whose requests closed, not the one still taking them
3 files · +82 · -8
- Infra
- epoch-redemption.ts
- epoch-schedule.ts
- Lambda API
- redemption-requests.get.epoch-summary
fix 11:32:12 90c8515e
fix(infra): a settled cycle re-arms the funding-date confirmation, as its own comment already promised
1 files · +46
- Infra
- epoch.ts
refactor 11:31:05 e72ab98f
refactor(infra): the 25 schedulers and workers, and the credentials 168 handlers were about to carry
153 files · +15701 · -4351
- Infra
- activity-events.scheduler.archive.test.ts
- advance-pool-lifecycle.ts
- announce-epoch-demand.ts
- announce-epoch-window.ts
- apply-pending-nav.ts
- apply-review.ts
- archive-audit-log.ts
- build-params.ts
- config.ts
- context.kyc.ts
- context.report-fetch.ts
- context.report.ts
- context.ts
- deliver.ts
- deliveries.ts
- deploy-pool.ts
- derive-report.ts
- detect-exit-gate-blocks.ts
- drain-sbt-queue.ts
- epoch-schedule.ts
- epoch-settlement.ts
- eth-rpc.ts
- exit-gate.ts
- expire-nav-proposals.ts
- fetch-observations.ts
- fund-invites.post.create.test.ts
- funds.post.create.test.ts
- harness-refuses-to-guess.test.ts
- index.ts
- kyc-sweeps.ts
- kyc.scheduler.reconcile-sweep.test.ts
- kyc.scheduler.reverify-sweep.test.ts
- kyc.worker.apply-review.test.ts
- kyc.worker.mint-sbt.test.ts
- lifecycle.ts
- log-groups.ts
- logs.scheduler.retention.test.ts
- mailer.ts
- money-projections.ts
- nav-changes.scheduler.apply-pending.test.ts
- nav-changes.ts
- nav-proposals.scheduler.expire.test.ts
- nav-proposals.ts
- nav.ts
- normalize.ts
- not-composed.ts
- notifications.scheduler.sweep.test.ts
- notifications.worker.deliver.test.ts
- notifier.ts
- notify-stalled-yield.ts
- onchain.ts
- plane.ts
- pool-deploy.ts
- pool-lookups.ts
- pool-sweeps.ts
- pool-tvl-history.ts
- pools.scheduler.epoch-funding-date.test.ts
- pools.scheduler.epoch-window-open.test.ts
- pools.scheduler.governance-execute-due.test.ts
- pools.scheduler.lifecycle.test.ts
- pools.scheduler.tvl-snapshot.test.ts
- pools.scheduler.yield-due.test.ts
- pools.worker.deploy.test.ts
- provider.ts
- recompute-yield-due.ts
- reconcile-kyc.ts
- reconcile-yield-claimed.ts
- redemption-requests.scheduler.epoch-cutoff.test.ts
- redemption-requests.scheduler.epoch-execute.test.ts
- redemption-requests.scheduler.exit-gate-sweep.test.ts
- redemption-requests.scheduler.partner-funding.test.ts
- redemption-sweeps.ts
- remind-funding-date.ts
- remind-governance-execute.ts
- remind-partner-funding.ts
- remind-reverify.ts
- report.scheduler.derive.test.ts
- report.scheduler.fetch.test.ts
- requeue-stranded.ts
- scheduler.ts
- ses.ts
- set-log-retention.ts
- settle-epochs.ts
- snapshot-pool-tvl.ts
- sources.ts
- sqs.ts
- stalled-threshold.test.ts
- stalled-yield.ts
- supabase-projection.ts
- sweeps.ts
- wallets.ts
- worker.ts
- writedown.ts
- yield-aggregates.ts
- yield-reader.ts
- yield.scheduler.reconcile.test.ts
- yield.scheduler.stalled.test.ts
- Lambda API
- activity-events.scheduler.archive
- kyc.scheduler.reconcile-sweep
- kyc.scheduler.reverify-sweep
- kyc.worker.apply-review
- kyc.worker.mint-sbt
- logs.scheduler.retention
- nav-changes.scheduler.apply-pending
- nav-proposals.scheduler.expire
- notifications.scheduler.sweep
- notifications.worker.deliver
- pools.scheduler.epoch-funding-date
- pools.scheduler.epoch-window-open
- pools.scheduler.governance-execute-due
- pools.scheduler.lifecycle
- pools.scheduler.tvl-snapshot
- pools.scheduler.yield-due
- pools.worker.deploy
- redemption-requests.scheduler.epoch-cutoff
- redemption-requests.scheduler.epoch-execute
- redemption-requests.scheduler.exit-gate-sweep
- redemption-requests.scheduler.partner-funding
- report.scheduler.derive
- report.scheduler.fetch
- yield.scheduler.reconcile
- yield.scheduler.stalled
- Other
- scripts/check-layer-boundaries.mjs
- scripts/check-notification-producers.mjs
- scripts/check-onchain-units.mjs
- scripts/check-parity-coverage.mjs
- scripts/check-pool-mutations.mjs
refactor 11:29:00 c91a6382
refactor(infra): the 40 thin-write endpoints, checked by what they wrote and in what order
188 files · +19201 · -4003
- Infra
- act-on-delivery.ts
- admin-me.patch.update.test.ts
- admin-notification-preferences.put.update.test.ts
- admin-notifications.patch.read-all.test.ts
- admin-notifications.patch.read.test.ts
- admin-users.delete.test.ts
- admin-users.patch.permissions.test.ts
- admin-users.patch.update.test.ts
- admin-users.post.create.test.ts
- admin-users.post.invite.test.ts
- admin-users.ts
- admin-wallet.post.nonce.test.ts
- admin-wallet.post.verify.test.ts
- admin-wallets.ts
- audit.ts
- auth-nonces.ts
- authoring.test.ts
- authoring.ts
- authority.test.ts
- authority.ts
- body.ts
- config.test.ts
- config.ts
- consent.test.ts
- consent.ts
- context.ts
- deliveries.ts
- email-suppressions.delete.test.ts
- email-suppressions.post.create.test.ts
- email-suppressions.ts
- fund-invites.delete.test.ts
- fund-invites.post.accept.test.ts
- fund-invites.post.create.test.ts
- fund-invites.ts
- fund-members.delete.test.ts
- fund-members.patch.update.test.ts
- fund-members.post.create.test.ts
- fund-members.ts
- funds.delete.test.ts
- funds.patch.update.test.ts
- funds.post.create.test.ts
- funds.ts
- harness-refuses-to-guess.test.ts
- index.ts
- invite-admin.ts
- mailer.ts
- manage-accounts.ts
- manage-categories.ts
- manage-consent.ts
- manage-funds.ts
- manage-invites.ts
- manage-members.ts
- manage-suppressions.ts
- manage-updates.ts
- messages.ts
- mint-preview-token.ts
- notification-logs.post.escalate.test.ts
- notification-logs.post.resend.test.ts
- notification-preferences.put.update.test.ts
- notification-preferences.ts
- notification-read-state.ts
- notifications.patch.read-all.test.ts
- notifications.patch.read.test.ts
- notifier.ts
- platform-settings.put.update.test.ts
- platform-settings.ts
- pool-categories.delete.test.ts
- pool-categories.post.create.test.ts
- pool-categories.ts
- pool-consent.ts
- pool-follows.delete.test.ts
- pool-follows.post.create.test.ts
- pool-follows.ts
- pool-updates.delete.test.ts
- pool-updates.patch.update.test.ts
- pool-updates.post.create.test.ts
- pool-updates.ts
- pools.post.preview-token.test.ts
- primary-role.test.ts
- primary-role.ts
- provisioning.test.ts
- provisioning.ts
- qualification.test.ts
- qualification.ts
- read-state.ts
- register-email.ts
- request-nonce.ts
- response.ts
- route.ts
- save-preferences.ts
- save-settings.ts
- secrets.ts
- set-permissions.ts
- set-qualification.ts
- state.ts
- supabase-projection.ts
- update-profile.ts
- users.patch.qualification.test.ts
- users.post.email.test.ts
- users.ts
- verify-wallet.ts
- window-subscriptions.delete.test.ts
- window-subscriptions.post.create.test.ts
- window-subscriptions.ts
- writable-fields.test.ts
- writable-fields.ts
- Lambda API
- admin-me.patch.update
- admin-notification-preferences.put.update
- admin-notifications.patch.read
- admin-notifications.patch.read-all
- admin-users.delete
- admin-users.patch.permissions
- admin-users.patch.update
- admin-users.post.create
- admin-users.post.invite
- admin-wallet.post.nonce
- admin-wallet.post.verify
- email-suppressions.delete
- email-suppressions.post.create
- fund-invites.delete
- fund-invites.post.accept
- fund-invites.post.create
- fund-members.delete
- fund-members.patch.update
- fund-members.post.create
- funds.delete
- funds.patch.update
- funds.post.create
- notification-logs.post.escalate
- notification-logs.post.resend
- notification-preferences.put.update
- notifications.patch.read
- notifications.patch.read-all
- platform-settings.put.update
- pool-categories.delete
- pool-categories.post.create
- pool-follows.delete
- pool-follows.post.create
- pool-updates.delete
- pool-updates.patch.update
- pool-updates.post.create
- pools.post.preview-token
- users.patch.qualification
- users.post.email
- window-subscriptions.delete
- window-subscriptions.post.create
- Other
- scripts/check-layer-boundaries.mjs
refactor 11:29:00 e64b8821
refactor(infra): the 37 read endpoints become declarations, checked against the code they replace
182 files · +17076 · -3817
- Infra
- activity-events.get.counts.test.ts
- activity-events.get.list.test.ts
- activity-events.ts
- actors.ts
- admin-notification-preferences.get.list.test.ts
- admin-notifications.get.list.test.ts
- admin-signer-balances.get.list.test.ts
- admin-user-wallets.get.list.test.ts
- admin-user-wallets.ts
- admin-users.get.list.test.ts
- admin-users.ts
- context.ts
- count.ts
- deposits.get.counts.test.ts
- deposits.get.list.test.ts
- deposits.ts
- detail.ts
- email-suppressions.get.list.test.ts
- email-suppressions.ts
- epoch-lookup.ts
- expiry.test.ts
- expiry.ts
- freeze-windows.test.ts
- freeze-windows.ts
- fund-invites.get.list.test.ts
- fund-invites.ts
- fund-linked-pools.ts
- fund-members.get.list.test.ts
- fund-members.ts
- funds.get.list.test.ts
- funds.ts
- gas-reader.ts
- harness-refuses-to-guess.test.ts
- ids.test.ts
- ids.ts
- index.ts
- investor-activity.get.list.test.ts
- investor-activity.ts
- kyc-logs.get.list.test.ts
- kyc-logs.ts
- list-handler.ts
- list-pool-updates.ts
- list-subscribed-pools.ts
- list-tvl-history.ts
- list.ts
- messages.ts
- nav-changes.get.list.test.ts
- nav-changes.ts
- nav-proposals.get.list.test.ts
- nav-proposals.ts
- notification-logs.get.list.test.ts
- notification-logs.ts
- notification-preferences.get.list.test.ts
- notification-preferences.ts
- notifications.get.list.test.ts
- notifications.ts
- pool-aggregates.ts
- pool-categories.get.list.test.ts
- pool-categories.ts
- pool-documents.get.list.test.ts
- pool-follows.get.list.test.ts
- pool-read.test.ts
- pool-read.ts
- pool-subsidiary.ts
- pool-tvl-history.get.list.test.ts
- pool-tvl-history.ts
- pool-updates.get.list.test.ts
- pool-updates.ts
- pools.get.list.test.ts
- pools.ts
- portfolio-positions.get.list.test.ts
- portfolio-positions.ts
- position-yield.ts
- principal.ts
- query-parts.ts
- read-invites.ts
- read-signer-balances.test.ts
- read-signer-balances.ts
- redemption-epochs.ts
- redemption-requests.get.counts.test.ts
- redemption-requests.get.list.test.ts
- redemption-requests.ts
- require.ts
- response.ts
- route.ts
- run-count.ts
- run-detail.ts
- run-list.ts
- supabase-projection.ts
- underlying-assets.get.list.test.ts
- users.get.counts.test.ts
- users.get.list.test.ts
- users.ts
- uuid.test.ts
- uuid.ts
- wallets.get.list.test.ts
- wallets.ts
- window-subscriptions.get.list.test.ts
- window-subscriptions.ts
- yield-claims.get.list.test.ts
- yield-claims.ts
- yield-distributions.get.counts.test.ts
- yield-distributions.get.list.test.ts
- yield-distributions.ts
- yield-due-rows.ts
- Lambda API
- activity-events.get.counts
- activity-events.get.list
- admin-notification-preferences.get.list
- admin-notifications.get.list
- admin-signer-balances.get.list
- admin-user-wallets.get.list
- admin-users.get.list
- deposits.get.counts
- deposits.get.list
- email-suppressions.get.list
- fund-invites.get.list
- fund-members.get.list
- funds.get.list
- investor-activity.get.list
- kyc-logs.get.list
- nav-changes.get.list
- nav-proposals.get.list
- notification-logs.get.list
- notification-preferences.get.list
- notifications.get.list
- pool-categories.get.list
- pool-documents.get.list
- pool-follows.get.list
- pool-tvl-history.get.list
- pool-updates.get.list
- pools.get.list
- portfolio-positions.get.list
- redemption-requests.get.counts
- redemption-requests.get.list
- underlying-assets.get.list
- users.get.counts
- users.get.list
- wallets.get.list
- window-subscriptions.get.list
- yield-claims.get.list
- yield-distributions.get.counts
- yield-distributions.get.list
- Other
- scripts/check-layer-boundaries.mjs
- scripts/check-parity-coverage.mjs
feat 11:29:00 eb601345
feat(infra): Wave 0 — the kernel, and a harness that can compare old against new
22 files · +1918 · -5
- Infra
- errors.ts
- harness-drives-legacy.test.ts
- harness-refuses-to-guess.test.ts
- index.ts
- list-followed-pools.ts
- list.ts
- messages.ts
- notifications.get.list.test.ts
- notifications.ts
- package.json
- pool-follows.get.list.test.ts
- pool-follows.ts
- principal.ts
- response.ts
- route.ts
- run-list.ts
- state.ts
- supabase-projection.ts
- tsconfig.json
- Other
- scripts/check-layer-boundaries.mjs
- scripts/check-parity-coverage.mjs
- scripts/check-pool-mutations.mjs
docs 11:29:00 bb564714
docs(infra): the lock-up and the term stopped counting from where these comments say
7 files · +60 · -41
- Lambda API
- pools.patch.update
- pools.post.create
- pools.post.lifecycle
- pools.scheduler.lifecycle
- pools.worker.deploy
- redemption-requests.get.epoch-summary
- redemption-requests.post.create
🔵 jy/product
docs 17:05:04 06332111
docs(admin): re-anchor the holder-gate reasoning after infra moved out from under it
2 files · +10 · -4
- Admin
- yield-calc-breakdown
- Admin API
- yield-due-row
test 16:47:18 4ba6931c
test(web): the pool-mapper fixture type-checks its overrides again
1 files · +2 · -2
- Investor Web API
- pools.test
docs 16:42:47 4ee2c84d
docs(web): the receive-line comment still described the mechanism it had just stopped using
1 files · +10 · -5
- Investor Web
- portfolio
refactor 16:42:20 a6da6d5d
refactor(web): the pool mapper can be tested, because the network layer moved out from under it
4 files · +198 · -28
- Investor Web API
- pools
- pools.fetch
- pools.test
- use-pools
fix 16:30:37 e76cd468
fix(web): a winding-down pool was told it redeems at once, on the screen before the request
2 files · +41 · -8
- Investor Web
- Widget (PCWidgets)
- portfolio
docs 15:46:09 f8dd4863
docs: three facts the code had already overtaken, and two the first pass got wrong
3 files · +114 · -24
- Docs
- 11-db-schema.md
- 17-changelog.md
- Smart Contract
- sepolia.md
feat 15:45:48 d0a5ba28
feat(web,admin): interest is a rate times time, and six screens stopped describing the old model
36 files · +1149 · -195
- Admin
- Route (pool-create)
- Route (yield)
- configuration-tab
- create-distribution-dialog
- due-now-card
- editorial
- index
- partner-owes-block
- step-basics
- step-redemption
- step-structure
- step-terms
- types
- validation
- yield-calc-breakdown
- Admin API
- pools
- yield-due-overdue.test
- yield-due-row
- Investor Web
- Route (dashboard)
- Route (pool.$id)
- Route (portfolio)
- Route (settings)
- Route (styleguide.portfolio)
- Widget (PCWidgets)
- Widget (PortfolioHero)
- Widget (position-card)
- Widget (reinvest-confirm-dialog)
- Widget (withdraw-dialog)
- position-escrow
- position-escrow.test
- redemption-state
- use-reinvest-flow
- Investor Web API
- portfolio-position
- portfolio-position.test
- portfolio-positions
- Investor Web UI
- RedeemModal
docs 11:01:47 ba6570fe
docs: record v3-148 and the four front-end rounds of 2026-08-26
2 files · +111 · -2
- Docs
- 14-decisions.md
- 17-changelog.md
2026-08-26 (Wed)
🟢 ch/product
No activity
🔵 jy/product
fix 17:24:02 8e0f000d
fix(admin): the review step shows the one rate that can never be corrected
1 files · +19
- Admin
- step-compliance
fix 17:09:14 0d280e23
fix(admin): the create wizard asks for the accrual rate the backend requires
6 files · +49 · -1
- Admin
- Route (pool-create)
- payload
- step-terms
- types
- validation
- Admin API
- pools
fix 16:19:11 2a92d07b
fix(web): a matured pool still owes its last coupons, and the client stopped hiding them
2 files · +35 · -5
- Investor Web
- Widget (PCWidgets)
- Investor Web API
- pools
fix 16:18:01 d964059d
fix(web): the redeem modal had the escrow backwards, and so did the comments defending it
2 files · +28 · -7
- Investor Web
- status
- Investor Web UI
- RedeemModal
fix 16:18:01 abff955c
fix(web): a late distribution says how late it is, instead of "0 days"
3 files · +45 · -30
- Investor Web
- Route (pool.$id)
- due-countdown.test
- formatters
refactor 12:50:57 2bc93a63
refactor: the cycle row builds each half through a named function, and an investor pays for neither the other one's queries
1 files · +38 · -36
- Lambda API
- pools.get.repayment-cycles
fix 12:50:02 dc299a61
fix(web): the liquidity timeline reads the exit route instead of deriving it a second time
3 files · +42 · -12
- Investor Web
- Widget (PCWidgets)
- portfolio-liquidity
- portfolio-liquidity.test
fix 12:46:03 41e4566f
fix: a holder waiting on a cycle had their whole position read as an exit
6 files · +99 · -16
- Admin API
- pools
- Infra
- repayment-cycle-viewer.test.ts
- Investor Web
- Route (pool.$id)
- Widget (repayment-cycles-card)
- repayment-cycle
- Lambda API
- pools.get.repayment-cycles
fix 12:44:14 5b777a74
fix(web): a maturity that will not parse blanks a label instead of taking the page down
5 files · +50 · -9
- Investor Web
- Widget (PCWidgets)
- Widget (epoch-countdown)
- epoch-position-state
- redemption-state
- redemption-state.test
feat 12:35:28 0c1706f5
feat: a holder's repayment cycle says their own coupon and whether they ever asked to be repaid
11 files · +689 · -2
- Docs
- 14-decisions.md
- 17-changelog.md
- Infra
- repayment-cycle-viewer.test.ts
- repayment-cycle-viewer.ts
- Investor Web
- Widget (index)
- Widget (repayment-cycles-card)
- repayment-cycle
- Investor Web API
- index
- repayment-cycles
- use-repayment-cycles
- Lambda API
- pools.get.repayment-cycles
feat 12:33:46 4c6bb348
feat(web): maturity is when a repayment pool starts paying, not when it is finished
22 files · +625 · -111
- Investor Web
- PoolBrowseCard
- Route (pool.$id)
- Route (styleguide.epoch-states)
- Widget (PCWidgets)
- Widget (epoch-countdown)
- Widget (epoch-position-panel)
- Widget (invest-sidebar)
- Widget (overview-tab)
- Widget (pool-header-card)
- Widget (position-card)
- Widget (risk-disclosure)
- Widget (withdraw-dialog)
- epoch-position-state
- portfolio
- portfolio-liquidity
- portfolio-liquidity.test
- portfolio-stats
- redemption-state
- redemption-state.test
- status
- Investor Web UI
- PoolStatusAlert
- RedeemModal
fix 12:11:07 6625f253
fix(admin): a pool that has never settled is not offered a settlement to postpone
1 files · +47 · -22
- Admin
- epoch-cycle-panel
feat 12:09:29 d084398f
feat(admin): the Fund dialog says whether the figure is finished, and repeats the date it is due
7 files · +131 · -3
- Admin
- Route (preview.redemptions)
- Route (redemptions)
- epoch-cycle-panel
- fund-dialog
- fund-epoch-cycle-button
- redemption-funding
- redemption-obligations-nodes.test
fix 12:00:14 fcf90af4
fix(admin): the cycle a transfer credits is the one being settled, not the one taking requests
19 files · +780 · -169
- Admin
- Route (fund-detail)
- Route (redemptions)
- build-epoch-summaries
- build-epoch-summaries.test
- epoch-cycle-aside
- epoch-cycle-panel
- epoch-management-section
- epoch-phase
- epoch-phase.test
- funding-cell
- funding-cell.test
- funding-load
- funding-load-card
- funding-load.test
- overview-tab
- redemption-funding
- redemption-obligations-nodes.test
- repayment-schedule-card
- Admin API
- redemption-requests
2026-08-25 (Tue)
🟢 ch/product
fix 00:37:49 99eb884e
fix: @aset/types rebuilds itself on install, so a stack synth does not need to remember
1 files · +2 · -1
- Other
- packages/types/package.json
docs 00:25:49 ac4bdb21
docs(contract): the 2026-08-25 round, read off the chain rather than off the receipts
1 files · +101 · -55
- Smart Contract
- sepolia.md
fix 00:25:30 e356e8aa
fix: @aset/types ships JavaScript, so the compiled tests can actually load it
7 files · +47 · -13
- Admin
- package
- Infra
- package.json
- Investor Web
- package
- Other
- packages/types/package.json
- packages/types/tsconfig.json
- pnpm-lock.yaml
- qa-agent/package.json
🔵 jy/product
feat 18:33:20 adcbb9c4
feat: after maturity the coupon rides the repayment cycle, and the contract's promise layer gets its first writer
37 files · +2358 · -96
- Admin
- build-epoch-summaries
- cycle-axis-rows
- cycle-yield-side
- epoch-cycle-panel
- epoch-management-section
- repayment-cycle
- repayment-schedule-card
- repayment-stage
- Admin API
- pools
- use-pools
- Docs
- 11-db-schema.md
- 13-operations.md
- 14-decisions.md
- 17-changelog.md
- Infra
- CDK Stack (api-stack)
- activity.ts
- due-row-math.ts
- epoch-redemption.ts
- handler-roles.ts
- index.ts
- next-due.ts
- repayment-cycle-amounts.test.ts
- repayment-cycle-amounts.ts
- run-distribution.ts
- sync-onchain-yield-due.ts
- yield-due-date.ts
- yield-interval.test.ts
- yield-interval.ts
- yield-period.test.ts
- yield-period.ts
- yield-schedule.ts
- Lambda API
- pools.get.repayment-cycles
- pools.patch.update
- pools.scheduler.yield-due
- yield-distributions.post.create
- yield-distributions.post.distribute
- Other
- CLAUDE.md
style 18:32:49 e63ce15f
style: the open-ended lock-up error reads as one sentence, so the copy guard passes
1 files · +2 · -2
- Admin
- step-redemption
refactor 16:32:26 205443d5
refactor(web): one countdown, the maturity the backend means, and two fields that were never there
9 files · +190 · -66
- Investor Web
- Route (pool.$id)
- Route (styleguide.portfolio)
- Widget (invest-sidebar)
- Widget (overview-tab)
- Widget (withdraw-dialog)
- due-countdown.test
- formatters
- Investor Web API
- pools
- Investor Web UI
- RedeemModal
docs 15:47:32 ea29fb6c
docs: record v3-146 — a lock-up needs an anchor, so one date freezes and one pool shape loses it
4 files · +62 · -7
- Docs
- 04-pool-models.md
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
docs 15:47:18 89a4523c
docs: the contract refuses the over-long lock-up, it does not clamp it
2 files · +27 · -26
- Infra
- lockup-within-term.ts
- Lambda API
- pools.worker.deploy
fix 15:47:04 8b628a47
fix: the maturity-model select saved nothing, because PATCH was never told the field exists
5 files · +105 · -39
- Admin
- payload
- Infra
- pool-field-validation.test.ts
- pool-field-validation.ts
- Lambda API
- pools.patch.update
- pools.post.create
feat 15:35:14 243b0348
feat: the offering close freezes once it anchors a lock-up, and open-ended pools carry none
15 files · +466 · -158
- Admin
- Route (pool-edit)
- lockup
- lockup.test
- payload
- permissions
- permissions.test
- step-redemption
- validation
- Infra
- lockup-anchor.test.ts
- pool-field-validation.test.ts
- pool-field-validation.ts
- Lambda API
- pools.patch.update
- Other
- packages/types/src/index.ts
2026-08-24 (Mon)
🟢 ch/product
docs 23:52:22 c0de835e
docs: which lock-up anchor applies is a property of the pool's implementation
2 files · +5 · -2
- Docs
- 04-pool-models.md
- 14-decisions.md
feat 23:52:22 91c10995
feat(infra): the offering close is mirrored back from the chain, as a day
3 files · +47
- Infra
- config-mirrors.test.ts
- config-mirrors.ts
- events.ts
feat 23:52:00 b3da4a6a
feat(infra): the offering close reaches the chain with the rest of the redemption terms
5 files · +280 · -8
- Infra
- create-pool.ts
- deploy-payload.ts
- lockup-within-term.test.ts
- lockup-within-term.ts
- Lambda API
- pools.worker.deploy
feat 23:51:43 ba8b7333
feat(contract): the lock-up's three dates are one decision, made when the pool is created
27 files · +722 · -129
- Contract Deploy
- CreatePool.s
- DeployV3Sepolia.s
- Contract Test
- EscrowYieldRule.t
- GoldenFixtures.t
- LockupAnchor.t
- MaturityAnchorRepro.t
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFactory.t
- PlatformPoolFlows.t
- PlatformPoolInvariant.t
- PlatformPoolNonCustodial.t
- PlatformPoolPenaltyInvariant.t
- PlatformPoolYieldInvariant.t
- PolicyConformance.t
- SequenceDiagramVerification.t
- Other
- packages/money-contract/src/generated/platform-pool-factory.ts
- packages/money-contract/src/generated/platform-pool.ts
- packages/money-domain/fixtures/redemption-instant.json
- packages/money-domain/src/tests/redemption-math.test.ts
- Smart Contract
- GovernanceLib
- PlatformPoolBase
- PlatformPoolStorage
- PlatformPoolTypes
- PoolCommonLib
- PoolConfigLib
- RedemptionLib
🔵 jy/product
refactor 16:05:11 ee44e5e2
refactor: one definition of the offering-close day rule
9 files · +114 · -116
- Admin
- Route (pool-edit)
- offering
- step-compliance
- validation
- Infra
- offering-close-day.test.ts
- offering-close-day.ts
- Lambda API
- pools.patch.update
- pools.post.create
- Other
- packages/types/src/index.ts
fix 15:58:59 7327cd60
fix: the offering-close day rule reaches every writer, not just create
8 files · +234 · -11
- Admin
- Route (pool-edit)
- offering
- offering.test
- step-compliance
- Infra
- offering-close-day.test.ts
- offering-close-day.ts
- Lambda API
- pools.patch.update
- pools.post.create
feat 15:09:27 9fda686c
feat(admin): refuse an offering close that lands on the 29th to 31st
8 files · +144 · -1
- Admin
- Route (pool-create)
- Route (preview.pool-create)
- offering
- offering.test
- step-compliance
- validation
- Docs
- 14-decisions.md
feat 14:44:14 73cd57e2
feat: the yield grid counts from the offering close too
9 files · +131 · -45
- Admin
- offering
- offering.test
- Docs
- 11-db-schema.md
- 14-decisions.md
- Infra
- DB 0209_yield_anchor_is_the_offering_close.sql
- DB schema.sql
- yield-schedule.ts
- Lambda API
- pools.post.create
- pools.scheduler.yield-due
fix 14:30:21 87959ab3
fix(admin): the repayment plan hangs off the close too, and one derivation of it
13 files · +252 · -20
- Admin
- Route (preview.pool-create)
- amortization
- amortization-schedule-block
- epoch-schedule
- lockup
- lockup.test
- offering
- offering.test
- payload
- step-redemption
- validation
- Docs
- 14-decisions.md
- Lambda API
- pools.worker.deploy
fix 14:04:19 d3a3fcea
fix(admin): the yield ticks go back on the anchor the backend actually uses
3 files · +43 · -19
- Admin
- offering
- offering.test
- Docs
- 14-decisions.md
docs 13:13:46 ce33f037
docs: record that the term is measured from the offering close (v3-145)
6 files · +63 · -6
- Docs
- 04-pool-models.md
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
- 24-field-governance.md
- Other
- CLAUDE.md
fix 13:11:45 afe7a16b
fix(web): the liquidity verdict uses the instant it was given
2 files · +12 · -1
- Investor Web
- portfolio-liquidity
- redemption-state
feat 13:10:06 a27feba0
feat: the term is counted from the offering close, not from the deploy
26 files · +465 · -501
- Admin
- Route (pool-create)
- Route (pool-edit)
- Route (preview.pool-create)
- deploy-dates
- deploy-dates.test
- lockup
- lockup.test
- offering
- offering.test
- pool-timeline-bar
- step-redemption
- validation
- Infra
- deploy-payload.ts
- next-due.ts
- pool-maturity.test.ts
- pool-maturity.ts
- reopen-offering-close.test.ts
- reopen-offering-close.ts
- run-distribution.ts
- Lambda API
- pools.post.create
- pools.post.lifecycle
- pools.scheduler.yield-due
- pools.worker.deploy
- yield-distributions.post.create
- yield-distributions.post.distribute
docs 11:28:08 61f73f05
docs: the accrual round was already on chain, and I recorded it as pending
6 files · +10 · -10
- Docs
- 07-redemption.md
- 10-status-machines.md
- 11-db-schema.md
- 14-decisions.md
- 16-timeline.md
- 17-changelog.md
2026-08-21 (Fri)
🟢 ch/product
docs 17:26:31 4c03fa70
docs(contract): the 2026-08-21 redeploy, and one explanation removed for lack of evidence
1 files · +115 · -49
- Smart Contract
- sepolia.md
feat 16:55:05 0231a7ce
feat(infra): the distribution promise deploys from the date the pool already seeds
4 files · +108
- Infra
- deploy-payload-yield-promise.test.ts
- deploy-payload.ts
- Lambda API
- pools.post.create
- pools.worker.deploy
fix 16:48:01 dc6df0be
fix(infra): the overdue-yield condition drops a dead true
1 files · +1 · -4
- Lambda API
- pools.scheduler.yield-due
fix 16:47:53 fa7c79cc
fix(infra): the off-chain freeze mirror follows the exit anchor, or the fix never reaches anyone
17 files · +264 · -35
- Docs
- 11-db-schema.md
- Infra
- DB 0208_pool_exit_window_anchor.sql
- DB schema.sql
- create-pool.ts
- freeze-state.test.ts
- freeze-state.ts
- freeze.ts
- Lambda API
- pools.get.eligibility
- pools.get.list
- pools.post.freeze
- pools.post.pause
- pools.scheduler.lifecycle
- redemption-requests.post.create
- redemption-requests.scheduler.epoch-execute
- redemption-requests.scheduler.partner-funding
- yield-claims.post.create
- yield.post.reinvest
feat 16:47:21 d2add4d5
feat(contract): a re-freeze cannot cage holders, and the distribution promise is on chain
26 files · +750 · -43
- Contract Deploy
- CreatePool.s
- DeployV3Sepolia.s
- Contract Test
- EscrowYieldRule.t
- GoldenFixtures.t
- LifecyclePolicy.t
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFactory.t
- PlatformPoolFlows.t
- PlatformPoolInvariant.t
- PlatformPoolNonCustodial.t
- PlatformPoolPenaltyInvariant.t
- PlatformPoolYieldInvariant.t
- PolicyConformance.t
- SequenceDiagramVerification.t
- Other
- packages/money-contract/src/generated/platform-pool-factory.ts
- packages/money-contract/src/generated/platform-pool.ts
- Smart Contract
- GovernanceLib
- LifecyclePolicy
- PlatformPool
- PlatformPoolBase
- PlatformPoolFactory
- PlatformPoolStorage
- PlatformPoolTypes
- PoolCommonLib
- YieldLib
docs 15:00:26 431858d1
docs(contract): the accrual driver is on chain, and the bytecode proves which source
1 files · +143 · -81
- Smart Contract
- sepolia.md
fix 14:48:10 9fc51192
fix(infra): the accrual-rate migration takes the next free number, since 0205 was taken
4 files · +30 · -30
- Docs
- 11-db-schema.md
- Infra
- DB 0205_pools_accrual_rate_bps.sql
- DB 0207_pools_accrual_rate_bps.sql
- DB schema.sql
docs 14:45:35 4c3cae75
docs(contract): sepolia.md records what is deployed, and nothing else
1 files · +160 · -522
- Smart Contract
- sepolia.md
feat 14:43:53 f89d265b
feat(infra): the Yield queue states what the contract is owed, beside what the cadence guessed
5 files · +122 · -5
- Infra
- due-row-math.test.ts
- due-row-math.ts
- due-rows.ts
- Lambda API
- pools.get.list
- yield-distributions.get.list
feat 14:42:56 e298858d
feat(infra): a holder's yield is asked of the pool, not reconstructed from an accumulator
21 files · +866 · -292
- Docs
- 11-db-schema.md
- Infra
- DB 0206_retire_offchain_yield_accumulator.sql
- DB schema.sql
- abi-drift.test.ts
- decode.ts
- diff.ts
- escrow-accrual.test.ts
- escrow-accrual.ts
- fold.test.ts
- fold.ts
- holder-yield.ts
- index.ts
- read.ts
- run-distribution.ts
- write.ts
- yield.ts
- Lambda API
- portfolio-positions.get.list
- users.get.investor-detail
- yield-distributions.get.investors
- yield.post.reinvest
- yield.scheduler.reconcile
docs 14:42:56 6a54451e
docs: escrowed LP earns, and the pages that said otherwise were the shipped rule
10 files · +87 · -44
- Docs
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09a-custody.md
- 11-db-schema.md
- 14-decisions.md
- 23-money-path.md
- 26-glossary.md
feat 14:42:56 214ed1da
feat(infra): the backend stops stating what holders are owed, and asks the pool
16 files · +289 · -109
- Infra
- DB 0205_pools_accrual_rate_bps.sql
- DB schema.sql
- create-pool.ts
- decode.ts
- deploy-payload.ts
- engine.ts
- event-coverage.test.ts
- events.ts
- fold.ts
- index.ts
- run-distribution.ts
- yield-distribution.ts
- yield.ts
- Lambda API
- pools.post.create
- pools.post.lifecycle
- pools.worker.deploy
feat 14:42:56 dfb09563
feat(contract): yield accrues with time, and escrow stops being how it is stopped
30 files · +2931 · -892
- Contract Deploy
- CreatePool.s
- DeployV3Sepolia.s
- Contract Test
- EscrowAccrualRecognition.t
- EscrowYieldRepro.t
- EscrowYieldRule.t
- GoldenFixtures.t
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFactory.t
- PlatformPoolFlows.t
- PlatformPoolInvariant.t
- PlatformPoolNonCustodial.t
- PlatformPoolPenaltyInvariant.t
- PlatformPoolYieldInvariant.t
- PolicyConformance.t
- SequenceDiagramVerification.t
- YieldAccrualPolicy.t
- Other
- packages/money-contract/src/generated/platform-pool-factory.ts
- packages/money-contract/src/generated/platform-pool.ts
- packages/money-domain/fixtures/redemption-instant.json
- packages/money-domain/src/events.ts
- Smart Contract
- FixedYieldEngine
- PlatformPool
- PlatformPoolBase
- PlatformPoolFactory
- PlatformPoolStorage
- PlatformPoolTypes
- RedemptionLib
- YieldAccrualPolicy
- YieldLib
refactor 14:42:56 2eb521a8
refactor(contract): the pool splits into a mode-independent base and an accrual driver
35 files · +2302 · -2135
- Contract Deploy
- CreatePool.s
- DeployPoolImplementation.s
- DeployV3Sepolia.s
- Contract Test
- EscrowYieldRepro.t
- GoldenFixtures.t
- LifecyclePolicy.t
- MaturityAnchorRepro.t
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFactory.t
- PlatformPoolFlows.t
- PlatformPoolInvariant.t
- PlatformPoolNonCustodial.t
- PlatformPoolPenaltyInvariant.t
- PlatformPoolYieldInvariant.t
- PolicyConformance.t
- RedemptionInstantPolicy.t
- SequenceDiagramVerification.t
- Infra
- create-pool.ts
- Other
- packages/money-contract/src/generated/platform-pool-factory.ts
- packages/money-contract/src/generated/platform-pool.ts
- Smart Contract
- DepositPolicy
- GovernanceLib
- LifecyclePolicy
- PlatformPool
- PlatformPoolBase
- PlatformPoolFactory
- PlatformPoolStorage
- PlatformPoolTypes
- PoolConfigLib
- PoolLedgerLib
- RedemptionEpochPolicy
- RedemptionInstantPolicy
- RedemptionLib
- YieldLib
fix 11:58:14 3edf75b9
fix(contract): reopening a closed offering reaches the chain
3 files · +61 · -13
- Contract Test
- LifecyclePolicy.t
- PlatformPool.t
- Smart Contract
- LifecyclePolicy
🔵 jy/product
fix 22:45:32 2e065f3e
fix(admin): the edit wizard reads the pool's own lock-up anchor
3 files · +25 · -7
- Admin
- Route (pool-edit)
- step-redemption
- Infra
- redemption-eligibility.ts
feat 22:23:08 8e6a716e
feat: refuse a reopen on a pool-wide lock-up, and say which anchor applies
9 files · +237 · -12
- Admin
- pool-controls
- Docs
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
- Infra
- lockup-anchor.test.ts
- Investor Web
- Widget (risk-disclosure)
- Lambda API
- pools.post.close
- Other
- CLAUDE.md
- packages/types/src/index.ts
fix 22:08:00 ca4f1052
fix(infra): the redemption gate reads the pool's lock-up anchor
6 files · +72 · -12
- Investor Web
- Widget (invest-sidebar)
- portfolio-liquidity
- redemption-state
- redemption-state.test
- Lambda API
- redemption-requests.post.create
- Other
- packages/types/src/index.ts
feat 21:50:58 f5b40afe
feat(web): the lock-up anchor follows the pool implementation
13 files · +261 · -28
- Infra
- create-pool.ts
- Investor Web
- Widget (PCWidgets)
- Widget (invest-sidebar)
- Widget (position-card)
- Widget (withdraw-dialog)
- portfolio-liquidity
- portfolio-stats
- redemption-state
- redemption-state.test
- Investor Web API
- pools
- Investor Web UI
- RedeemModal
- Other
- packages/money-domain/src/policies/redemption.ts
- packages/types/src/index.ts
fix 18:53:05 054b5d58
fix(admin): the wizard describes the pool-wide lock-up
5 files · +50 · -34
- Admin
- lockup
- pool-timeline-bar
- step-redemption
- validation
docs 18:48:49 9dbf4778
docs: v3-131 (3) shipped, and the status cells were the half that had not caught up
7 files · +63 · -16
- Docs
- 05-investment-lifecycle.md
- 07-redemption.md
- 10-status-machines.md
- 14-decisions.md
- 16-timeline.md
- 17-changelog.md
- 23-money-path.md
fix 18:36:25 c5ce8ea8
fix(admin): say the lock-up date the way a person would
1 files · +23 · -3
- Admin
- pool-timeline-bar
feat 18:22:58 40527cfb
feat(admin): the timeline shows when the lock-up is cleared
2 files · +33
- Admin
- pool-timeline-bar
- step-redemption
refactor 18:09:02 f2dd4bf1
refactor(admin,ds): six radii between the named steps
2 files · +4 · -4
- Admin
- editorial
- Other
- packages/ds-editorial/src/showcase.tsx
fix 18:09:02 6b510daa
fix(web): the app shell and the standalone pages sit on one background again
4 files · +4 · -4
- Investor Web
- Route (app-layout)
- Widget (app-shell)
- Investor Web UI
- DarkPageLayout
- Footer
feat 18:08:43 414a8a3c
feat(landing): the last five hexes and one duplicated clamp get names
6 files · +22 · -7
- Other
- landing/app/widgets/about/why-we-build.tsx
- landing/app/widgets/investors/risks.tsx
- landing/app/widgets/investors/verify.tsx
- landing/app/widgets/trust/money-path.tsx
- landing/app/widgets/trust/onchain-data.tsx
- landing/global.css
fix 18:08:43 cf0e4e75
fix(admin): the fourth orange joins the warning ramp
2 files · +3 · -3
- Admin
- amortization-schedule-block
- epoch-schedule-block
fix 18:03:57 dc0ebc72
fix(pools): the reopen dialog asks wherever the handler requires, and stops looking destructive
3 files · +75 · -21
- Admin
- pool-controls
- Infra
- reopen-offering-close.test.ts
- reopen-offering-close.ts
refactor 17:58:14 2454ec26
refactor(web): four tokens that were spelled as hex
2 files · +4 · -4
- Investor Web
- Widget (header)
- Widget (withdraw-dialog)
fix 17:56:30 2532f382
fix(admin): the lock-up the LAST investor serves, not the one the field shows
6 files · +244 · -2
- Admin
- Route (pool-edit)
- lockup
- lockup.test
- step-redemption
- validation
refactor 17:52:07 2bda5472
refactor(landing): all of landing's negative tracking is one em value now
14 files · +32 · -32
- Other
- landing/app/widgets/about/structure.tsx
- landing/app/widgets/about/team.tsx
- landing/app/widgets/fund-managers/hero.tsx
- landing/app/widgets/investors/faq.tsx
- landing/app/widgets/investors/hero.tsx
- landing/app/widgets/investors/invest-terms.tsx
- landing/app/widgets/investors/returns-redemption.tsx
- landing/app/widgets/investors/risks.tsx
- landing/app/widgets/investors/verify.tsx
- landing/app/widgets/landing/fund-managers.tsx
- landing/app/widgets/landing/independent-data.tsx
- landing/app/widgets/trust/immutable.tsx
- landing/app/widgets/trust/onchain-data.tsx
- landing/app/widgets/trust/pillars.tsx
fix 17:42:21 92acadf4
fix(pools): a reopen says until when, because the alternative answer was forever
6 files · +380 · -26
- Admin
- pool-controls
- status
- Admin API
- pools
- Infra
- reopen-offering-close.test.ts
- reopen-offering-close.ts
- Lambda API
- pools.post.close
fix 17:41:55 5bd24364
fix(web,admin): Tailwind gray-200 was shipping as a hex in both apps' toasts
3 files · +3 · -3
- Admin
- root
- Investor Web
- Widget (fund-data-tab)
- root
refactor 17:19:15 17fc496b
refactor(admin,ds,landing): an unnamed radius and two long-hand rounded-full
6 files · +8 · -8
- Admin
- amortization-schedule-block
- editorial
- step-compliance
- Other
- landing/app/shared/ui/pill-button.tsx
- packages/ds-editorial/src/patterns.tsx
feat 17:17:38 55006743
feat(ds): small prose gets a line-height, and eleven overrides stop restating the token
12 files · +35 · -19
- Admin
- Route (login)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- amortization-schedule-block
- editorial
- field-lock
- step-basics
- step-compliance
- Other
- packages/ds-editorial/src/showcase.tsx
- packages/ds-editorial/src/tokens.css
refactor 17:17:37 4e648040
refactor(landing): the display headlines take tracking that scales with them
17 files · +17 · -17
- Other
- landing/app/widgets/about/hero.tsx
- landing/app/widgets/about/why-we-build.tsx
- landing/app/widgets/fund-managers/already-onboarded.tsx
- landing/app/widgets/fund-managers/apply-cta.tsx
- landing/app/widgets/fund-managers/get-started.tsx
- landing/app/widgets/fund-managers/hero.tsx
- landing/app/widgets/investors/hero.tsx
- landing/app/widgets/investors/how-you-invest.tsx
- landing/app/widgets/landing/final-cta.tsx
- landing/app/widgets/landing/hero.tsx
- landing/app/widgets/landing/safeguards.tsx
- landing/app/widgets/landing/what-you-invest-in.tsx
- landing/app/widgets/site/closing-frame.tsx
- landing/app/widgets/trust/hero.tsx
- landing/app/widgets/trust/immutable.tsx
- landing/app/widgets/trust/money-path.tsx
- landing/app/widgets/trust/onchain-data.tsx
refactor 17:09:44 c84d1b50
refactor(landing): six hand-rolled type ladders become two tokens
7 files · +42 · -8
- Other
- landing/app/widgets/landing/access-contrast.tsx
- landing/app/widgets/landing/collateral.tsx
- landing/app/widgets/landing/final-cta.tsx
- landing/app/widgets/landing/fund-managers.tsx
- landing/app/widgets/landing/independent-data.tsx
- landing/app/widgets/landing/what-you-invest-in.tsx
- landing/global.css
refactor 16:21:54 c53a62b2
refactor(admin): the left accent rail goes, and amber was never actually at zero
7 files · +23 · -20
- Admin
- configuration-tab
- deploy-status-banner
- editorial
- field-lock
- overview-tab
- yield-settings-tab
- Admin UI
- alert-banner
fix 16:21:53 9f31d2a2
fix(landing): landing has its own 18px token, so use that one
2 files · +2 · -2
- Other
- landing/app/widgets/landing/collateral.tsx
- landing/app/widgets/landing/safeguards.tsx
fix 16:20:05 68f9a952
fix(admin): a hidden lock-up is 0 everywhere, not just in the payload
9 files · +166 · -31
- Admin
- editorial
- index
- lockup
- lockup.test
- payload
- step-redemption
- validation
fix 16:07:37 5c5f7903
fix(admin): a maturity-only pool has no lock-up and no early-exit penalty, and stops asking
5 files · +113 · -20
- Admin
- payload
- step-redemption
- validation
refactor 15:26:21 f5114ff0
refactor(web,admin): the last marks that carried nothing, and five values that had a token
6 files · +21 · -14
- Admin
- epoch-cycle-panel
- redemption-funding-modal
- yield-calc-breakdown
- Investor Web
- Route (help)
- Widget (PCWidgets)
- Investor Web UI
- RedeemModal
fix 15:24:24 072258b7
fix(admin): the redemption type says whether early exit is allowed, which is the axis
2 files · +24 · -4
- Admin
- step-redemption
fix 15:19:16 c753dfe8
fix(admin): the timeline says when the repayment stretch is missing rather than just ending
2 files · +18
- Admin
- pool-timeline-bar
- step-redemption
fix 15:14:51 d5d0eca7
fix(admin): a term too short to hold an offering is flagged on the term
3 files · +38 · -8
- Admin
- offering
- offering.test
- step-redemption
refactor 15:13:24 946f2950
refactor(web): empty states stop being a symbol in a tinted square
5 files · +74 · -46
- Investor Web
- Route ($)
- Route (pool.$id)
- Route (pools)
- root
- Investor Web UI
- OnboardingModal
feat 15:09:48 3c44a7ac
feat(build): the shadow family closes, and the guard finally sees the shared package
10 files · +90 · -29
- Admin
- Route (pool-create)
- Route (pool-edit)
- editorial
- epoch-management-section
- Other
- landing/app/widgets/fund-managers/panel-preview.tsx
- landing/app/widgets/landing/fund-managers.tsx
- packages/ds-editorial/src/patterns.tsx
- packages/ds-editorial/src/showcase.tsx
- packages/ds-editorial/src/tokens.css
- scripts/check-design-tokens.mjs
refactor 15:03:19 08543d17
refactor(web,admin): titles move onto the 18px step the scale now has
20 files · +34 · -34
- Admin
- Route (notifications)
- Route (pool-create)
- Route (pool-edit)
- Route (signer-balances)
- Investor Web
- Route (activity)
- Route (help)
- Route (kyc)
- Route (notifications)
- Route (pool.$id)
- Route (portfolio)
- Route (settings)
- Route (styleguide.notifications)
- Route (styleguide.portfolio)
- Route (verify-email)
- Widget (PCWidgets)
- Widget (PortfolioHistory)
- Investor Web UI
- KYCModal
- RedeemModal
- TransactionDetailDrawer
- YieldClaimDialog
fix 14:59:42 c2adc665
fix(build): the type-scale guard was only checking the integers
13 files · +56 · -35
- Admin
- Route (pool-create)
- Route (pool-edit)
- amortization-schedule-block
- deploy-date-review
- epoch-pool-list
- epoch-schedule-block
- pool-timeline-bar
- step-compliance
- Other
- landing/app/widgets/landing/collateral.tsx
- landing/app/widgets/landing/safeguards.tsx
- packages/ds-editorial/src/tokens.css
- scripts/check-design-tokens.mjs
docs 14:52:18 8c93d171
docs(db): 0205 is applied, and both missing tracking rows are recorded
3 files · +12 · -4
- Docs
- 11-db-schema.md
- 14-decisions.md
- Infra
- DB 0205_pool_implementation.sql
docs 14:45:22 3ab003ab
docs(db): 0204's tracking row was never recorded, and the check that said otherwise was matching February
1 files · +2 · -2
- Docs
- 11-db-schema.md
feat 13:49:27 c919f5f5
feat(pools): a pool records which contract generation it is, and two dates stop being erasable
14 files · +341 · -7
- Admin
- pool-controls
- pool-implementation.test
- Admin API
- pools
- Docs
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- Infra
- DB 0205_pool_implementation.sql
- DB schema.sql
- create-pool.ts
- Lambda API
- pools.get.list
- pools.patch.update
- pools.post.close
- pools.worker.deploy
- Other
- packages/types/src/index.ts
feat 13:39:29 bed0b296
feat(build): the type scale is locked, in the range it actually covers
42 files · +150 · -99
- Admin
- Route (admin-settings)
- Route (audit-log)
- Route (dashboard)
- Route (my-settings)
- Route (pool-create)
- Route (pool-edit)
- Route (pools)
- Route (redemptions)
- Route (yield)
- admin-users-tab
- amortization-schedule-block
- by-fund-table
- collateral-badge
- configuration-tab
- confirmed-obligations
- deposit-timeline
- editorial
- epoch-cycle-panel
- epoch-management-section
- epoch-pool-list
- epoch-schedule-block
- header
- pool-timeline-bar
- rail
- receipt-split
- step-basics
- step-compliance
- step-indicator
- step-redemption
- step-structure
- upcoming-timeline
- Admin UI
- count-badge
- pool-badges
- Investor Web
- Route (activity)
- Route (settings)
- Widget (header)
- Widget (sidebar)
- Investor Web UI
- KYCStatusCard
- MobileBottomNav
- filter-tabs
- Other
- scripts/check-design-tokens.mjs
refactor 13:32:11 e7225469
refactor(admin): the type scale admin never got
86 files · +614 · -614
- Admin
- Route (admin-settings)
- Route (audit-log)
- Route (auth-callback)
- Route (dashboard)
- Route (deposits)
- Route (fund-detail)
- Route (fund-invite-accept)
- Route (fund-manager-onboard)
- Route (funds)
- Route (kyc)
- Route (my-settings)
- Route (notifications)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (pools)
- Route (preview.pool-create)
- Route (preview.redemptions)
- Route (preview.yield)
- Route (redemptions)
- Route (signer-balances)
- Route (super-login)
- Route (yield)
- admin-users-tab
- amortization-schedule-block
- by-fund-table
- category-combobox
- configuration-tab
- confirmed-obligations
- create-distribution-dialog
- delete-pool-section
- deploy-date-review
- deploy-status-banner
- deposit-timeline
- due-now-card
- editorial
- epoch-admin-rollup
- epoch-cycle-aside
- epoch-cycle-panel
- epoch-management-section
- epoch-phase-stepper
- epoch-pool-list
- epoch-schedule-block
- field-lock
- fund-all-button
- fund-all-dialog
- fund-dialog
- fund-epoch-cycle-button
- fund-members-section
- fund-payout-button
- fund-select
- fund-wallet-display
- funding-load-card
- funding-load-panel
- instant-pool-aside
- instant-pool-rollup
- investor-sidebar
- label
- overdue-exposure-card
- pool-controls
- pool-metrics-line
- pool-timeline-bar
- qualification-panel
- rail
- receipt-split
- recorded-check-slot
- redemption-columns
- redemption-detail-panel
- redemption-funding-modal
- service-providers-editor
- step-basics
- step-compliance
- step-indicator
- step-redemption
- step-structure
- totp-step
- transactions-tab
- upcoming-timeline
- updates-tab
- wallet-bind-card
- yield-calc-breakdown
- yield-settings-tab
- Admin UI
- page-header
- query-error-state
- radio-card
- search-input
feat 13:29:05 92325ab1
feat(build): the amber family is locked, because it finally reached zero
10 files · +43 · -34
- Admin
- Route (notifications)
- Investor Web
- PoolBrowseCard
- TrancheBadge
- Widget (LiquidityTimeline)
- Widget (PCWidgets)
- Widget (fund-data-tab)
- Widget (position-card)
- auth-button
- Investor Web UI
- PoolStatusAlert
- Other
- scripts/check-design-tokens.mjs
refactor 13:17:06 04e4cec3
refactor: the uppercase micro-label is one recipe in both apps
45 files · +95 · -95
- Admin
- Route (audit-log)
- Route (dashboard)
- Route (kyc)
- Route (login)
- Route (notifications)
- Route (pool-create)
- Route (pool-edit)
- Route (pools)
- Route (yield)
- by-fund-table
- configuration-tab
- deploy-date-review
- editorial
- epoch-admin-rollup
- epoch-cycle-panel
- epoch-management-section
- epoch-pool-list
- instant-pool-rollup
- investor-sidebar
- qualification-panel
- rail
- recorded-check-slot
- redemption-detail-panel
- repayment-schedule-card
- step-redemption
- yield-calc-breakdown
- Admin UI
- filter-group
- funding-badge
- pool-badges
- Investor Web
- PoolBrowseCard
- Route (activity)
- Route (notifications)
- Route (pools)
- Route (settings)
- Route (styleguide.notifications)
- TrancheBadge
- Widget (PCWidgets)
- Widget (PortfolioComposition)
- Widget (PortfolioHero)
- Widget (category-chip)
- Widget (notification-detail-modal)
- add-lp-token-control
- Investor Web UI
- RedeemModal
- YieldClaimDialog
- tx-type-badge
docs 12:59:40 25a8df0f
docs: reopen reaches the chain, and two ✅ that had never been checked
2 files · +55 · -5
- Docs
- 14-decisions.md
- 17-changelog.md
refactor 12:56:25 77c6936a
refactor: one name for the standard border, and admin's card radii on the scale
59 files · +144 · -143
- Admin
- Route (admin-settings)
- Route (audit-log)
- Route (auth-callback)
- Route (dashboard)
- Route (fund-detail)
- Route (fund-invite-accept)
- Route (fund-manager-onboard)
- Route (my-settings)
- Route (notifications)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (signer-balances)
- Route (super-login)
- admin-users-tab
- amortization-schedule-block
- category-combobox
- configuration-tab
- create-distribution-dialog
- editorial
- epoch-cycle-panel
- epoch-management-section
- epoch-pool-list
- epoch-schedule-block
- fund-all-dialog
- fund-dialog
- fund-members-section
- fund-select
- funding-load-card
- pool-controls
- pool-timeline-bar
- qualification-panel
- redemption-detail-panel
- totp-step
- wallet-bind-card
- yield-calc-breakdown
- Admin UI
- funding-badge
- radio-card
- Docs
- 04-pool-models.md
- 10-status-machines.md
- Investor Web
- PoolBrowseCard
- Route (activity)
- Route (notifications)
- Route (pool.$id)
- Route (pools)
- Route (settings)
- Route (styleguide.notifications)
- Widget (LiquidityTimeline)
- Widget (PCWidgets)
- Widget (PortfolioComposition)
- Widget (PortfolioHero)
- Widget (PortfolioHistory)
- Widget (notification-detail-modal)
- Widget (topbar)
- Investor Web UI
- KYCModal
- KYCStatusCard
- RedeemModal
- YieldClaimDialog
- skeleton
refactor 12:44:16 dd23eb93
refactor(web,ds): all CTAs onto shadcn's Button, and its tokens onto the palette
16 files · +83 · -129
- Investor Web
- Route (pool.$id)
- Route (pools)
- Route (settings)
- Widget (cancel-redemption-dialog)
- Widget (invest-confirm-dialog)
- Widget (invest-sidebar)
- Widget (position-card)
- root
- Investor Web UI
- KYCModal
- KYCStatusCard
- OnboardingModal
- RedeemModal
- YieldClaimDialog
- index
- primary-button
- Other
- packages/ds-editorial/src/tokens.css
docs 12:37:38 6cb77ef5
docs(contract): what the chain says about dev's nine pools, since nothing else does
1 files · +36
- Smart Contract
- sepolia.md
fix 12:37:00 3379193b
fix(admin): a reopen says which date will close the pool again
2 files · +36 · -2
- Admin
- pool-controls
- status
feat 12:31:53 bc12d639
feat(web): one shape for the investor app's primary action
15 files · +110 · -68
- Investor Web
- Route (pool.$id)
- Route (pools)
- Route (settings)
- Widget (cancel-redemption-dialog)
- Widget (invest-confirm-dialog)
- Widget (invest-sidebar)
- Widget (position-card)
- root
- Investor Web UI
- KYCModal
- KYCStatusCard
- OnboardingModal
- RedeemModal
- YieldClaimDialog
- index
- primary-button
refactor 12:19:44 fd4e85ce
refactor: three calls from the review — card rung, notice fill, fund-all tone
15 files · +75 · -37
- Admin
- Route (pool-create)
- Route (pool-edit)
- editorial
- fund-all-dialog
- overview-tab
- pool-timeline-bar
- Investor Web
- Route (kyc)
- Route (pool.$id)
- Route (settings)
- Route (verify-email)
- Widget (performance-tab)
- Investor Web UI
- LegalPageLayout
- skeleton
- Other
- packages/ds-editorial/src/patterns.tsx
- Smart Contract
- sepolia.md
feat 11:56:45 2d7e6df3
feat(pools): the dates get re-read at the deploy, because only one of them moves
7 files · +538 · -4
- Admin
- Route (pool-edit)
- deploy-date-review
- deploy-dates
- deploy-dates.test
- deploy-status-banner
- index
- Lambda API
- pools.post.lifecycle
refactor 11:43:38 de412a95
refactor(admin): shadows onto the same five rungs, and four that are not shadows
22 files · +42 · -30
- Admin
- Route (auth-callback)
- Route (fund-invite-accept)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (pools)
- Route (redemptions)
- Route (super-login)
- Route (yield)
- category-combobox
- editorial
- epoch-management-section
- field-lock
- fund-all-dialog
- fund-dialog
- nav-change-dialog
- overdue-exposure-card
- overview-tab
- pool-timeline-bar
- rail
- totp-step
- Admin UI
- radio-card
fix 11:39:20 c498fe65
fix(admin): three things the offering field got wrong on first sight
4 files · +59 · -14
- Admin
- offering
- offering.test
- pool-timeline-bar
- step-redemption
refactor 11:35:29 6c5c2229
refactor(web,ds): every shadow in the investor app is one of five rungs
24 files · +38 · -31
- Investor Web
- PoolBrowseCard
- Route (kyc)
- Route (pool.$id)
- Route (settings)
- Route (verify-email)
- Widget (LiquidityTimeline)
- Widget (PCWidgets)
- Widget (PortfolioComposition)
- Widget (cancel-redemption-dialog)
- Widget (invest-confirm-dialog)
- Widget (notification-detail-modal)
- Widget (performance-tab)
- Widget (reinvest-confirm-dialog)
- Widget (sidebar)
- auth-button
- Investor Web UI
- KYCModal
- LegalPageLayout
- OnboardingModal
- RedeemModal
- TransactionDetailDrawer
- YieldClaimDialog
- filter-tabs
- skeleton
- Other
- packages/ds-editorial/src/tokens.css
2026-08-20 (Thu)
🟢 ch/product
fix 16:36:47 b619d9a5
fix(contract): CLOSED comes before maturity, and maturing is its only way out
4 files · +51 · -10
- Contract Test
- LifecyclePolicy.t
- PlatformPool.t
- Smart Contract
- LifecyclePolicy
- PlatformPool
refactor 14:19:25 ca8130de
refactor: split one column's two meanings, and retire the old feed's leftovers
43 files · +403 · -157
- Admin
- Route (pool-create)
- payload
- permissions
- step-compliance
- types
- Admin API
- pools
- Docs
- 04-pool-models.md
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 08-smart-contracts.md
- 11-db-schema.md
- 14-decisions.md
- 15-api-reference.md
- 20-joob-pool-config.md
- 23-money-path.md
- Infra
- CDK Stack (api-stack)
- CDK Stack (lambda-helpers)
- DB 0203_pools_is_showcase.sql
- DB backfill_nav_history_genesis.sql
- DB backfill_pool_tvl_history.sql
- DB schema.sql
- custody-mode.test.ts
- custody-mode.ts
- deposit-eligibility.test.ts
- deposit-eligibility.ts
- npl.ts
- read.test.ts
- types.ts
- Investor Web
- Route (dashboard)
- Route (pool.$id)
- Widget (fund-data-tab)
- Investor Web API
- fund-data
- pools
- Lambda API
- deposits.post.create
- pools.get.list
- pools.patch.update
- pools.post.create
- yield-distributions.post.create
- yield.post.reinvest
- Other
- packages/types/src/pool-row.ts
fix 13:16:13 4e06b4b7
fix(db): a seeded holding that the ledger knew and the screen didn't
1 files · +35
- Infra
- DB 0202_seed_deposit_workflow_backfill.sql
feat 12:00:36 d2127848
feat(infra): mirror pools — a partner feed that shows, and nothing else
117 files · +6942 · -2238
- Docs
- 06-writedown-nav.md
- 11-db-schema.md
- 15-api-reference.md
- 16-timeline.md
- 20-joob-pool-config.md
- Infra
- .env.example
- CDK Stack (api-stack)
- DB 0194_external_master_entity_and_nonperforming.sql
- DB 0195_report_plane.sql
- DB 0196_report_events_attributes.sql
- DB 0197_retire_external_pool_tables.sql
- DB 0198_money_events_origin.sql
- DB 0199_custody_mode.sql
- DB 0200_drop_funds_external_mapping.sql
- DB 0201_nav_history_attested.sql
- DB schema.sql
- apply-on-chain.test.ts
- apply-on-chain.ts
- apply-proposal.ts
- cache.ts
- client.ts
- compute.test.ts
- compute.ts
- custody-gate.ts
- custody-mode.test.ts
- custody-mode.ts
- deposit-eligibility.ts
- digest.test.ts
- digest.ts
- environment.ts
- exit-eligibility.test.ts
- exit-eligibility.ts
- handler-secrets.ts
- history-window.test.ts
- history-window.ts
- history.ts
- index.ts
- ingest.ts
- latest.ts
- ledger.ts
- mapper.ts
- mapping.ts
- mirror-mode.test.ts
- mirror-mode.ts
- nav-formula.test.ts
- nav-formula.ts
- nav-suggest.test.ts
- nav-suggest.ts
- npl.ts
- observe.test.ts
- observe.ts
- package.json
- pool-mutation-registry.ts
- project.test.ts
- project.ts
- propose-mode.ts
- provider.ts
- read.test.ts
- resolver.ts
- source.ts
- summary.ts
- sync.ts
- types.ts
- wire.ts
- Investor Web
- Route (pool.$id)
- Widget (fund-data-tab)
- Widget (overview-tab)
- Widget (performance-tab)
- dpd-buckets
- dpd-buckets.test
- index
- Investor Web API
- fund-data
- pools
- Lambda API
- fund-data.scheduler.sync
- nav-changes.post.dismiss
- nav-changes.post.propose
- nav-proposals.scheduler.suggest
- pools.delete
- pools.get.eligibility
- pools.get.fund-data-history
- pools.get.fund-data-summary
- pools.get.list
- pools.patch.update
- pools.post.close
- pools.post.create
- pools.post.epoch-funding
- pools.post.epoch-schedule
- pools.post.escalate-yield
- pools.post.freeze
- pools.post.governance
- pools.post.impairment
- pools.post.lifecycle
- pools.post.notify-fund
- pools.post.pause
- pools.post.wind-down
- pools.scheduler.tvl-snapshot
- redemption-requests.post.create
- report.scheduler.derive
- report.scheduler.fetch
- tranche.post.writedown
- yield-claims.post.create
- yield-distributions.post.create
- yield-distributions.post.distribute
- yield.post.reinvest
- Other
- scripts/check-pool-mutations.mjs
🔵 jy/product
refactor 18:21:54 b35fc0cc
refactor(admin): amber boxes and hand-picked tracking, both retired
50 files · +169 · -166
- Admin
- Route (audit-log)
- Route (dashboard)
- Route (deposits)
- Route (fund-detail)
- Route (funds)
- Route (kyc)
- Route (login)
- Route (notifications)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (pools)
- Route (yield)
- amortization-schedule-block
- by-fund-table
- configuration-tab
- controls-primitives
- create-distribution-dialog
- due-now-card
- editorial
- epoch-admin-rollup
- epoch-cycle-panel
- epoch-management-section
- epoch-pool-list
- fund-dialog
- funding-load-card
- funding-load-panel
- instant-pool-aside
- instant-pool-rollup
- investor-sidebar
- investors-tab
- nav-change-dialog
- nav-chart
- overdue-exposure-card
- overview-tab
- pool-controls
- qualification-panel
- rail
- receipt-split
- recorded-check-slot
- redemption-detail-panel
- repayment-schedule-card
- step-redemption
- yield-calc-breakdown
- yield-settings-tab
- Admin UI
- filter-group
- page-header
- pool-badges
- typography
docs 18:16:58 d66aa209
docs(contract): record the 2026-08-20 factory redeploy, and what it left out
1 files · +40 · -4
- Smart Contract
- sepolia.md
refactor 18:08:28 e56b0fab
refactor(admin,ds): a brand tone for notes that are not cautions, and one less box
3 files · +11 · -3
- Admin
- fund-dialog
- redemption-detail-panel
- Other
- packages/ds-editorial/src/patterns.tsx
refactor 18:03:08 3065bcb8
refactor(admin): the funding warnings are shorter, and stop being amber boxes
3 files · +20 · -19
- Admin
- fund-all-dialog
- fund-dialog
- Admin UI
- index
refactor 17:54:42 0387114b
refactor(web): the left rail is gone from the investor app, and eight more notices are the component
5 files · +33 · -48
- Investor Web
- Route (pool.$id)
- Widget (epoch-countdown)
- Widget (epoch-window-optin)
- Widget (invest-confirm-dialog)
- Widget (invest-sidebar)
refactor 17:49:09 52bb7d39
refactor(ds): Notice loses its left rail too
1 files · +14 · -13
- Other
- packages/ds-editorial/src/patterns.tsx
refactor 17:46:31 da0a380a
refactor(web): the pool status banner drops its left accent rail
1 files · +9 · -13
- Investor Web UI
- PoolStatusAlert
refactor 17:43:53 935b8a94
refactor(web,ds): every uppercase micro-label gets the same letter-spacing
28 files · +80 · -74
- Investor Web
- PoolBrowseCard
- PoolCard
- PoolRow
- Route (activity)
- Route (help)
- Route (notifications)
- Route (pools)
- Route (settings)
- Route (styleguide.epoch-states)
- Route (styleguide.notifications)
- Widget (PCWidgets)
- Widget (activity-tab)
- Widget (category-chip)
- Widget (fund-data-tab)
- Widget (invest-confirm-dialog)
- Widget (invest-sidebar)
- Widget (notification-detail-modal)
- Widget (position-card)
- Widget (reinvest-confirm-dialog)
- Widget (risk-disclosure)
- add-lp-token-control
- Investor Web UI
- PoolStatusAlert
- RedeemModal
- TransactionDetailDrawer
- YieldClaimDialog
- tx-type-badge
- Other
- packages/ds-editorial/src/patterns.tsx
- packages/ds-editorial/src/showcase.tsx
fix 17:40:52 7483813d
fix: three claims the rescope left asserting the old scope, one of them false
4 files · +26 · -7
- Admin
- step-redemption
- Docs
- 11-db-schema.md
- 14-decisions.md
- Lambda API
- pools.scheduler.lifecycle
refactor 17:40:05 0a6d9494
refactor(web): the arbitrary values that were already the token, named
25 files · +54 · -54
- Investor Web
- PoolBrowseCard
- PoolCard
- PoolRow
- Route (activity)
- Route (dashboard)
- Route (notifications)
- Route (pools)
- Route (portfolio)
- Route (styleguide.epoch-states)
- Route (styleguide.notifications)
- Route (styleguide.portfolio)
- Widget (LiquidityTimeline)
- Widget (PCWidgets)
- Widget (PortfolioComposition)
- Widget (PortfolioHero)
- Widget (PortfolioHistory)
- Widget (cancel-redemption-dialog)
- Widget (fund-data-tab)
- Widget (invest-confirm-dialog)
- Widget (invest-sidebar)
- Widget (notification-detail-modal)
- Widget (performance-tab)
- Widget (pool-header-card)
- Widget (position-card)
- Widget (reinvest-confirm-dialog)
fix 17:36:46 30dc3e5a
fix(admin): three things the rescope left saying the wrong thing
3 files · +33 · -14
- Admin
- Route (preview.pool-create)
- payload
- step-compliance
refactor 17:36:39 1b00b836
refactor(admin,web): the dot-plus-label badge is one spec in both apps
2 files · +50 · -23
- Admin UI
- status-dot
- Investor Web UI
- status-badge
fix 17:31:52 2d1473fa
fix(admin): the offering window follows maturity, not redemption type
7 files · +225 · -77
- Admin
- Route (pool-create)
- Route (preview.pool-create)
- offering
- offering.test
- step-compliance
- step-redemption
- validation
fix 17:31:24 0a41b25f
fix(lint): the palette block was switching the copy-guard rules off
2 files · +12 · -2
- Admin
- eslint.config
- Investor Web
- eslint.config
feat 17:27:59 bb0ffaba
feat(build): lock the palette to the design system
8 files · +186 · -19
- Admin
- eslint.config
- package
- Investor Web
- Widget (updates-tab)
- eslint.config
- package
- Investor Web UI
- skeleton
- Other
- landing/package.json
- scripts/check-design-tokens.mjs
docs 17:16:54 980e3991
docs(ds): the Notice rail's contrast figure, after C1 moved the token
1 files · +3 · -1
- Other
- packages/ds-editorial/src/patterns.tsx
fix 17:13:44 7aa05548
fix(ds): neutral-400 clears 4.5:1 on the surfaces it is actually used on
1 files · +1 · -1
- Other
- packages/ds-editorial/src/tokens.css
fix 17:00:24 22575f26
fix(web): axis month labels clip rather than wrap
1 files · +4 · -1
- Investor Web
- Widget (LiquidityTimeline)
docs 16:58:21 6eb70c41
docs: the CLOSED → MATURED leg is on-chain now, and it carries a Clones cutoff
4 files · +23 · -18
- Docs
- 10-status-machines.md
- 14-decisions.md
- 17-changelog.md
- Lambda API
- pools.scheduler.lifecycle
fix 16:56:33 29c09eaa
fix(web): activity status glyphs that can actually be resolved
1 files · +26 · -16
- Investor Web
- Route (activity)
fix 15:42:39 a2659fd3
fix(ds): a Notice with no title still carries its tone
1 files · +14 · -1
- Other
- packages/ds-editorial/src/patterns.tsx
feat 15:17:13 20fc07a4
feat(ds): Notice — an aside set apart by structure, not by being coloured in
9 files · +108 · -78
- Investor Web
- Route (dashboard)
- Route (portfolio)
- Widget (cancel-redemption-dialog)
- Widget (epoch-position-panel)
- Widget (timelock-countdown)
- Widget (withdraw-dialog)
- Investor Web UI
- RedeemModal
- index
- Other
- packages/ds-editorial/src/patterns.tsx
feat 14:48:13 75c1d8fc
feat(pools): the offering close stops sharing a column with maturity
32 files · +1852 · -83
- Admin
- Route (pool-create)
- Route (pool-edit)
- Route (preview.pool-create)
- configuration-tab
- index
- offering
- offering.test
- overview-tab
- payload
- permissions
- pool-timeline-bar
- step-compliance
- step-redemption
- types
- validation
- Admin API
- pools
- Docs
- 10-status-machines.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- Infra
- DB 0204_subscription_end_date.sql
- DB schema.sql
- pool-maturity.test.ts
- Lambda API
- pools.get.list
- pools.patch.update
- pools.post.close
- pools.post.create
- pools.post.lifecycle
- pools.scheduler.lifecycle
fix 14:26:41 3717968f
fix(web): the Today label stops landing on a month label
1 files · +8 · -1
- Investor Web
- Widget (LiquidityTimeline)
fix 14:22:38 e59baa7a
fix(ds): a stat row lines up by band, and the meter marker is visible
1 files · +35 · -3
- Other
- packages/ds-editorial/src/patterns.tsx
refactor 14:14:39 0158540b
refactor(web): one token per type size, not two
22 files · +254 · -254
- Investor Web
- Route (activity)
- Route (dashboard)
- Route (help)
- Route (kyc)
- Route (notifications)
- Route (pools)
- Route (settings)
- Route (styleguide.epoch-states)
- Route (styleguide.notifications)
- Route (verify-email)
- Widget (notification-detail-modal)
- Widget (notification-row)
- add-lp-token-control
- Investor Web UI
- Footer
- KYCModal
- KYCStatusCard
- LegalPageLayout
- OnboardingModal
- RedeemModal
- TransactionDetailDrawer
- YieldClaimDialog
- filter-tabs
refactor 13:27:06 29e4cb37
refactor(ds): finish the dead-weight sweep in the shared package
2 files · +10 · -6
- Other
- packages/ds-editorial/src/patterns.tsx
- packages/ds-editorial/src/showcase.tsx
refactor 13:22:31 1e8545b2
refactor(ds): a display value that is a word is set in sans
3 files · +41 · -3
- Investor Web
- Widget (PCWidgets)
- Investor Web UI
- index
- Other
- packages/ds-editorial/src/patterns.tsx
fix 12:03:14 347255bb
fix(web): the PDP invest column sticks, not the panel inside it
1 files · +16 · -2
- Investor Web
- Route (pool.$id)
fix 11:48:01 05b5a5bd
fix(web): invisible success dots, and correct the contrast claim behind them
3 files · +27 · -10
- Investor Web
- TrancheBadge
- auth-button
- Investor Web UI
- status-badge
refactor 11:36:30 989d7922
refactor(web): drop font weights that the serif cannot render
19 files · +43 · -43
- Investor Web
- PoolBrowseCard
- PoolCard
- PoolRow
- Route (activity)
- Route (dashboard)
- Route (notifications)
- Route (pools)
- Route (portfolio)
- Route (styleguide.notifications)
- Route (styleguide.portfolio)
- Widget (PortfolioHero)
- Widget (fund-data-tab)
- Widget (invest-confirm-dialog)
- Widget (invest-sidebar)
- Widget (notification-detail-modal)
- Widget (performance-tab)
- Widget (pool-header-card)
- Widget (position-card)
- Widget (reinvest-confirm-dialog)
refactor 11:32:13 9bc90065
refactor(web): one spec for the dot-plus-label badge
2 files · +31 · -20
- Investor Web
- TrancheBadge
- Investor Web UI
- status-badge
feat 11:30:00 cbb2d55c
feat(ds): elevation and tracking tokens, definitions only
1 files · +36
- Other
- packages/ds-editorial/src/tokens.css
2026-08-19 (Wed)
🟢 ch/product
fix 14:53:09 90d8b7ae
fix(admin): the model toggle counts what its side lists, not requests
3 files · +57 · -131
- Admin
- Route (redemptions)
- funding-load-card
- instant-pool-rollup
fix 14:14:24 fcad33e8
fix(admin): an unreadable shortfall stops reporting as a funded cycle
34 files · +1668 · -438
- Admin
- Route (audit-log)
- Route (deposits)
- Route (kyc)
- Route (redemptions)
- Route (signer-balances)
- Route (yield)
- build-epoch-summaries
- build-epoch-summaries.test
- epoch-admin-rollup
- epoch-cycle-aside
- epoch-cycle-panel
- epoch-management-section
- epoch-pool-filter
- epoch-pool-filter.test
- epoch-pool-list
- fund-epoch-cycle-button
- funding-load-card
- funding-load-panel
- index
- instant-pool-rollup
- map-with-concurrency
- map-with-concurrency.test
- overview-tab
- redemption-columns
- redemption-detail-panel
- redemption-funding
- redemption-obligations-nodes.test
- updates-tab
- use-coarse-clock
- use-refresh-queries.test
- Admin API
- refresh-keys
- refresh-keys.test
- use-redemption-requests
🔵 jy/product
feat 16:11:14 d33c0e1b
feat(web,admin): the wordmark is the way back to the marketing site
16 files · +83 · -18
- Admin
- .env
- Route (login)
- env
- header
- rail
- Investor Web
- .env
- Route (settings)
- Widget (header)
- Widget (sidebar)
- Widget (topbar)
- auth-button
- env
2026-08-18 (Tue)
🟢 ch/product
refactor 18:04:17 07ead35b
refactor(infra): a route group is chosen, not defaulted into
5 files · +265 · -47
- Infra
- CDK Stack (api-stack)
- CDK Stack (route-configs)
- CDK Stack (route-group-stack)
- CDK Stack (route-groups.test)
- Lambda API
- logs.scheduler.retention
feat 18:04:17 598e5b08
feat: a yield distribution records the period it pays for
28 files · +1247 · -282
- Contract Test
- PlatformPoolEpoch.t
- Docs
- 04-pool-models.md
- 05-investment-lifecycle.md
- 07-redemption.md
- 08a-contract-reference.md
- 10-status-machines.md
- 11-db-schema.md
- 13-operations.md
- 14-decisions.md
- Infra
- funding-date-monotonicity.test.ts
- funding-date-monotonicity.ts
- next-due.ts
- pool-maturity.ts
- run-distribution.ts
- yield-interval.test.ts
- yield-interval.ts
- yield-period.test.ts
- yield-period.ts
- yield-schedule.ts
- Lambda API
- pools.patch.update
- pools.post.close
- pools.post.epoch-schedule
- pools.scheduler.yield-due
- yield-distributions.post.create
- yield-distributions.post.distribute
- Smart Contract
- GovernanceLib
- RedemptionLib
- sepolia.md
fix 18:04:17 e5eb2899
fix(infra): production asset buckets stop being deletable, and both transports require TLS
6 files · +89 · -18
- Infra
- CDK Stack (admin-web-stack)
- CDK Stack (api-stack)
- CDK Stack (asset-bucket)
- CDK Stack (docs-stack)
- CDK Stack (landing-stack)
- CDK Stack (web-stack)
fix 18:04:17 79ccd771
fix(infra): alarms reach a person, and there are now alarms worth reaching them
7 files · +391 · -30
- Infra
- .env.example
- CDK Stack (api-stack)
- check-alarm-subscriptions.ts
- environment-stage-split.test.ts
- environment.ts
- package.json
- Other
- pnpm-lock.yaml
feat 18:04:17 60511a21
feat(infra): the API stage gets access logs and a throttle ceiling
2 files · +163
- Infra
- CDK Stack (api-stack)
- CDK Stack (api-throttling)
fix 18:04:17 a8ada25a
fix(infra): schedulers only read pools on chains this environment serves
14 files · +79 · -1
- Infra
- chain-config.ts
- Lambda API
- fund-data.scheduler.sync
- nav-changes.scheduler.apply-pending
- nav-proposals.scheduler.suggest
- pools.scheduler.epoch-funding-date
- pools.scheduler.epoch-window-open
- pools.scheduler.governance-execute-due
- pools.scheduler.lifecycle
- pools.scheduler.tvl-snapshot
- pools.scheduler.yield-due
- redemption-requests.scheduler.epoch-cutoff
- redemption-requests.scheduler.epoch-execute
- redemption-requests.scheduler.partner-funding
- yield.scheduler.reconcile
refactor 14:34:48 58a4ff09
refactor(infra): the parent stack shares one execution role, like its nested stacks already do
2 files · +108 · -1
- Infra
- CDK Stack (api-stack)
- CDK Stack (parent-dedicated-roles.test)
feat 14:34:48 880b0649
feat(infra): Lambda logs get the same 5-year retention the audit log already has
4 files · +407 · -904
- Infra
- CDK Stack (api-stack)
- package.json
- Lambda API
- logs.scheduler.retention
- Other
- pnpm-lock.yaml
fix 14:34:48 7c2ea9f9
fix(infra): external-API credentials go to the handlers that use them, not to all 181
6 files · +255 · -8
- Infra
- CDK Stack (api-stack)
- CDK Stack (lambda-helpers)
- CDK Stack (route-group-stack)
- handler-secrets.ts
- package.json
- Other
- scripts/check-handler-secrets.mjs
perf 14:34:48 ac59eb70
perf(infra): Lambda memory sized from measurement, not from the default
1 files · +45
- Infra
- CDK Stack (lambda-helpers)
fix 14:34:48 d2318dee
fix(infra): SES sending is scoped to one identity, and every sender names the configuration set
3 files · +115 · -8
- Infra
- CDK Stack (api-stack)
- CDK Stack (route-group-stack)
- CDK Stack (ses-send-policy)
🔵 jy/product
test 17:50:59 ed1e6e1b
test(contract): the deal's repayment window strands the interest rather than misdirecting it
1 files · +104
- Contract Test
- EscrowYieldRepro.t
fix 17:46:28 c7a4fc0d
fix(web): the row came back but its Claim button still refused
7 files · +201 · -48
- Investor Web
- Route (portfolio)
- Route (styleguide.portfolio)
- Widget (PCWidgets)
- Widget (PortfolioComposition)
- Widget (PortfolioHero)
- portfolio-stats
- position-escrow.test
fix 17:31:54 8593a4d7
fix(web): requesting a redemption deleted the position from the portfolio
7 files · +353 · -47
- Investor Web
- Route (pool.$id)
- Route (portfolio)
- Widget (PCWidgets)
- Widget (position-card)
- Widget (withdraw-dialog)
- position-escrow
- position-escrow.test
test 16:47:33 58cb66a5
test(contract): commit two investigation-only repros so they stop riding along
2 files · +398
- Contract Test
- EscrowYieldRepro.t
- MaturityAnchorRepro.t
fix 16:47:00 de40c1b0
fix(infra): the over-funding notice told fund managers the surplus would fund the next cycle
4 files · +60 · -20
- Docs
- 14-decisions.md
- 22-notifications.md
- Infra
- catalog-integrity.test.ts
- redemption.ts
docs 16:03:28 8e832710
docs(db): the apply markers said pending for six migrations that had already run
1 files · +5 · -5
- Docs
- 11-db-schema.md
fix 15:45:33 04e69bdc
fix(db): a completed redemption claimed it paid 0 when the view could not read the figure
2 files · +172 · -11
- Docs
- 11-db-schema.md
- Infra
- DB 0193_audit_feed_completed_redemption_states_its_payout.sql
test 15:12:04 b3143b44
test(infra): two migrations shared a number and nothing anywhere noticed
1 files · +96
- Infra
- migration-numbers-are-unique.test.ts
docs 13:23:03 151c3d0b
docs: an unwritten cycle is a confident wrong date, and seven decisions get numbers
10 files · +443 · -50
- Docs
- 04-pool-models.md
- 07-redemption.md
- 09-rbac.md
- 11-db-schema.md
- 14-decisions.md
- 15-api-reference.md
- 16-timeline.md
- 17-changelog.md
- 22-notifications.md
- 24-field-governance.md
chore 12:27:36 28f46d36
chore(admin,infra): the cycle-mode removal is v3-140, not v3-141
8 files · +10 · -10
- Admin
- epoch-schedule-block
- payload
- permissions
- step-redemption
- types
- Admin API
- pools
- Infra
- DB 0192_epoch_cycle_mode_is_inert.sql
- Lambda API
- pools.scheduler.epoch-funding-date
fix 12:25:33 9fdb42e5
fix(admin): the funding date field blamed the operator's format before they typed one
3 files · +39 · -3
- Admin
- amortization-schedule-block
- epoch-schedule
- epoch-schedule.test
fix 12:25:23 d7a350b3
fix(admin,infra)!: AUTO turned off the only watcher and put nothing in its place
13 files · +103 · -82
- Admin
- Route (pool-create)
- Route (preview.pool-create)
- epoch-schedule-block
- payload
- permissions
- step-redemption
- types
- Admin API
- pools
- Infra
- DB 0192_epoch_cycle_mode_is_inert.sql
- DB schema.sql
- Lambda API
- pools.scheduler.epoch-funding-date
2026-08-17 (Mon)
🟢 ch/product
No activity
🔵 jy/product
fix 17:23:46 6aa9e9a1
fix(infra)!: two views were readable in full through the public API key
4 files · +85 · -7
- Docs
- 11-db-schema.md
- Infra
- DB 0188_redemption_list_payout_before_settlement.sql
- DB 0191_epoch_funding_not_a_request_and_audit_keeps_its_sentence.sql
- DB schema.sql
fix 17:16:17 06640554
fix(web): a missing figure stops reading $0, and two buttons stop offering what they cannot do
13 files · +315 · -212
- Investor Web
- Route (activity)
- Route (dashboard)
- Widget (PortfolioHistory)
- Widget (activity-tab)
- index
- transaction-entries
- transaction-entries.test
- use-epoch-position
- use-settle-epoch-flow
- Investor Web API
- deposits
- investor-activity
- redemption-requests
- Investor Web UI
- TransactionDetailDrawer
fix 17:15:50 a925deb5
fix(infra): a funded epoch cycle is not a redemption, and an audit row keeps its sentence
3 files · +506 · -9
- Docs
- 11-db-schema.md
- Infra
- DB 0191_epoch_funding_not_a_request_and_audit_keeps_its_sentence.sql
- DB schema.sql
docs 16:34:23 663f38e6
docs(infra): leftover top-up does not carry forward, and this is the reader that draws it
1 files · +17 · -2
- Infra
- epoch-redemption.ts
feat 16:30:26 976fcf40
feat(admin): the funding views say leftover stays with its cycle, without calling it lost
2 files · +33
- Admin
- funding-load-card
- repayment-schedule-card
feat 16:25:38 3b8ef5ae
feat(admin): each cycle says how much to fund and how sure that figure is
4 files · +341 · -4
- Admin
- funding-cell
- funding-cell.test
- overview-tab
- repayment-schedule-card
docs 16:23:21 a5e98d42
docs(infra): "nothing consumes RedemptionFunded off-chain" was checked against writers only
1 files · +15 · -3
- Lambda API
- pools.post.epoch-funding
feat 16:17:58 8f92907d
feat(admin): the repayment schedule card goes live on Overview, and a $0 that meant "unreadable" stops saying "nothing due"
4 files · +93 · -4
- Admin
- Route (pool-detail)
- funding-load-card
- funding-load.test
- overview-tab
feat 16:17:30 f3fcccd1
feat(admin): the confirmation card checks what was recorded, and says so when it does not match
3 files · +361 · -15
- Admin
- recorded-check-logic
- recorded-check-logic.test
- recorded-check-slot
feat 15:52:32 da087889
feat(admin): the fund page says what has to be wired, and never adds the two figures
6 files · +378 · -1
- Admin
- Route (fund-detail)
- funding-load
- funding-load-card
- funding-load.test
- index
feat 15:49:40 9a1a3849
feat(infra): a repayment plan can be read one cycle at a time, and null there means nobody set it
5 files · +264 · -1
- Admin API
- pools
- use-pools
- Infra
- CDK Stack (route-configs)
- Lambda API
- pools.get.list
- pools.get.repayment-cycles
feat 15:40:26 7a25eea0
feat(infra): the schedule endpoint can name a cycle, and refuses a date that would sit out of order
5 files · +347 · -25
- Infra
- epoch-redemption.ts
- funding-date-monotonicity.test.ts
- funding-date-monotonicity.ts
- index.ts
- Lambda API
- pools.post.epoch-schedule
feat 15:39:38 1e62b716
feat(admin): the repayment schedule card, its four faces, and one slot for the other lane
6 files · +502 · -1
- Admin
- index
- recorded-check-slot
- repayment-schedule-card
- repayment-stage
- repayment-stage.test
- Admin API
- pools
fix 15:31:56 662025e0
fix(infra): seven columns were live in the database and absent from the file people read to check
2 files · +44 · -6
- Infra
- DB schema.sql
- Other
- CLAUDE.md
fix 15:30:04 6b50b587
fix(web): a matured single-payout pool says Redeemable, like the cycle pool beside it
1 files · +6 · -1
- Investor Web
- PoolBrowseCard
feat 15:22:49 83ec6935
feat(infra): the epoch summary says which cycles the chain was never given, and stops asking a node for everything at once
9 files · +348 · -44
- Infra
- DB schema.sql
- map-with-concurrency.ts
- unwritten-plan-cycles.test.ts
- unwritten-plan-cycles.ts
- Lambda API
- pools.scheduler.epoch-funding-date
- pools.worker.deploy
- redemption-requests.get.epoch-summary
- Other
- packages/money-domain/src/tests/repayment-plan-callers-agree.test.ts
- packages/money-domain/src/policies/repayment-schedule.ts
feat 15:15:46 b06b8f5d
feat(admin): a cycle waiting on maturity stops reading as one about to open
8 files · +148 · -2
- Admin
- Route (redemptions)
- epoch-admin-rollup
- epoch-cycle-aside
- epoch-cycle-panel
- epoch-management-section
- epoch-phase
- epoch-phase.test
- epoch-pool-list
fix 15:09:08 5f5f888b
fix(infra): the deploy was writing a repayment plan the operator never saw, on the last day of the month
4 files · +380 · -12
- Contract Test
- PlatformPoolEpoch.t
- Lambda API
- pools.scheduler.epoch-funding-date
- pools.worker.deploy
- Other
- packages/money-domain/src/tests/repayment-plan-callers-agree.test.ts
fix 15:00:13 d371bd96
fix(admin): the pool detail called a pool that accepts no request "Every 28 days"
2 files · +52 · -4
- Admin
- configuration-tab
- overview-tab
docs 14:50:41 59ff67b1
docs(infra): the rule columns forbid deciding a date, not reading one
2 files · +20 · -12
- Infra
- DB 0189_post_maturity_repayment_plan.sql
- DB schema.sql
feat 14:34:37 606eb0f1
feat(infra): the deploy writes every repayment date, and the reminder is what state says, not a setting
8 files · +484 · -11
- Admin
- amortization-schedule-block
- Infra
- DB 0190_redemption_epochs_funding_date.sql
- DB schema.sql
- epoch-funding-plan.ts
- epoch-schedule.ts
- index.ts
- Lambda API
- pools.scheduler.epoch-funding-date
- pools.worker.deploy
2026-08-16 (Sun)
🟢 ch/product
No activity
🔵 jy/product
fix 22:14:35 a1c37d75
fix(infra): the deploy hands back the bootstrap PAUSER, and the count in 9e0c4bf was wrong
3 files · +67 · -11
- Infra
- create-pool-config-calls.test.ts
- create-pool.ts
- Smart Contract
- PlatformPool
fix 22:00:11 9e0c4bf4
fix(infra): a pool created since the KMS split grants its roles to keys that never sign them
4 files · +102 · -19
- Infra
- client.ts
- create-pool-config-calls.test.ts
- create-pool.ts
- handler-roles.ts
test 21:49:03 3e7f8474
test(domain): the worker's entry point had no test, which is the half a wrong date lives in
1 files · +172
- Other
- packages/money-domain/src/tests/repayment-schedule.test.ts
refactor 21:45:40 d038dd5e
refactor(domain): the repayment calendar moves to money-domain, before a second copy exists
3 files · +179 · -64
- Admin
- amortization
- Other
- packages/money-domain/src/index.ts
- packages/money-domain/src/policies/repayment-schedule.ts
test 21:33:04 1b8742a6
test(contract): compare the drifted cutoff against the approved one, not against itself
1 files · +5 · -1
- Contract Test
- PlatformPoolEpoch.t
docs 21:28:23 d794f660
docs(infra): the deploy worker has 300s, and 120 belongs to a worker two files away
2 files · +14 · -3
- Infra
- client.ts
- create-pool.ts
test 21:09:58 93e62f1f
test(contract): pin what an unwritten cycle actually pays, and what pinning one costs
1 files · +100
- Contract Test
- PlatformPoolEpoch.t
fix 20:47:39 1f74dc0f
fix(admin): the cycle ratio quoted 28 days on a pool whose payouts are a month apart
2 files · +34 · -13
- Admin
- amortization-schedule-block
- Investor Web
- Route (styleguide.portfolio)
fix 09:35:38 958ae2bb
fix(web): a pool that refuses every request until maturity stops being labelled by its cadence
10 files · +205 · -29
- Admin
- amortization-schedule-block
- Docs
- 14-decisions.md
- 17-changelog.md
- Investor Web
- PoolBrowseCard
- Route (styleguide.portfolio)
- Widget (LiquidityTimeline)
- Widget (PortfolioComposition)
- portfolio
- portfolio-liquidity
- portfolio-liquidity.test
feat 09:16:28 07f238d6
feat(admin): the wizard can build a post-maturity repayment pool, and the deploy refuses an anchor maturity has outgrown
21 files · +1646 · -82
- Admin
- Route (pool-create)
- Route (preview.pool-create)
- amortization
- amortization-schedule-block
- amortization.test
- epoch-schedule
- epoch-schedule.test
- index
- payload
- step-redemption
- types
- validation
- Admin API
- pools
- Docs
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- Infra
- DB 0189_post_maturity_repayment_plan.sql
- DB schema.sql
- Lambda API
- pools.post.create
- pools.worker.deploy
2026-08-15 (Sat)
🟢 ch/product
No activity
🔵 jy/product
docs 23:39:49 e14b81b0
docs: v3-131 reviewed against the contracts — the substance held, two counts and one estimate did not
4 files · +11 · -4
- Docs
- 04-pool-models.md
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
docs 17:21:25 64a7180b
docs: the post-maturity epoch pool needs no new setting, and two doc claims about maturity were stale (v3-131)
6 files · +235 · -13
- Docs
- 04-pool-models.md
- 07-redemption.md
- 14-decisions.md
- 16-timeline.md
- 17-changelog.md
- 24-field-governance.md
2026-08-14 (Fri)
🟢 ch/product
chore 18:57:46 c724ba63
chore(infra): the CDK layer stops carrying unused imports, and a flag keeps it that way
3 files · +14 · -4
- Infra
- CDK Stack (api-stack)
- CDK Stack (route-configs)
- tsconfig.json
feat 18:37:34 192c9537
feat(infra): a script to fund the KMS signers from one wallet
2 files · +232
- Infra
- fund-signers.ts
- package.json
refactor 18:37:23 501336c1
refactor(infra): one env file per stage, so a dev value cannot reach prod
15 files · +653 · -111
- Infra
- .env.example
- app.ts
- backfill-pending-reserve.ts
- ci.ts
- docs.ts
- environment-stage-split.test.ts
- environment.ts
- index.ts
- kms.ts
- kyc-upgrade.ts
- load-env.ts
- migrate-signer-roles.ts
- verify-signer-roles.ts
- Other
- .gitignore
feat 17:39:53 2b35f515
feat(admin): a super-admin page for the gas left in each KMS signing key
16 files · +586 · -62
- Admin
- Route (protected-layout)
- Route (signer-balances)
- rail
- rail-visibility
- route-permissions
- routes
- sidebar
- signer-balances
- super-admin-gate.test
- Admin API
- index
- keys
- signer-balances
- use-signer-balances
- Docs
- 15-api-reference.md
- Infra
- CDK Stack (route-configs)
- Lambda API
- admin-signer-balances.get.list
fix 17:10:36 8a27b14e
fix(deps): the lockfile follows the KMS client into runtime dependencies
1 files · +3 · -3
- Other
- pnpm-lock.yaml
fix 17:02:02 46bdb437
fix(infra): a redemption awaiting funding can name its own payout
3 files · +256 · -18
- Docs
- 11-db-schema.md
- Infra
- DB 0188_redemption_list_payout_before_settlement.sql
- backfill-pending-reserve.ts
docs 16:48:07 a2996485
docs: the signer roles, the removed funding endpoint, and the KYC upgrade
9 files · +56 · -27
- Docs
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09-rbac.md
- 14-decisions.md
- 15-api-reference.md
- 17-changelog.md
- 23-money-path.md
- 24-field-governance.md
- Other
- CLAUDE.md
fix 16:47:57 83ccd9b0
fix(infra): a mirror the chain alone owns is repaired, not left wrong forever
6 files · +1017 · -1
- Infra
- approve-redemption.ts
- backfill-pending-reserve.ts
- engine.ts
- pool-mirrors.ts
- reconcile-mirrors.test.ts
- reconcile.ts
feat 16:47:32 7e677025
feat(contract): the KYC SBT upgrade drops its seven-day timelock
6 files · +376 · -17
- Contract Deploy
- UpgradeKYCImplementation.s
- Contract Test
- PlatformKYCSoulbound.t
- Infra
- kyc-upgrade.ts
- package.json
- Smart Contract
- PlatformKYCSoulbound
- package.json
refactor 16:47:11 a54f04b9
refactor(infra): only the handlers that sign can sign
4 files · +128 · -24
- Infra
- CDK Stack (api-stack)
- CDK Stack (lambda-helpers)
- CDK Stack (route-configs)
- CDK Stack (route-group-stack)
feat 16:47:00 440f7087
feat(infra): the platform signs with KMS keys, one identity per contract role
35 files · +2169 · -545
- Infra
- .env.example
- CDK Stack (kms-stack)
- addresses.ts
- approve-redemption.ts
- client-lazy-signer.test.ts
- client.ts
- create-pool-config-calls.test.ts
- create-pool.ts
- derive-signer-addresses.ts
- environment.ts
- epoch-redemption.ts
- fallback-redemption.ts
- freeze.ts
- governance.ts
- handler-roles.ts
- index.ts
- kms-address.test.ts
- kms-address.ts
- kms-signer.test.ts
- kms-signer.ts
- kyc-sbt.ts
- lifecycle.ts
- lookup.ts
- migrate-signer-roles.ts
- nav.ts
- package.json
- pause.ts
- reinvest.ts
- verify-signer-roles.ts
- yield-distribution.ts
- Lambda API
- pools.post.create
- pools.post.epoch-funding
- pools.post.lifecycle
- redemption-requests.post.fund
feat 15:26:54 6c6d6f9b
feat(infra): the platform's on-chain signers become KMS keys, one per contract role
4 files · +324
- Infra
- CDK Stack (index)
- CDK Stack (kms-stack)
- kms.ts
- roles.ts
🔵 jy/product
fix 15:44:46 afb011aa
fix(admin): the form column stops growing, and a narrow window gets the button first
1 files · +5 · -5
- Admin
- Route (login)
fix 15:39:11 212d9c71
fix(admin): the sign-in fills its window, and the panel's type grows with the panel
1 files · +4 · -4
- Admin
- Route (login)
fix 15:32:56 657c2c73
fix(admin): the sign-in splits in half and the form hangs off the split
1 files · +6 · -2
- Admin
- Route (login)
fix 15:29:57 5cc58e40
fix(admin): the standalone mark takes the round dot, because the pill is a hyphen
2 files · +46 · -33
- Admin
- favicon
- Admin UI
- logo
feat 15:20:36 b53d71a9
feat(admin): /login takes the split-rail layout, and its preview comes back out
3 files · +99 · -195
- Admin
- Route (login)
- Route (preview.login)
- routes
feat 14:55:47 5672e1e5
feat(admin): a sign-in that looks like the product it opens, previewed before /login takes it
4 files · +170 · -1
- Admin
- Route (preview.login)
- routes
- Admin UI
- index
- logo
2026-08-13 (Thu)
🟢 ch/product
chore 19:03:25 9accffd1
chore(db): the three dead money_event_kind labels come out of the type
4 files · +197 · -36
- Docs
- 11-db-schema.md
- Infra
- DB 0187_drop_dead_money_event_kinds.sql
- DB schema.sql
- Other
- packages/money-domain/src/tests/events.test.ts
other 19:03:25 d86dcc8e
revert(kyc): the mint stamp goes back to an unconditional write, because a PostgREST filter is not a claim
4 files · +70 · -88
- Infra
- apply-review.ts
- mint-queue.ts
- Lambda API
- kyc.post.mint-sbt
- kyc.scheduler.reconcile-sweep
fix 19:03:25 5e7c2503
fix(indexer): the mirror watched six of nine governance events, and one of twenty-two config ones
9 files · +640 · -3
- Infra
- config-mirrors.test.ts
- config-mirrors.ts
- config.ts
- engine.ts
- event-coverage.test.ts
- events.ts
- freeze.ts
- governance.ts
- pause.ts
fix 19:03:25 ed5a4384
fix(indexer): the drift check reaches a person, and three ways the sweep went quiet
6 files · +310 · -19
- Infra
- alerts.ts
- engine.ts
- pipeline.ts
- pool.ts
- range-limit.test.ts
- range-limit.ts
fix 19:03:25 496dc674
fix(kyc): the mint claim returns the column it filters on, so enqueueing works again
2 files · +58 · -13
- Infra
- apply-review.ts
- mint-queue.ts
fix 19:03:25 1d3eb32e
fix(money): the lock-up anchor is emitted rather than inferred, and three more single-source repairs
27 files · +905 · -82
- Admin
- deploy-status-banner
- status
- Contract Test
- PlatformPool.t
- Docs
- 04-pool-models.md
- 05-investment-lifecycle.md
- 07-redemption.md
- 14-decisions.md
- Infra
- DB 0186_stablecoin_registry_address_is_lowercase.sql
- DB seed.sql
- backfill-invested-at.ts
- decode.ts
- diff-compare.test.ts
- fold.test.ts
- fold.ts
- pipeline.ts
- pool-read-access.ts
- pool-visibility.test.ts
- pool-visibility.ts
- resolve.ts
- stablecoin.ts
- transfer-holders.test.ts
- Lambda API
- deposits.post.create
- pools.get.list
- yield.post.reinvest
- Other
- packages/money-contract/src/generated/platform-pool.ts
- Smart Contract
- PlatformPool
- YieldLib
fix 17:20:40 cfbe2b90
fix(admin): inviting a deleted account's email restores it instead of hitting the unique index
6 files · +166 · -21
- Admin
- admin-users-tab
- Admin API
- admin-users
- Docs
- 09-rbac.md
- 11-db-schema.md
- Infra
- activity.ts
- Lambda API
- admin-users.post.invite
fix 15:18:35 5bfed603
fix(yield): a settlement that credited nobody had no way to say so
8 files · +203 · -19
- Contract Test
- PlatformPool.t
- Docs
- 10-status-machines.md
- 11-db-schema.md
- Infra
- DB 0185_distribution_status_stops_reading_absence.sql
- distribution.ts
- run-distribution.ts
- Lambda API
- yield-distributions.get.counts
- Smart Contract
- YieldLib
fix 13:55:36 0f09edb3
fix(kyc): the camera allowlist names the origin our tokens actually route to
1 files · +14 · -2
- Infra
- CDK Stack (spa-security-headers)
fix 13:55:36 ddf48705
fix(money): a redemption that closes without settling now says how much went back
11 files · +177 · -29
- Contract Test
- PlatformPool.t
- Infra
- DB 0184_funding_returned_kind.sql
- DB schema.sql
- decode.ts
- fold.ts
- Other
- packages/money-contract/src/generated/platform-pool.ts
- packages/money-domain/src/tests/events.test.ts
- packages/money-domain/src/events.ts
- Smart Contract
- PlatformPool
- PoolLedgerLib
- RedemptionLib
fix 10:56:16 b50409bc
fix(deps): commit the lockfile that already had the KMS client resolved
1 files · +1181 · -68
- Other
- pnpm-lock.yaml
refactor 10:52:39 96d0942c
refactor(money): the hold-back comes out, and five formulas stop carrying its bucket
74 files · +527 · -1194
- Admin
- Route (redemptions)
- epoch-management-section
- overview-tab
- status
- Admin API
- redemption-requests
- Contract Test
- GoldenFixtures.t
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFlows.t
- PlatformPoolInvariant.t
- PlatformPoolNonCustodial.t
- PlatformPoolYieldInvariant.t
- Docs
- 02-core-concepts.md
- 04-pool-models.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09a-custody.md
- 10-status-machines.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- 22-notifications.md
- 23-money-path.md
- 26-glossary.md
- Infra
- DB 0183_drop_holdback.sql
- DB schema.sql
- apply-proposal.ts
- approve-redemption.ts
- decode.ts
- diff.ts
- engine.ts
- epoch-redemption.ts
- events.ts
- fallback-redemption.ts
- fold.test.ts
- fold.ts
- governance.ts
- holdback-release.test.ts
- holdback-release.ts
- in-app-copy.ts
- index.ts
- redemption.ts
- units.test.ts
- units.ts
- write.ts
- Investor Web
- status
- Lambda API
- pools.post.notify-fund
- pools.post.wind-down
- redemption-requests.get.epoch-summary
- Other
- CLAUDE.md
- packages/money-contract/src/generated/platform-pool.ts
- packages/money-core/src/tests/prorata.test.ts
- packages/money-core/src/axis.ts
- packages/money-core/src/prorata.ts
- packages/money-domain/fixtures/README.md
- packages/money-domain/fixtures/deposit.json
- packages/money-domain/fixtures/epoch.json
- packages/money-domain/fixtures/redemption-instant.json
- packages/money-domain/fixtures/wind-down.json
- packages/money-domain/src/tests/deposit-math.test.ts
- packages/money-domain/src/tests/events.test.ts
- packages/money-domain/src/tests/fixture-shape.test.ts
- packages/money-domain/src/tests/money-core-conformance.test.ts
- packages/money-domain/src/events.ts
- scripts/check-contract-boundaries.mjs
- Smart Contract
- GovernanceLib
- NavLib
- PlatformPool
- PlatformPoolStorage
- PoolLedgerLib
- RedemptionLib
- YieldLib
fix 10:52:39 c424ece2
fix(kyc): IN_REVIEW means the applicant was submitted, not that the SDK was opened
12 files · +315 · -102
- Docs
- 03-kyc-identity.md
- 10-status-machines.md
- Infra
- applicant-submitted.test.ts
- client.ts
- enter-review.ts
- index.ts
- sync-review.ts
- Investor Web UI
- KYCModal
- Lambda API
- kyc.post.access-token
- kyc.post.sync
- kyc.post.webhook
- kyc.scheduler.reconcile-sweep
fix 10:52:39 b5fffa5f
fix(kyc): the SBT mint stops inventing a jurisdiction, and a login stops collapsing four identity states into two
32 files · +969 · -310
- Docs
- 03-kyc-identity.md
- 10-status-machines.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- Infra
- DB 0183_kyc_logs_reviewed_at_indexes.sql
- DB schema.sql
- applicant-mirror.test.ts
- applicant-mirror.ts
- apply-review.ts
- client.ts
- final-rejection.ts
- index.ts
- kyc-gating.test.ts
- kyc-gating.ts
- kyc-sbt.ts
- mint-queue.ts
- review-log.ts
- sbt-sync.test.ts
- sbt-sync.ts
- sbt-validity.test.ts
- sbt-validity.ts
- verification-gate.ts
- Investor Web API
- use-user-settings
- Lambda API
- auth.post.verify
- kyc.get.status
- kyc.post.access-token
- kyc.post.mint-sbt
- kyc.post.reuse
- kyc.post.webhook
- kyc.scheduler.reconcile-sweep
- kyc.scheduler.reverify-sweep
fix 10:52:39 a49d3ee2
fix(nav): the tranche write-down priced a loss against the denominator R9 rejected
6 files · +165 · -48
- Infra
- announce-writedown.ts
- writedown-crossing.test.ts
- writedown-update-copy.ts
- Lambda API
- nav-changes.post.activate
- nav-changes.scheduler.apply-pending
- tranche.post.writedown
fix 10:52:39 ffaa796f
fix(money): a transaction that already succeeded stops being reported as a failure
32 files · +782 · -324
- Infra
- epoch-settlement.test.ts
- epoch-settlement.ts
- epoch.ts
- governance.ts
- lookups.ts
- own-transaction.ts
- package.json
- pipeline.ts
- redemption.ts
- run-distribution.ts
- yield.ts
- Lambda API
- deposits.post.create
- pools.post.epoch-funding
- pools.post.notify-fund
- redemption-requests.post.approve
- redemption-requests.post.claim
- redemption-requests.post.claim-fallback
- redemption-requests.post.create
- redemption-requests.post.escalate
- redemption-requests.post.fund
- redemption-requests.post.notify-fund
- redemption-requests.post.record-funding
- redemption-requests.post.reject
- redemption-requests.scheduler.epoch-cutoff
- redemption-requests.scheduler.epoch-execute
- yield-claims.post.create
- yield.post.reinvest
- yield.scheduler.reconcile
- yield.scheduler.stalled
- Other
- scripts/check-fastpath-ingest.mjs
🔵 jy/product
feat 17:38:29 469f1aed
feat(design): fluid type, one page column, and a monitor rung that buys content instead of size
47 files · +371 · -97
- Admin
- Route (dashboard)
- Route (fund-detail)
- Route (fund-invite-accept)
- Route (login)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (preview.pool-create)
- Route (preview.redemptions)
- Route (preview.yield)
- Route (super-login)
- editorial
- fund-dialog
- nav-change-dialog
- pool-controls
- totp-step
- Admin UI
- page-header
- page-layout
- Docs
- 14-decisions.md
- 17-changelog.md
- 25-design-system.md
- Investor Web
- PoolBrowseCard
- Route ($)
- Route (activity)
- Route (dashboard)
- Route (help)
- Route (kyc)
- Route (notifications)
- Route (pool.$id)
- Route (pools)
- Route (portfolio)
- Route (settings)
- Route (styleguide.epoch-states)
- Route (styleguide.notifications)
- Route (styleguide.portfolio)
- Widget (header)
- Widget (notification-detail-modal)
- global
- root
- Investor Web UI
- Footer
- KYCModal
- LegalPageLayout
- OnboardingModal
- RedeemModal
- YieldClaimDialog
- skeleton
- Other
- packages/ds-editorial/src/tokens.css
feat 12:01:59 e30866ba
feat(admin): Redemptions matches the mockup — pool roll-ups both tabs, one right column that swaps
8 files · +620 · -31
- Admin
- Route (redemptions)
- epoch-cycle-aside
- epoch-management-section
- index
- instant-pool-aside
- instant-pool-rollup
- Admin API
- use-redemption-requests
fix 11:48:47 d40c56f4
fix(admin): the cycle detail is laid out for the column it is actually in, and can be closed
2 files · +49 · -9
- Admin
- epoch-cycle-panel
- epoch-management-section
fix 11:40:28 6c18a030
fix(admin): the epoch cycle opens beside the table, in the slot the overview panel was holding
3 files · +47 · -10
- Admin
- Route (redemptions)
- epoch-cycle-panel
- epoch-management-section
fix 11:23:39 ff43ee13
fix(admin): the epoch rollup opens a cycle on click, instead of always having one open
1 files · +24 · -5
- Admin
- epoch-management-section
feat 11:13:31 76ca7100
feat(admin): the obligation panel stays on Epoch, an admin can chase from the card, and a passed date says so
3 files · +105 · -12
- Admin
- Route (redemptions)
- confirmed-obligations
- funding-load-card
fix 10:59:50 20c0b9f8
fix(redemptions): archived pools are not obligations, and stop counting toward the denominator
2 files · +23 · -4
- Admin
- Route (redemptions)
- Lambda API
- redemption-requests.get.epoch-summary
fix 10:53:44 da2bd07d
fix(admin): a scheduled cycle is numbered by the cursor that is accepting requests, not the one settling
4 files · +70 · -10
- Admin
- Route (redemptions)
- epoch-management-section
- redemption-funding
- redemption-obligations-nodes.test
2026-08-12 (Wed)
🟢 ch/product
fix 17:59:24 94fcca5b
fix(money): stablecoin scale is a property of the token, not an assumption
23 files · +570 · -277
- Infra
- DB 0180_stablecoin_decimals_stop_guessing.sql
- DB 0181_money_positions_backing_invariant.sql
- deposit.ts
- diff-compare.test.ts
- diff.ts
- events.ts
- fees.ts
- fold.test.ts
- fold.ts
- ledger.ts
- mirror.ts
- pipeline.ts
- redemption.ts
- replay.ts
- run-distribution.ts
- stablecoin.ts
- write.ts
- yield.ts
- Lambda API
- deposits.post.create
- pools.post.epoch-funding
- redemption-requests.post.fund
- yield-distributions.post.distribute
fix 16:35:58 e145fa2c
fix(money,web): a position priced off the fold read $0, because par emits no event
3 files · +51 · -26
- Infra
- read.ts
- Investor Web API
- portfolio-positions
- Lambda API
- portfolio-positions.get.list
fix 16:22:15 982844e3
fix(money): a ledger integer read back as a double loses its last digits
5 files · +111 · -9
- Infra
- fold.ts
- governance.ts
- ledger.ts
- numeric.test.ts
- numeric.ts
fix 16:22:15 2f730b12
fix(infra): a deploy that cannot succeed says so, instead of spinning forever
5 files · +191 · -60
- Infra
- pool-field-validation.test.ts
- pool-field-validation.ts
- Lambda API
- pools.post.create
- pools.post.lifecycle
- pools.worker.deploy
refactor 16:22:15 9ec2b0f3
refactor(money): positions read the projection, and portfolio_positions goes
32 files · +858 · -385
- Infra
- CDK Stack (route-configs)
- DB 0177_projection_stores_its_yield_accumulator.sql
- DB 0178_position_list_replaces_portfolio_positions.sql
- DB 0179_reseed_fjl_display_positions.sql
- DB schema.sql
- diff.ts
- index.ts
- investor-stats.ts
- mirror.ts
- read.ts
- redemption.ts
- resolve.ts
- run-distribution.ts
- write.ts
- Investor Web
- Route (pool.$id)
- Route (portfolio)
- Route (styleguide.portfolio)
- Widget (PCWidgets)
- use-redeem-flow
- Investor Web API
- redemption-requests
- yield-claims
- Investor Web UI
- YieldClaimDialog
- Lambda API
- pool-updates.get.list
- pools.delete
- portfolio-positions.get.list
- redemption-requests.post.create
- users.get.investor-detail
- yield-claims.post.create
- yield-distributions.get.investors
- yield.post.reinvest
- yield.scheduler.reconcile
refactor 16:22:15 ed255722
refactor(infra): the API route table moves out of the stack that mounts it
2 files · +1099 · -1089
- Infra
- CDK Stack (api-stack)
- CDK Stack (route-configs)
refactor 16:22:15 a3bd581d
refactor(web,admin): route components hand their own state to the pieces that use it
19 files · +3038 · -2349
- Admin
- Route (admin-settings)
- Route (dashboard)
- Route (fund-detail)
- Route (redemptions)
- Route (yield)
- admin-users-tab
- create-distribution-dialog
- distribute-with-retry
- epoch-management-section
- fund-members-section
- index
- use-dashboard-retry
- yield-calc-breakdown
- Investor Web
- Route (pool.$id)
- Widget (withdraw-dialog)
- use-epoch-position
refactor 16:22:15 0b4f3877
refactor(web,admin): the browser shell both apps copy lives in one package
14 files · +242 · -1096
- Admin
- env
- package
- query-client
- wagmi
- Investor Web
- env
- package
- query-client
- wagmi
- Other
- packages/app-kit/package.json
- packages/app-kit/src/env.ts
- packages/app-kit/src/index.ts
- packages/app-kit/src/query-client.ts
- packages/app-kit/src/wagmi-wallets.ts
- pnpm-lock.yaml
refactor 16:22:15 2c7cd755
refactor(types): the pools row is declared once, not once per app
5 files · +126 · -150
- Admin API
- pools
- Investor Web
- index
- Investor Web API
- pools
- Other
- packages/types/src/index.ts
- packages/types/src/pool-row.ts
refactor 16:22:15 cd6a8d53
refactor(infra): one place decides whether a pool config is valid
6 files · +640 · -397
- Infra
- pool-field-validation.test.ts
- pool-field-validation.ts
- yield-interval.ts
- yield-schedule.ts
- Lambda API
- pools.patch.update
- pools.post.create
chore 16:22:15 c2461680
chore(infra): retire the refactor's one-off scripts and the column they fed
14 files · +120 · -7662
- Admin
- wallet-silent-reconnect
- Docs
- 23-money-path.md
- Infra
- DB 0176_drop_deployed_block.sql
- PlatformKYCSoulbound.abi.json
- PlatformLPToken.abi.json
- PlatformPool.abi.json
- PlatformPoolFactory.abi.json
- README.md
- backfill-maturity-date.ts
- backfill.ts
- capture-deployment-blocks.ts
- registry.json
- Investor Web
- wallet-silent-reconnect
- Other
- packages/app-kit/src/wallet-silent-reconnect.ts
refactor 13:14:12 18278701
refactor(money): one rule, one implementation of redemptionState
3 files · +18 · -85
- Other
- packages/money-core/src/tests/penalty.test.ts
- packages/money-core/src/penalty.ts
- packages/money-domain/src/policies/redemption.ts
refactor 13:14:12 c4b70f80
refactor(money): the distribution workflow table finally gets its writer
16 files · +600 · -220
- Infra
- DB 0175_distribution_joins_the_ledger.sql
- DB schema.sql
- distribution.ts
- due-rows.ts
- next-due.ts
- pipeline.ts
- run-distribution.ts
- yield-schedule.ts
- yield.ts
- Lambda API
- dashboard.get.stats
- yield-distributions.get.counts
- yield-distributions.get.investors
- yield-distributions.get.list
- yield-distributions.post.create
- yield-distributions.post.distribute
- yield.scheduler.stalled
fix 10:53:02 f423c03c
fix(admin): the funding path read a struct position that had moved
11 files · +171 · -40
- Admin
- use-fund-all-flow
- use-fund-redemption-flow
- Infra
- approve-redemption.ts
- exit-gate.ts
- fallback-redemption.ts
- Lambda API
- redemption-requests.post.cancel
- redemption-requests.post.create
- Other
- packages/money-contract/package.json
- packages/money-contract/src/tests/tuples.test.ts
- packages/money-contract/src/index.ts
- packages/money-contract/src/tuples.ts
🔵 jy/product
refactor 19:11:27 404862bd
refactor(web): the last tranche pill becomes a dot, and the risk-tier pill loses its file
4 files · +37 · -60
- Investor Web
- PoolBrowseCard
- TrancheBadge
- Investor Web UI
- index
- risk-tier-badge
test 19:01:28 a60638db
test(admin): the preview route gets the zero state, which is the one the live screen is usually in
1 files · +32
- Admin
- Route (preview.redemptions)
feat 18:45:27 cdaf5baf
feat(admin): the pool-level FM nudge goes live, and the obligation card stops disappearing when it is zero
8 files · +182 · -20
- Admin
- Route (redemptions)
- epoch-admin-rollup
- epoch-cycle-panel
- epoch-management-section
- funding-load-card
- Admin API
- keys
- redemption-requests
- use-redemption-requests
fix 18:22:30 dea343ae
fix(infra): the redemption list view stops inverting its own wait state, and stops guessing a token's scale
13 files · +733 · -23
- Docs
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- Infra
- CDK Stack (route-configs)
- DB 0182_redemption_list_status_and_hold_flag.sql
- DB schema.sql
- read.ts
- redemption-decision.ts
- Lambda API
- pools.post.notify-fund
- redemption-requests.get.instant-summary
- redemption-requests.get.list
- redemption-requests.post.notify-fund
- yield.scheduler.reconcile
fix 18:06:51 9f3a8add
fix(web): the pool page called a hook after its own early return, so a cold load died
1 files · +16 · -4
- Investor Web
- Route (pool.$id)
fix 17:45:57 41a52fad
fix(web): a badge lookup that used to miss quietly now throws, and a sync signal that is no longer sent
2 files · +23 · -16
- Investor Web API
- portfolio-positions
- Investor Web UI
- tx-type-badge
fix 17:30:37 fa29412b
fix(web): one type scale across the PDP and the portfolio, and the last pills go
17 files · +198 · -196
- Investor Web
- Route (pool.$id)
- Route (portfolio)
- Widget (LiquidityTimeline)
- Widget (PCWidgets)
- Widget (PortfolioComposition)
- Widget (PortfolioHero)
- Widget (PortfolioHistory)
- Widget (cancel-redemption-dialog)
- Widget (epoch-position-panel)
- Widget (fund-data-tab)
- Widget (invest-confirm-dialog)
- Widget (invest-sidebar)
- Widget (overview-tab)
- Widget (performance-tab)
- Widget (position-card)
- Widget (reinvest-confirm-dialog)
- Widget (withdraw-dialog)
refactor 17:23:56 c80e79da
refactor(web): finish the withdraw-dialog extraction the merge left half-done
2 files · +36 · -429
- Investor Web
- Route (portfolio)
- Widget (withdraw-dialog)
fix 17:02:36 4b481817
fix(web): the status badge stopped being legible when it stopped being a pill, and the lead pair loses its rules
3 files · +38 · -17
- Investor Web
- Widget (PCWidgets)
- Widget (PortfolioHistory)
- Investor Web UI
- status-badge
refactor 16:58:53 06cc49d1
refactor(admin): Step 4 splits Yield from Fees, and says why there is no payout-date field
5 files · +215 · -159
- Admin
- Route (preview.epoch-schedule)
- Route (preview.pool-create)
- routes
- step-yield-fees
feat 16:54:48 838f018b
feat(web): two zones instead of three, and the status pill becomes a dot
6 files · +198 · -210
- Investor Web
- Widget (LiquidityTimeline)
- Widget (PCWidgets)
- Widget (PortfolioHistory)
- portfolio
- Investor Web UI
- status-badge
- tx-type-badge
refactor 16:47:30 3a8d2f94
refactor(admin): lock and timelock copy speaks to the operator, not about the system
8 files · +19 · -19
- Admin
- epoch-schedule-block
- permissions
- step-basics
- step-compliance
- step-redemption
- step-structure
- step-terms
docs 16:37:30 90c30d64
docs(v3-125) + test(web): write down the par ceiling, and pin the dates the timeline emits
7 files · +279 · -8
- Docs
- 14-decisions.md
- 17-changelog.md
- Investor Web
- Widget (LiquidityTimeline)
- Widget (PCWidgets)
- Widget (PortfolioComposition)
- Widget (PortfolioHistory)
- portfolio-liquidity.test
refactor 16:35:22 80aae5ca
refactor(admin): field help becomes one line, and the wizard stops being narrower than the pool page
14 files · +123 · -110
- Admin
- Route (pool-create)
- Route (pool-edit)
- epoch-schedule-block
- step-basics
- step-compliance
- step-redemption
- step-structure
- step-terms
- step-yield-fees
fix 16:20:23 8a4b00eb
fix(admin): the epoch bar's labels overflowed at a 1-day leftover; add /preview/epoch-schedule
4 files · +209 · -24
- Admin
- Route (pool-create)
- Route (preview.epoch-schedule)
- epoch-schedule-block
- routes
fix 16:17:31 b4ecba3a
fix(web): an unreadable date should cost one value, not the whole route
2 files · +34 · -8
- Investor Web
- formatters
- portfolio-liquidity
docs 16:11:40 a982a4f4
docs(v3-124): three time bases stay apart, and 07's cycle diagram was missing a third of the cycle
5 files · +98 · -14
- Docs
- 04-pool-models.md
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
- 26-glossary.md
feat 16:11:23 b9855d6c
feat(admin): the epoch wizard draws the whole cycle, and a month means 30 days
9 files · +636 · -118
- Admin
- editorial
- epoch-schedule
- epoch-schedule-block
- epoch-schedule.test
- index
- step-redemption
- time-units
- time-units.test
feat 15:29:46 080362ca
feat(web): rebuild the portfolio around when the money comes back
14 files · +2391 · -195
- Investor Web
- Route (activity)
- Route (portfolio)
- Route (styleguide.portfolio)
- Widget (LiquidityTimeline)
- Widget (PCWidgets)
- Widget (PortfolioComposition)
- Widget (PortfolioHero)
- Widget (PortfolioHistory)
- global
- portfolio
- portfolio-liquidity
- routes
- transaction-entries
- Investor Web UI
- RedeemModal
docs 12:31:00 4610d0e0
docs(v3-123): record the Yield batch run, and retire a "not built" claim that shipped a week ago
3 files · +52 · -5
- Docs
- 13-operations.md
- 14-decisions.md
- 17-changelog.md
feat 12:23:09 2471f351
feat(admin): the Yield review can sign the whole priced set, as N deposits
5 files · +383 · -40
- Admin
- Route (preview.yield)
- Route (yield)
- fund-all-dialog
- routes
- use-fund-all-flow
fix 11:37:12 43a445a3
fix(web,admin): a holder's own redemption was priced in LP, and shown as $0 when it had no price
6 files · +79 · -31
- Admin
- epoch-cycle-panel
- epoch-pool-list
- Investor Web
- Route (activity)
- Widget (activity-tab)
- transaction-entries
- Investor Web UI
- TransactionDetailDrawer
2026-08-11 (Tue)
🟢 ch/product
docs 19:21:35 7f77ca5d
docs: retire the money-flow refactor working notes
1 files · -938
- Docs
- money-flow-architecture.md
fix 19:21:34 97a60b97
fix(admin): two epoch statuses had no tab, and Failed could never have one
10 files · +168 · -29
- Admin
- Route (redemptions)
- epoch-cycle-panel
- epoch-pool-filter
- epoch-pool-filter.test
- fund-dialog
- fund-epoch-cycle-button
- index
- Admin API
- redemption-requests
- Lambda API
- redemption-requests.get.counts
- redemption-requests.get.list
fix 19:19:03 e78342b7
fix(contract): an approved redemption could settle out of the partner's yield
7 files · +322 · -100
- Contract Test
- PlatformPool.t
- PlatformPoolFlows.t
- PlatformPoolYieldInvariant.t
- Infra
- approve-redemption.ts
- fallback-redemption.ts
- units.test.ts
- Smart Contract
- RedemptionLib
fix 19:19:03 495716b0
fix(contract): the generated ABI declared a RedemptionRequested nobody emits
2 files · +133 · -45
- Other
- packages/money-contract/src/generated/platform-pool.ts
- Smart Contract
- sepolia.md
fix 19:19:03 71467c6f
fix(money): the screens computed answers the pool already holds
31 files · +1904 · -191
- Admin
- Route (dashboard)
- Route (redemptions)
- epoch-cycle-panel
- overview-tab
- Admin API
- dashboard
- redemption-requests
- Contract Test
- PlatformPoolInvariant.t
- PlatformPoolPenaltyInvariant.t
- PlatformPoolYieldInvariant.t
- Docs
- 11-db-schema.md
- 23-money-path.md
- Infra
- DB 0174_drop_legacy_schema.sql
- DB schema.sql
- cost-basis.test.ts
- cost-basis.ts
- dispatch-coverage.test.ts
- engine.ts
- package.json
- pool-maturity.test.ts
- pool-maturity.ts
- reserve-shortfall.test.ts
- reserve-shortfall.ts
- Lambda API
- dashboard.get.stats
- pools.scheduler.lifecycle
- redemption-requests.get.epoch-summary
- Other
- packages/money-core/package.json
- packages/money-core/src/tests/penalty.test.ts
- packages/money-core/src/tests/pricing.test.ts
- packages/money-core/src/tests/prorata.test.ts
- packages/money-domain/package.json
- scripts/check-tests-present.mjs
fix 19:19:03 1e27de91
fix(money): the indexer was still writing two columns the fold owns
7 files · +401 · -46
- Docs
- 11-db-schema.md
- 23-money-path.md
- 26-glossary.md
- Infra
- DB 0172_drop_money_tvl_daily.sql
- DB 0173_pool_delete_drops_money_tvl_daily_reference.sql
- DB schema.sql
- engine.ts
fix 19:19:03 aa3561fb
fix(money): the yield split stops computing a denominator the contract already applied
7 files · +232 · -1328
- Admin
- backend_requirements
- Docs
- 11-db-schema.md
- d-1-decision.md
- Infra
- DB schema.sql
- run-distribution.ts
- Other
- docs-code-verification.md
- refactor-review-infra.md
feat 19:19:03 a6092b5b
feat(money): the four things the ledger migration left for a decision
21 files · +557 · -101
- Admin
- Route (dashboard)
- package
- use-fund-all-flow
- use-fund-redemption-flow
- Infra
- DB 0171_failed_alerts_count_reverted_submissions.sql
- DB schema.sql
- deposit.ts
- fastpath.ts
- ops-variants.ts
- yield.ts
- Investor Web
- Widget (invest-sidebar)
- epoch-position-state
- pool-exit
- refusals
- Investor Web UI
- YieldClaimDialog
- Lambda API
- dashboard.get.stats
- deposits.post.create
- redemption-requests.post.create
- Other
- packages/money-domain/src/policies/redemption.ts
- packages/money-domain/src/pool-state.ts
- pnpm-lock.yaml
style 19:15:01 b8882dff
style(admin): the sidebar scrolled the account block out of reach
1 files · +36 · -30
- Admin
- rail
style 11:15:32 e6b6f0e4
style(admin): the sidebar scrolled but did not need to show it
2 files · +12 · -1
- Admin
- global
- rail
refactor 00:46:05 2962da6a
refactor(money): retire the shadow, keep the tools that write the live ledger
27 files · +7509 · -10723
- Admin API
- pools
- Infra
- DB 0169_drop_deprecated_pool_columns.sql
- DB 0170_drop_replay_shadow_schema.sql
- DB schema.sql
- PlatformKYCSoulbound.abi.json
- PlatformLPToken.abi.json
- PlatformPool.abi.json
- PlatformPoolFactory.abi.json
- README.md
- backfill.ts
- capture-deployment-blocks.ts
- ledger-rows.json
- load.ts
- project.ts
- registry.json
- run.ts
- transactions.json
- yield-schedule.ts
- Lambda API
- pools.get.list
refactor 00:45:56 5591807d
refactor(money): drop the four tables the ledger replaced, keep the history it does not hold
11 files · +356 · -701
- Docs
- 11-db-schema.md
- 14-decisions.md
- 23-money-path.md
- Infra
- DB 0163_dashboard_alerts_from_ledger.sql
- DB 0164_pool_delete_and_epoch_summary_from_ledger.sql
- DB 0165_drop_migrated_money_tables.sql
- DB 0166_drop_orphaned_deposit_procedures.sql
- DB 0167_drop_orphaned_deposit_procedures_correct_signatures.sql
- DB 0168_legacy_schema_is_kept.sql
- DB schema.sql
- Lambda API
- dashboard.get.stats
🔵 jy/product
feat 15:39:15 30bdea68
feat(admin): A-7 an epoch row says what kind of demand it is, A-8 the announced NAV shows its number
2 files · +117 · -12
- Admin
- Route (redemptions)
- epoch-cycle-panel
feat 15:08:32 33180549
feat(admin): A-5 an admin reads epoch as one row per pool
4 files · +250 · -9
- Admin
- Route (preview.redemptions)
- Route (redemptions)
- epoch-admin-rollup
- index
feat 14:49:17 3c1809d4
feat(admin): A-3 the payout shows its arithmetic, A-4 an epoch request offers its cycle's Fund
3 files · +211 · -36
- Admin
- Route (preview.redemptions)
- Route (redemptions)
- redemption-detail-panel
feat 13:00:43 a5d5a6e0
feat(admin): A-2 Fund all, as N signatures that survive one of them failing
7 files · +639 · -10
- Admin
- Route (preview.redemptions)
- Route (redemptions)
- fund-all-button
- fund-all-dialog
- funding-load-card
- use-fund-all-flow
- use-fund-redemption-flow
docs 12:45:35 09557f53
docs(admin): correct what amount means, after ch/product moved it back
4 files · +16 · -13
- Admin
- Route (redemptions)
- redemption-detail-panel
- redemption-funding-modal
- Admin API
- redemption-requests
feat 12:41:41 e99a011a
feat(admin): A-6 the mode toggle reads as a mode, and A-1 the Fund dialog says what an amount buys
7 files · +409 · -145
- Admin
- Route (preview.redemptions)
- Route (redemptions)
- epoch-cycle-panel
- fund-cycle-dialog
- fund-dialog
- fund-epoch-cycle-button
- fund-payout-button
fix 11:03:14 1295171e
fix(admin): the timelines were printing a clock, and the hero buried its own figure
7 files · +58 · -29
- Admin
- Route (preview.redemptions)
- Route (redemptions)
- confirmed-obligations
- datetime
- funding-load-card
- index
- upcoming-timeline
feat 10:57:09 acfb0102
feat(admin): the wallet coverage line and the dashed TBD node, as the mockup drew them
7 files · +248 · -47
- Admin
- Route (preview.redemptions)
- Route (redemptions)
- confirmed-obligations
- funding-load-card
- redemption-funding
- redemption-obligations-nodes.test
- use-fund-wallet-coverage
feat 10:46:22 73ce74db
feat(admin): the right panel says where the money has to go, not how many rows there are
5 files · +328 · -34
- Admin
- Route (preview.redemptions)
- Route (redemptions)
- funding-load-panel
- index
- redemption-funding
feat 10:37:31 a3798818
feat(admin): a preview route, so the redemption sections can be reviewed without seeding
4 files · +151 · -2
- Admin
- Route (preview.redemptions)
- epoch-cycle-panel
- index
- routes
feat 10:31:21 d3cd8a31
feat(admin): an instant row says how much it is short, and each mode says what it lists
1 files · +41 · -3
- Admin
- Route (redemptions)
feat 10:29:34 f62daff6
feat(admin): the epoch cycle says how short it is, and what happens if nobody funds it
2 files · +87
- Admin
- Route (redemptions)
- epoch-cycle-panel
2026-08-10 (Mon)
🟢 ch/product
fix 19:48:32 9532439f
fix(build): the web deploy could not build a package it depends on
3 files · +8 · -8
- Admin
- package
- Infra
- package.json
- Investor Web
- package
feat 19:42:07 2d0e6900
feat(landing): /trust, plus one shell and one type scale for five pages
92 files · +2576 · -260
- Other
- landing/app/root.tsx
- landing/app/routes.ts
- landing/app/routes/$.tsx
- landing/app/routes/about.tsx
- landing/app/routes/fund-managers.tsx
- landing/app/routes/investors.tsx
- landing/app/routes/landing.tsx
- landing/app/routes/layout.tsx
- landing/app/routes/trust.tsx
- landing/app/shared/config/contact.ts
- landing/app/shared/config/sections.ts
- landing/app/shared/copy/about.ts
- landing/app/shared/copy/fund-managers.ts
- landing/app/shared/copy/investors.ts
- landing/app/shared/copy/landing.ts
- landing/app/shared/copy/site.ts
- landing/app/shared/copy/trust.ts
- landing/app/shared/ui/glyph.tsx
- landing/app/shared/ui/index.ts
- landing/app/shared/ui/pill-button.tsx
- landing/app/shared/ui/platform-logo.tsx
- landing/app/widgets/about/hero.tsx
- landing/app/widgets/about/index.ts
- landing/app/widgets/about/team.tsx
- landing/app/widgets/about/why-we-build.tsx
- landing/app/widgets/footer/footer.tsx
- landing/app/widgets/fund-managers/already-onboarded.tsx
- landing/app/widgets/fund-managers/better-way.tsx
- landing/app/widgets/fund-managers/get-started.tsx
- landing/app/widgets/fund-managers/hero.tsx
- landing/app/widgets/fund-managers/index.ts
- landing/app/widgets/fund-managers/panel-preview.tsx
- landing/app/widgets/fund-managers/what-you-get.tsx
- landing/app/widgets/header/header.tsx
- landing/app/widgets/index.ts
- landing/app/widgets/investors/faq.tsx
- landing/app/widgets/investors/hero.tsx
- landing/app/widgets/investors/how-you-invest.tsx
- landing/app/widgets/investors/index.ts
- landing/app/widgets/investors/invest-terms.tsx
- landing/app/widgets/investors/returns-redemption.tsx
- landing/app/widgets/investors/risks.tsx
- landing/app/widgets/investors/verify.tsx
- landing/app/widgets/landing/access-contrast.tsx
- landing/app/widgets/landing/collateral.tsx
- landing/app/widgets/landing/final-cta.tsx
- landing/app/widgets/landing/fund-managers.tsx
- landing/app/widgets/landing/hero.tsx
- landing/app/widgets/landing/independent-data.tsx
- landing/app/widgets/landing/index.ts
- landing/app/widgets/landing/safeguards.tsx
- landing/app/widgets/landing/what-you-invest-in.tsx
- landing/app/widgets/site/closing-frame.tsx
- landing/app/widgets/site/index.ts
- landing/app/widgets/trust/hero.tsx
- landing/app/widgets/trust/immutable.tsx
- landing/app/widgets/trust/index.ts
- landing/app/widgets/trust/money-path.tsx
- landing/app/widgets/trust/onchain-data.tsx
- landing/app/widgets/trust/pillars.tsx
- landing/global.css
- landing/public/landing/about-hero.jpg
- landing/public/landing/about-team.jpg
- landing/public/landing/arrow-right-ink.svg
- landing/public/landing/arrow-right-sm.svg
- landing/public/landing/cta-backdrop.jpg
- landing/public/landing/cta-sphere.jpg
- landing/public/landing/fund-managers-hero.jpg
- landing/public/landing/fund-managers-street.jpg
- landing/public/landing/hashed.png
- landing/public/landing/icon-asterisk.svg
- landing/public/landing/icon-chevron-down.svg
- landing/public/landing/icon-info.svg
- landing/public/landing/icon-redo2.svg
- landing/public/landing/investors-hero.jpg
- landing/public/landing/investors-steps.jpg
- landing/public/landing/investors-terms-icons.png
- landing/public/landing/rwa-xyz.svg
- landing/public/landing/shardlab.png
- landing/public/landing/trust-custody-backdrop.jpg
- landing/public/landing/trust-flow-deposit-pool.svg
- landing/public/landing/trust-flow-investor-deposit.svg
- landing/public/landing/trust-flow-loan-originator.svg
- landing/public/landing/trust-flow-lp-investor.svg
- landing/public/landing/trust-flow-originator-repayment.svg
- landing/public/landing/trust-flow-pool-loan.svg
- landing/public/landing/trust-flow-pool-lp.svg
- landing/public/landing/trust-flow-pool-yield.svg
- landing/public/landing/trust-flow-repayment-pool.svg
- landing/public/landing/trust-flow-yield-investor.svg
- landing/public/landing/trust-hero.jpg
- landing/public/landing/trust-immutable-icons.png
fix 19:36:42 4427674a
fix(money): a cancelled redemption left no record and read as a failure
8 files · +296 · -20
- Infra
- DB 0162_redemption_list_cancel_is_not_failure.sql
- DB schema.sql
- engine.ts
- events.ts
- fold.ts
- redemption.ts
- Other
- packages/money-domain/src/tests/events.test.ts
- packages/money-domain/src/events.ts
fix 19:20:19 05a1494f
fix(web): every holder had their own maturity, and none of them the pool's
14 files · +232 · -23
- Infra
- DB 0161_pools_maturity_date.sql
- backfill-maturity-date.ts
- Investor Web
- Route (portfolio)
- Widget (PCWidgets)
- Widget (position-card)
- package
- portfolio-stats
- redemption-state
- redemption-state.test
- Investor Web API
- pools
- Investor Web UI
- RedeemModal
- Lambda API
- pools.get.list
- pools.worker.deploy
- Other
- pnpm-lock.yaml
feat 19:04:34 af77bfa4
feat(money): derive the wind-down NAV a second time and report disagreement
3 files · +151 · -1
- Infra
- fold.test.ts
- fold.ts
- governance.ts
fix 18:58:20 68e09100
fix(money): the projection priced an unpriced pool at par
7 files · +69 · -12
- Infra
- DB 0160_pool_state_nav_nullable.sql
- DB schema.sql
- backfill.ts
- fold.test.ts
- fold.ts
- project.ts
- write.ts
fix 18:37:40 74b270c1
fix(money): accrued yield was computed twice, and the two answers disagreed
15 files · +567 · -358
- Infra
- DB 0157_yield_claim_list_view.sql
- DB 0158_deposit_list_reinvestments.sql
- DB 0159_investor_activity_claims_from_ledger.sql
- DB schema.sql
- deposit.ts
- fold.test.ts
- fold.ts
- mirror.ts
- portfolio-positions.ts
- run-distribution.ts
- yield.ts
- Lambda API
- yield-claims.get.list
- yield-claims.post.create
- yield.post.reinvest
- yield.scheduler.reconcile
fix 18:19:21 befc5715
fix(money): the epoch claim path was never wired up at all
8 files · +501 · -465
- Infra
- DB 0154_redemption_workflow_epoch_id.sql
- DB 0155_redemption_list_epoch_fills.sql
- DB 0156_investor_activity_fills_from_ledger.sql
- DB schema.sql
- engine.ts
- epoch.ts
- redemption.ts
- Lambda API
- redemption-requests.scheduler.epoch-execute
fix 18:08:36 2679a714
fix(money): the redemption list priced LP in dollars, then returned null
2 files · +143 · -3
- Infra
- DB 0153_redemption_list_amount_is_lp.sql
- DB schema.sql
fix 18:01:09 f5d503fb
fix(money): every admin action on a redemption was about to 404
13 files · +258 · -603
- Infra
- redemption.ts
- Lambda API
- dashboard.get.stats
- redemption-requests.post.approve
- redemption-requests.post.cancel
- redemption-requests.post.claim
- redemption-requests.post.claim-fallback
- redemption-requests.post.create
- redemption-requests.post.escalate
- redemption-requests.post.fund
- redemption-requests.post.notify-fund
- redemption-requests.post.record-funding
- redemption-requests.post.reject
fix 18:01:09 8435b67e
fix(money): a rejected redemption was reading as REQUESTED, and the feeds showed none at all
9 files · +252 · -23
- Docs
- 11-db-schema.md
- Infra
- DB 0150_redemption_workflow_request_key.sql
- DB 0151_investor_activity_redeem_from_ledger.sql
- DB 0152_audit_feed_redemptions_from_ledger.sql
- DB schema.sql
- redemption-decision.ts
- Lambda API
- redemption-requests.post.cancel
- redemption-requests.post.reject
- Smart Contract
- sepolia.md
fix 18:01:09 59a1a12d
fix(landing): the page holds its shape at every browser zoom level
10 files · +280 · -32
- Other
- landing/app/shared/ui/spline-scene.tsx
- landing/app/widgets/header/header.tsx
- landing/app/widgets/header/use-publish-header-bottom.ts
- landing/app/widgets/landing/collateral.tsx
- landing/app/widgets/landing/fund-managers.tsx
- landing/app/widgets/landing/hero-scene.tsx
- landing/app/widgets/landing/hero.tsx
- landing/app/widgets/landing/safeguards.tsx
- landing/app/widgets/landing/what-you-invest-in.tsx
- landing/global.css
fix 18:01:09 82435742
fix(money): a stored procedure was still writing balances the ledger owns
8 files · +198 · -21
- Docs
- 11-db-schema.md
- Infra
- DB 0149_redemption_rpc_stops_writing_balances.sql
- DB schema.sql
- pipeline.ts
- redemption.ts
- Lambda API
- redemption-requests.post.approve
- redemption-requests.post.fund
- redemption-requests.post.record-funding
feat 18:01:09 0f9d2e6e
feat(money): the redemption readers move to the ledger
9 files · +235 · -25
- Docs
- 11-db-schema.md
- Infra
- DB 0147_redemption_list_raw_investor_fields.sql
- DB 0148_redemption_list_pool_fields.sql
- DB schema.sql
- Lambda API
- dashboard.get.stats
- redemption-requests.get.counts
- redemption-requests.get.exit-gate
- redemption-requests.get.list
- redemption-requests.scheduler.exit-gate-sweep
feat 18:01:09 180dd352
feat(money): the redemption list, derived from the ledger
3 files · +210 · -1
- Docs
- 11-db-schema.md
- Infra
- DB 0146_money_redemption_list_view.sql
- DB schema.sql
fix 18:01:09 fc0afdb3
fix(contract): a redemption could not be reproduced from its own events
6 files · +223 · -16
- Contract Test
- PlatformPoolFlows.t
- Infra
- fold.test.ts
- fold.ts
- Other
- packages/money-contract/src/generated/platform-pool.ts
- Smart Contract
- PlatformPool
- RedemptionLib
docs 18:01:09 bbe614a5
docs(money): record what the deposit migration left behind
2 files · +31
- Docs
- money-flow-architecture.md
- Infra
- DB schema.sql
fix 15:59:30 70f3582d
fix(build): the frontends could not build the one dependency they have to build
3 files · +6 · -6
- Admin
- package
- Investor Web
- package
- Other
- packages/money-contract/package.json
feat 15:59:30 9f5dea72
feat(money): the deposit action moves to the ledger, and its balances stop being written twice
32 files · +1314 · -617
- Admin
- Route (deposits)
- Admin API
- deposits
- Docs
- 11-db-schema.md
- Infra
- DB 0138_deposit_workflow_risk_ack_jsonb.sql
- DB 0139_deposit_workflow_tx_hash.sql
- DB 0140_deposit_workflow_tx_index_not_partial.sql
- DB 0141_money_deposit_list_view.sql
- DB 0142_money_deposit_list_embedded_joins.sql
- DB 0143_deposit_list_numeric_and_activity_views.sql
- DB 0144_investor_activity_from_ledger.sql
- DB 0145_audit_feed_from_ledger.sql
- DB schema.sql
- deposit-eligibility.ts
- deposit.ts
- diff.ts
- engine.ts
- fold.test.ts
- fold.ts
- ledger.ts
- lp-transfer.ts
- mirror.ts
- pipeline.ts
- replay.ts
- status-filter.test.ts
- units.ts
- write.ts
- Lambda API
- deposits.get.counts
- deposits.get.list
- deposits.post.create
- pools.patch.update
- yield.post.reinvest
feat 15:47:16 f8044739
feat(landing): one scene for the hero, a static marquee for the safeguards
14 files · +294 · -200
- Other
- landing/.env.development
- landing/.env.example
- landing/.env.production
- landing/app/env.d.ts
- landing/app/shared/config/spline.ts
- landing/app/shared/copy/landing.ts
- landing/app/shared/ui/spline-scene.tsx
- landing/app/widgets/landing/hero-scene.tsx
- landing/app/widgets/landing/hero.tsx
- landing/app/widgets/landing/safeguards.tsx
- landing/global.css
- landing/public/landing/hero-backdrop.jpg
- landing/public/landing/safeguard-icons.png
- landing/public/landing/safeguards-sheet.png
docs 15:47:16 ae50238e
docs(contract): record the two 2026-08-10 deploy rounds and correct the libraries
1 files · +37 · -18
- Smart Contract
- sepolia.md
fix 15:47:16 c97bc9f0
fix(infra): the treasury fallback guaranteed the revert it looked like it avoided
1 files · +28 · -4
- Lambda API
- pools.worker.deploy
fix 15:47:16 c7bbf98c
fix(infra): the indexer never fetched six of the events the ledger decodes
2 files · +67
- Infra
- events.ts
- watched-events.test.ts
fix 15:47:16 e195ebae
fix(contract): the epoch claim's penalty leg never came back out of the ledger
9 files · +124 · -8
- Contract Test
- PlatformPoolEpoch.t
- Docs
- 07-redemption.md
- 08-smart-contracts.md
- money-flow-architecture.md
- Infra
- fold.test.ts
- fold.ts
- Other
- packages/money-contract/src/generated/platform-pool.ts
- Smart Contract
- PlatformPool
- RedemptionLib
feat 15:47:16 ee8db4c7
feat(infra): validation replay of the old pools, and the backfill it justified
8 files · +4542
- Docs
- d-1-decision.md
- money-flow-architecture.md
- Infra
- backfill.ts
- ledger-rows.json
- load.ts
- project.ts
- run.ts
- transactions.json
fix 15:47:16 5b217509
fix(infra): the ledger ingest would have failed on the first real deposit
14 files · +530 · -59
- Infra
- DB 0135_replay_shadow_schema.sql
- DB 0136_replay_own_sequence.sql
- DB 0137_stablecoin_registry_base_sepolia.sql
- abi-drift.test.ts
- decode.ts
- diff-compare.test.ts
- diff.ts
- fold.test.ts
- fold.ts
- pipeline.ts
- pool-registry.ts
- replay.ts
- write.ts
- Other
- packages/money-domain/src/events.ts
feat 15:47:16 1f67173f
feat(contract): EpochSettled could not tell anyone what the settlement booked
7 files · +105 · -14
- Contract Test
- PlatformPoolEpoch.t
- Docs
- 07-redemption.md
- 08-smart-contracts.md
- 26-glossary.md
- Other
- packages/money-contract/src/generated/platform-pool.ts
- Smart Contract
- PlatformPool
- RedemptionLib
feat 15:47:16 d04f7489
feat(infra): replay the ledger and report where the projections disagree
4 files · +344
- Infra
- README.md
- diff-compare.test.ts
- diff.ts
- replay.ts
feat 15:47:16 b998ff87
feat(infra): ingest — getLogs, decode, append, project
11 files · +1998 · -80
- Infra
- chain-config.ts
- decode.ts
- engine.ts
- fastpath.ts
- fold.test.ts
- fold.ts
- ledger.ts
- package.json
- pipeline.ts
- write.ts
- Other
- pnpm-lock.yaml
feat 15:47:16 632b4808
feat(infra): the money ledger, its projections, and the facts the chain does not carry
6 files · +741 · -2
- Docs
- 11-db-schema.md
- Infra
- DB 0132_money_events_ledger.sql
- DB 0133_money_projections.sql
- DB 0134_money_workflow.sql
- Other
- packages/money-domain/src/tests/events.test.ts
- packages/money-domain/src/events.ts
feat 15:47:16 57f21c23
feat(money-domain): the product's rules, once — and checked against the chain
18 files · +1847 · -2
- Contract Test
- PolicyConformance.t
- Other
- packages/money-domain/fixtures/DISCREPANCIES.md
- packages/money-domain/fixtures/deposit.json
- packages/money-domain/fixtures/epoch.json
- packages/money-domain/fixtures/nav.json
- packages/money-domain/fixtures/policy.json
- packages/money-domain/fixtures/redemption-instant.json
- packages/money-domain/fixtures/wind-down.json
- packages/money-domain/fixtures/yield-fees.json
- packages/money-domain/package.json
- packages/money-domain/src/tests/fixture-shape.test.ts
- packages/money-domain/src/tests/policy-conformance.test.ts
- packages/money-domain/src/tests/policy.test.ts
- packages/money-domain/src/index.ts
- packages/money-domain/src/policies/deposit.ts
- packages/money-domain/src/policies/redemption.ts
- packages/money-domain/src/pool-state.ts
- packages/money-domain/src/reasons.ts
refactor 15:47:16 b839cf1e
refactor(infra): seed configuration and identity, never balances
1 files · +33 · -281
- Infra
- DB seed.sql
feat 15:47:16 a6ce2f7e
feat: the reset transaction, and the runbook for the day it runs
1 files · +171
- Infra
- DB reset_to_legacy.sql
fix 15:47:16 375ba45b
fix(infra): realign legacy.pool_chain_deployments with the table it copies
2 files · +20 · -2
- Docs
- 11-db-schema.md
- Infra
- DB 0131_legacy_pool_chain_deployments_realign.sql
feat 15:47:16 0c3d0e1a
feat(infra): give the reset a home for the indexer cursor and the pool balances
2 files · +43 · -2
- Docs
- 11-db-schema.md
- Infra
- DB 0130_legacy_indexer_cursor_and_pool_balances.sql
fix 15:47:16 4461ff75
fix(infra): coerce the enum chain_id, and record the frozen deployment blocks
2 files · +247 · -3
- Infra
- capture-deployment-blocks.ts
- registry.json
refactor 15:47:16 f5104f1f
refactor(contract,infra): drop isYieldPenalty from the request tuple
15 files · +86 · -102
- Contract Test
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFlows.t
- PlatformPoolInvariant.t
- PlatformPoolNonCustodial.t
- SequenceDiagramVerification.t
- Infra
- approve-redemption.ts
- exit-gate.ts
- fallback-redemption.ts
- redemption.ts
- units.test.ts
- Lambda API
- redemption-requests.post.create
- Other
- packages/money-contract/src/generated/platform-pool.ts
- Smart Contract
- PlatformPool
- RedemptionLib
fix 15:47:16 5ad4be5e
fix(contract): a request enrolled ahead of the cursor was read as legacy and paid in full
3 files · +347 · -61
- Contract Test
- PlatformPoolEpoch.t
- PlatformPoolInvariant.t
- Smart Contract
- RedemptionLib
fix 15:47:16 8b265864
fix(infra): put deployed_block on the table deploys actually write
3 files · +103 · -42
- Docs
- 11-db-schema.md
- Infra
- DB 0129_move_deployed_block_to_pools.sql
- capture-deployment-blocks.ts
feat 15:47:16 69922aff
feat(infra): freeze what the reset would otherwise destroy
10 files · +7026 · -5
- Docs
- 11-db-schema.md
- Infra
- DB 0127_pool_deployment_block.sql
- DB 0128_legacy_money_snapshot_schema.sql
- PlatformKYCSoulbound.abi.json
- PlatformLPToken.abi.json
- PlatformPool.abi.json
- PlatformPoolFactory.abi.json
- capture-deployment-blocks.ts
- package.json
- tsconfig.scripts.json
refactor 15:47:16 7d66d045
refactor(contract,infra,web,admin): generate the ABIs, and stop importing an app from an app
29 files · +7435 · -6883
- Admin
- contracts
- package
- stablecoins
- Infra
- client.ts
- package.json
- Investor Web
- contracts
- package
- Other
- packages/money-contract/package.json
- packages/money-contract/scripts/generate.mjs
- packages/money-contract/src/chains.ts
- packages/money-contract/src/generated/erc20.ts
- packages/money-contract/src/generated/index.ts
- packages/money-contract/src/generated/platform-kyc-soulbound.ts
- packages/money-contract/src/generated/platform-lp-token.ts
- packages/money-contract/src/generated/platform-pool-factory.ts
- packages/money-contract/src/generated/platform-pool.ts
- packages/money-contract/src/index.ts
- packages/money-contract/src/roles.ts
- packages/money-contract/tsconfig.json
- pnpm-lock.yaml
- Smart Contract
- ERC20.abi.json
- PlatformKYCSoulbound.abi.json
- PlatformLPToken.abi.json
- PlatformLPToken.bytecode.d.ts
- PlatformLPToken.bytecode.js
- PlatformPool.abi.json
- PlatformPoolFactory.abi.json
- chains.ts
- package.json
refactor 15:47:16 6c395885
refactor(contract): drop the dead Layout fields and pack the flags
6 files · +78 · -85
- Contract Test
- PlatformPoolEpoch.t
- PlatformPoolInvariant.t
- Smart Contract
- NavLib
- PlatformPool
- PlatformPoolStorage
- RedemptionLib
fix 15:47:16 97331987
fix(contract): an epoch pool can never be made investable without an anchor
6 files · +177 · -54
- Contract Test
- GoldenFixtures.t
- PlatformPoolEpoch.t
- PlatformPoolInvariant.t
- PlatformPoolNonCustodial.t
- Smart Contract
- GovernanceLib
- PlatformPool
refactor 15:47:16 3551f167
refactor(contract): route deposit through the ledger, leaving the boundary empty
3 files · +29 · -31
- Other
- scripts/check-contract-boundaries.mjs
- Smart Contract
- PlatformPool
- PoolLedgerLib
refactor 15:47:16 4cd709e8
refactor(contract): move redemption settlement into the ledger
3 files · +251 · -158
- Other
- scripts/check-contract-boundaries.mjs
- Smart Contract
- PoolLedgerLib
- RedemptionLib
refactor 15:47:16 d7f964e0
refactor(contract): move the yield money paths into the ledger
3 files · +120 · -41
- Other
- scripts/check-contract-boundaries.mjs
- Smart Contract
- PoolLedgerLib
- YieldLib
refactor 15:47:16 af91d4f7
refactor(contract): give settlement one module, starting with the two small paths
4 files · +123 · -82
- Other
- scripts/check-contract-boundaries.mjs
- Smart Contract
- GovernanceLib
- NavLib
- PoolLedgerLib
docs 15:47:16 cd851e32
docs: correct two guarantees the code states more strongly than the docs
4 files · +9 · -7
- Docs
- 08-smart-contracts.md
- 09a-custody.md
- Other
- CLAUDE.md
refactor 15:47:16 7df38c79
refactor(contract): extract pure policies and guard the money boundary
14 files · +1045 · -81
- Contract Test
- DepositPolicy.t
- LifecyclePolicy.t
- PlatformPoolInvariant.t
- RedemptionEpochPolicy.t
- RedemptionInstantPolicy.t
- Other
- scripts/check-contract-boundaries.mjs
- Smart Contract
- DepositPolicy
- LifecyclePolicy
- PlatformPool
- PoolCommonLib
- RedemptionEpochPolicy
- RedemptionInstantPolicy
- RedemptionLib
- package.json
refactor 15:47:16 24e0a24a
refactor(infra): compute the yield fee split in integers, floored
5 files · +165 · -169
- Infra
- due-row-math.test.ts
- due-row-math.ts
- fees.ts
- package.json
- units.ts
feat 15:47:16 fc07fd7f
feat(money): golden fixtures and the money-core arithmetic they lock
28 files · +3486 · -1
- Contract Test
- GoldenFixtures.t
- Other
- packages/money-core/package.json
- packages/money-core/src/axis.ts
- packages/money-core/src/fees.ts
- packages/money-core/src/index.ts
- packages/money-core/src/money.ts
- packages/money-core/src/penalty.ts
- packages/money-core/src/pricing.ts
- packages/money-core/src/prorata.ts
- packages/money-core/tsconfig.json
- packages/money-domain/fixtures/README.md
- packages/money-domain/fixtures/deposit.json
- packages/money-domain/fixtures/epoch.json
- packages/money-domain/fixtures/nav.json
- packages/money-domain/fixtures/redemption-instant.json
- packages/money-domain/fixtures/wind-down.json
- packages/money-domain/fixtures/yield-fees.json
- packages/money-domain/package.json
- packages/money-domain/src/tests/deposit-math.test.ts
- packages/money-domain/src/tests/epoch-math.test.ts
- packages/money-domain/src/tests/fixture-shape.test.ts
- packages/money-domain/src/tests/money-core-conformance.test.ts
- packages/money-domain/src/tests/redemption-math.test.ts
- packages/money-domain/src/tests/yield-fee-math.test.ts
- packages/money-domain/src/fixtures.ts
- packages/money-domain/tsconfig.json
- pnpm-lock.yaml
- Smart Contract
- foundry.toml
🔵 jy/product
fix 18:12:44 d7646cbf
fix(admin,infra): Redemptions crashed on open, and its Amount column was about to lie
6 files · +55 · -12
- Admin
- Route (redemptions)
- format-amount
- redemption-detail-panel
- redemption-funding-modal
- Admin API
- redemption-requests
- Lambda API
- redemption-requests.get.list
feat 18:02:10 f18bff06
feat(admin): Redemptions opens on what is owed, not on what happened
8 files · +790 · -29
- Admin
- Route (redemptions)
- confirmed-obligations
- funding-load-card
- index
- redemption-detail-panel
- redemption-funding
- redemption-obligations-nodes.test
- Admin API
- use-redemption-requests
fix 17:25:09 9c9f1b80
fix(infra,admin): retire the record step from copy, and make the guard keep it retired
4 files · +49 · -9
- Admin
- Route (yield)
- Infra
- yield.ts
- Lambda API
- yield-distributions.post.create
- Other
- scripts/check-copy.mjs
fix 17:18:01 cf6f4eaf
fix(admin): one name for the amount column, and Period says which period it means
1 files · +46 · -9
- Admin
- Route (yield)
fix 17:04:54 d58de191
fix(admin): the pinned column stops being see-through, and hiding a column starts working
4 files · +102 · -15
- Admin
- Route (yield)
- global
- index
- use-media-query
feat 16:44:11 f6566c4f
feat(admin): All shows every outstanding period, and names the manager to chase
7 files · +197 · -33
- Admin
- Route (dashboard)
- Route (yield)
- by-fund-table
- overdue-exposure-card
- Admin API
- use-yield-distributions
- yield-distributions
- Admin UI
- status-dot
feat 15:52:48 2d34bce1
feat(admin,web): name the fund manager to chase, mark where the queue stops being late
4 files · +121 · -40
- Admin
- Route (yield)
- by-fund-table
- overdue-exposure-card
- Investor Web
- Widget (sidebar)
style 15:34:32 07d1d204
style(admin): one eyebrow below the page title, and the summary panel stops being a footnote
9 files · +177 · -89
- Admin
- Route (deposits)
- Route (redemptions)
- Route (yield)
- by-fund-table
- due-now-card
- overdue-exposure-card
- receipt-split
- upcoming-timeline
- Admin UI
- typography
feat 15:34:11 944d1e06
feat(admin): take the search field off the kit, and put it in the row that filters with it
4 files · +101 · -10
- Admin
- Route (audit-log)
- Route (kyc)
- Admin UI
- index
- search-input
style 12:52:54 87be5426
style(admin): stop drawing vertical rules to say "important", and let the side panel be a panel
6 files · +38 · -25
- Admin
- Route (yield)
- by-fund-table
- due-now-card
- overdue-exposure-card
- rail
- upcoming-timeline
style 12:37:24 8dcb95d6
style(admin): the rail built its hierarchy out of dimming, and the bottom tiers fell under AA
1 files · +41 · -16
- Admin
- rail
fix 10:41:22 6471bbd2
fix(landing): stop the browser from deciding a Spline scene is still fresh
1 files · +32 · -4
- Other
- landing/app/shared/config/spline.ts
2026-08-07 (Fri)
🟢 ch/product
No activity
🔵 jy/product
fix 18:10:02 596b9432
fix(admin): the Due now caption claimed an estimate the card was not showing
1 files · +19 · -7
- Admin
- due-now-card
fix 18:00:05 d89fb155
fix(admin): a missing is_overdue must degrade to the old answer, not to "nothing is overdue"
15 files · +451 · -255
- Admin
- Route (yield)
- overdue-exposure-card
- upcoming-timeline
- Admin API
- yield-distributions
- yield-due-overdue.test
- yield-due-row
- Other
- landing/.env.development
- landing/.env.example
- landing/.env.production
- landing/app/env.d.ts
- landing/app/shared/config/spline.ts
- landing/app/shared/ui/index.ts
- landing/app/shared/ui/spline-scene.tsx
- landing/app/widgets/landing/hero-scene.tsx
- landing/app/widgets/landing/safeguards.tsx
feat 17:47:09 0c8ec5bb
feat(admin,infra): make Yield a queue you work, and stop counting not-yet-owed money as overdue
20 files · +1600 · -87
- Admin
- Route (yield)
- by-fund-table
- due-now-card
- index
- overdue-exposure-card
- receipt-split
- upcoming-timeline
- Admin API
- keys
- use-yield-distributions
- yield-distributions
- Docs
- 13-operations.md
- 14-decisions.md
- 15-api-reference.md
- 17-changelog.md
- Infra
- CDK Stack (api-stack)
- due-row-math.test.ts
- due-row-math.ts
- due-rows.ts
- Lambda API
- yield-distributions.get.fund-summary
- yield-distributions.get.investors
feat 16:33:57 f3492216
feat(admin,infra): one coarse filter row for both redemption models, and stop labelling the normal case
8 files · +333 · -259
- Admin
- Route (redemptions)
- epoch-cycle-panel
- epoch-pool-filter
- epoch-pool-filter.test
- epoch-pool-list
- index
- Admin API
- redemption-requests
- Lambda API
- redemption-requests.get.list
feat 16:23:59 7e0aa325
feat(admin): open an epoch request in a slide-over, and give cycle funding a real confirm
5 files · +344 · -103
- Admin
- Route (redemptions)
- epoch-cycle-panel
- fund-cycle-dialog
- fund-epoch-cycle-button
- redemption-detail-panel
feat 12:50:07 84190167
feat(admin,web): make the model the outer axis of Redemptions, and give both apps one dark rail
19 files · +1682 · -905
- Admin
- Route (redemptions)
- epoch-cycle-panel
- epoch-phase
- epoch-pool-filter
- epoch-pool-filter.test
- epoch-pool-list
- global
- header
- index
- rail
- redemption-detail-panel
- sidebar
- Admin UI
- index
- page-layout
- shell-nav
- Investor Web
- Widget (sidebar)
- Widget (topbar)
- auth-button
docs 12:49:19 8c41a9bc
docs(06,07): fold the depth out of the two longest pages, keeping every anchor alive
6 files · +154 · -217
- Docs
- 02-core-concepts.md
- 06-writedown-nav.md
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
- 20-joob-pool-config.md
feat 12:46:15 2292584e
feat(landing): put the Spline hero scene behind the poster, and keep the scene URL swappable
10 files · +335 · -889
- Infra
- CDK Stack (spa-security-headers)
- Other
- landing/.env.development
- landing/.env.example
- landing/.env.production
- landing/app/env.d.ts
- landing/app/shared/config/spline.ts
- landing/app/widgets/landing/hero-scene.tsx
- landing/app/widgets/landing/hero.tsx
- landing/package.json
- pnpm-lock.yaml
docs 11:54:22 62bffaaa
docs: close out the verification report, and fix four things the review pass caught
5 files · +55 · -29
- Docs
- 06-writedown-nav.md
- 07-redemption.md
- 14-decisions.md
- 26-glossary.md
- Other
- docs-code-verification.md
2026-08-06 (Thu)
🟢 ch/product
fix 23:29:59 6e6782db
fix(infra): the epoch-pool deploy estimated its schedule setter against state the answering RPC node had not caught up to
3 files · +162 · -28
- Infra
- client.ts
- create-pool.ts
- submission-retry.test.ts
fix 17:11:24 634b22fd
fix(ci): the three frontend deploys were stripping Cache-Control off every object, so e14ee87 never reached one
3 files · +75 · -3
- CI/CD
- deploy-admin-web.yml
- deploy-landing.yml
- deploy-web.yml
feat 17:11:24 c92bef25
feat(landing,web): rebuild the landing page from the Figma comp, and stop /pools greeting signed-out visitors with a 401
51 files · +844 · -718
- Admin
- .env
- Investor Web API
- use-notifications
- Other
- landing/.env.development
- landing/.env.example
- landing/.env.production
- landing/app/env.d.ts
- landing/app/root.tsx
- landing/app/routes/$.tsx
- landing/app/routes/landing.tsx
- landing/app/shared/config/admin-url.ts
- landing/app/shared/config/contact.ts
- landing/app/shared/config/sections.ts
- landing/app/shared/copy/landing.ts
- landing/app/shared/lib/external-link.ts
- landing/app/shared/lib/index.ts
- landing/app/shared/lib/use-horizontal-wheel-scroll.ts
- landing/app/shared/ui/index.ts
- landing/app/shared/ui/pill-button.tsx
- landing/app/shared/ui/reveal-on-scroll.tsx
- landing/app/widgets/footer/footer.tsx
- landing/app/widgets/header/header.tsx
- landing/app/widgets/landing/access-contrast.tsx
- landing/app/widgets/landing/backed-by.tsx
- landing/app/widgets/landing/collateral.tsx
- landing/app/widgets/landing/cta-banner.tsx
- landing/app/widgets/landing/final-cta.tsx
- landing/app/widgets/landing/fund-managers.tsx
- landing/app/widgets/landing/hero-section.tsx
- landing/app/widgets/landing/hero.tsx
- landing/app/widgets/landing/how-it-works.tsx
- landing/app/widgets/landing/independent-data.tsx
- landing/app/widgets/landing/index.ts
- landing/app/widgets/landing/safeguards.tsx
- landing/app/widgets/landing/trust-strip.tsx
- landing/app/widgets/landing/what-you-invest-in.tsx
- landing/app/widgets/landing/why-aset-visuals.tsx
- landing/app/widgets/landing/why-aset.tsx
- landing/global.css
- landing/public/hashed_logo.png
- landing/public/landing/app-dashboard.png
- landing/public/landing/app-pools.png
- landing/public/landing/arrow-right.svg
- landing/public/landing/collateral-merchant.jpg
- landing/public/landing/cta-backdrop.jpg
- landing/public/landing/defillama.png
- landing/public/landing/dune.jpg
- landing/public/landing/hero-backdrop.jpg
- landing/public/landing/safeguard-icons.png
- landing/public/landing/skyline-night.jpg
- landing/public/sphere.png
docs 17:11:24 130abe43
docs(deployments): point sepolia.md at the libraries the new impl actually links
1 files · +24 · -9
- Smart Contract
- sepolia.md
fix 17:11:24 42e36bd1
fix(contract,infra): reinvest was priced at the stale NAV, positions had no cost basis, and the ops key can only hold one tx in flight
29 files · +956 · -118
- Contract Deploy
- CreatePool.s
- DeployFactory.s
- DeployPoolImplementation.s
- run
- Contract Test
- PlatformPool.t
- Docs
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- 23-money-path.md
- Infra
- DB 0125_position_cost_basis.sql
- DB 0126_position_source_and_dead_rpcs.sql
- DB schema.sql
- announced-nav.ts
- client.ts
- cost-basis.test.ts
- cost-basis.ts
- create-pool.ts
- deposit.ts
- lp-transfer.ts
- resolve.ts
- submission-retry.test.ts
- Lambda API
- deposits.post.create
- yield.post.reinvest
- Smart Contract
- YieldLib
- package.json
- sepolia.md
fix 11:35:28 e85eff7b
fix(auth): one refresh cookie for two apps let admin-web sign in as an investor and stay 403'd
28 files · +403 · -58
- Admin
- Route (audit-log)
- Route (deposits)
- Route (funds)
- Route (kyc)
- Route (pools)
- Route (redemptions)
- Route (yield)
- query-client
- Admin UI
- index
- query-error-state
- Docs
- 15-api-reference.md
- 17-changelog.md
- Infra
- CDK Stack (api-stack)
- audience.ts
- cookies.ts
- environment.ts
- index.ts
- middleware.ts
- refresh-audience.test.ts
- Investor Web
- Route (portfolio)
- query-client
- Lambda API
- auth.post.admin-2fa-verify
- auth.post.admin-login
- auth.post.admin-logout-all
- auth.post.admin-oauth
- auth.post.logout
- auth.post.refresh
- auth.post.verify
🔵 jy/product
docs 18:40:24 419f7e9c
docs: make the long pages navigable, and finish the doc-internal contradictions
14 files · +306 · -58
- Docs
- 02-core-concepts.md
- 04-pool-models.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09-rbac.md
- 10-status-machines.md
- 11-db-schema.md
- 14-decisions.md
- 16-timeline.md
- 17-changelog.md
- 21-holder-verification.md
- 23-money-path.md
docs 18:20:02 e1ee743a
docs: reconcile the backend spec with the code, and record what was checked
19 files · +760 · -85
- Docs
- 01-overview.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09-rbac.md
- 10-status-machines.md
- 11-db-schema.md
- 12-triggers.md
- 13-operations.md
- 14-decisions.md
- 15-api-reference.md
- 16-timeline.md
- 17-changelog.md
- 18-failure-types.md
- 22-notifications.md
- 26-glossary.md
- Other
- docs-code-verification.md
docs 17:40:28 b7dd3c27
docs(v3-119): the staged pre-flight was superseded on merge by the serial send
2 files · +2 · -2
- Docs
- 14-decisions.md
- 17-changelog.md
docs 17:32:02 28a8959c
docs: record v3-119 pool-level epoch funding, and correct two KYC exit-gate claims
4 files · +64 · -1
- Docs
- 03-kyc-identity.md
- 14-decisions.md
- 15-api-reference.md
- 17-changelog.md
feat 17:31:52 52090437
feat(epoch): fund a whole cycle, and stage the deploy pre-flight so a dependency can't fail in parallel
24 files · +1581 · -105
- Admin
- Route (funds)
- epoch-cycle-panel
- epoch-schedule
- epoch-schedule-block
- fund-epoch-cycle-button
- use-fund-epoch-cycle-flow
- validation
- Admin API
- pools
- use-pools
- Infra
- CDK Stack (api-stack)
- activity.ts
- create-pool-stages.test.ts
- create-pool.ts
- Investor Web
- Route (pool.$id)
- Route (styleguide.epoch-states)
- Widget (cancel-redemption-dialog)
- Widget (epoch-position-panel)
- Widget (index)
- Widget (position-card)
- contract-errors
- status
- Investor Web API
- use-epoch-claim-preview
- Investor Web UI
- RedeemModal
- Lambda API
- pools.post.epoch-funding
docs 16:08:47 5b8e1db9
docs(04): give pool-models an index and progressive disclosure (v3-118)
3 files · +123 · -11
- Docs
- 04-pool-models.md
- 14-decisions.md
- 17-changelog.md
docs 15:36:08 c6d9745a
docs: propagate the 2026-08-04 deploy status to the four pages the sweep missed
4 files · +10 · -8
- Docs
- 08a-contract-reference.md
- 09a-custody.md
- 17-changelog.md
- 26-glossary.md
feat 14:18:14 36af4341
feat(governance): nudge ops before a timelock expires, and mirror a third-party execute
22 files · +909 · -30
- Docs
- 22-notifications.md
- Infra
- CDK Stack (api-stack)
- engine.ts
- enums.ts
- events.ts
- format-nav.test.ts
- format-nav.ts
- governance-execute-due.test.ts
- governance-execute-due.ts
- governance-timelock.ts
- governance.ts
- index.ts
- lifecycle-enum.test.ts
- ops-variants.ts
- writedown-update-copy.ts
- Lambda API
- nav-changes.post.cancel
- nav-changes.post.propose
- nav-changes.scheduler.apply-pending
- nav-proposals.scheduler.suggest
- pools.post.impairment
- pools.post.wind-down
- pools.scheduler.governance-execute-due
docs 14:17:34 1a8d252a
docs(07): trim redemption to the present tense, and correct four stale claims
3 files · +143 · -236
- Docs
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
fix 13:48:12 8682affe
fix(audit-log): reset the filters when switching between Audit and Activity
1 files · +24 · -4
- Admin
- Route (audit-log)
fix 12:11:42 be6a7e80
fix(notifications): the wind-down timelock is 30 days, not 7
2 files · +26 · -5
- Infra
- inapp-copy.test.ts
- ops-variants.ts
feat 12:03:58 9cc47c2c
feat(notifications): tell ops and the FM when a governance timelock starts
4 files · +158
- Infra
- inapp-copy.test.ts
- ops-variants.ts
- Lambda API
- pools.post.impairment
- pools.post.wind-down
docs 11:41:07 fb2f4e19
docs: restore 05-investment-lifecycle as a walkthrough, and record a fabricated column (v3-115)
7 files · +84 · -129
- Docs
- 04-pool-models.md
- 05-investment-lifecycle.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
feat 11:39:08 5a7dc568
feat(notifications): NAV stat block on the writedown card, and authored copy for impairment propose
10 files · +246 · -13
- Infra
- create-system-update.ts
- feed.ts
- in-app-copy.ts
- inapp-copy.test.ts
- response-shape.test.ts
- writedown-update-copy.ts
- Investor Web
- Route (styleguide.notifications)
- Widget (notification-detail-modal)
- Investor Web API
- notifications
- Lambda API
- pools.post.impairment
fix 11:19:24 94757206
fix(notifications): title the investor NAV notice "NAV change scheduled" (sheet SoT)
2 files · +34 · -4
- Infra
- inapp-copy.test.ts
- pool.ts
feat 11:05:41 26941c16
feat(notifications): mirror the sheet's inapp_body for the three registry rows (QA-2)
2 files · +58 · -4
- Infra
- inapp-copy.test.ts
- pool.ts
feat 10:56:10 37cbd206
feat(notifications): one short in-app disclaimer across the four investor value/loss surfaces (QA-2 §F)
7 files · +144 · -30
- Infra
- disclaimer.ts
- in-app-copy.ts
- inapp-copy.test.ts
- pool.ts
- writedown-update-copy.ts
- Investor Web
- Route (styleguide.notifications)
- Lambda API
- pools.post.wind-down
2026-08-05 (Wed)
🟢 ch/product
No activity
🔵 jy/product
docs 18:11:04 2a9924a2
docs(04): trim pool-models to a concept spec, move archaeology to owners
5 files · +143 · -342
- Docs
- 04-pool-models.md
- 05-investment-lifecycle.md
- 08-smart-contracts.md
- 14-decisions.md
- 17-changelog.md
docs 17:31:41 4eab5171
docs: relabel §6a/§6b pointers to §6/§7 after the money-path renumber
3 files · +5 · -5
- Docs
- 14-decisions.md
- 17-changelog.md
- 26-glossary.md
docs 17:24:12 b07c55f2
docs(decisions): record the IA regrouping as v3-113
2 files · +37
- Docs
- 14-decisions.md
- 17-changelog.md
chore 17:21:28 c54940ce
chore(notifications): register the QA-2 fixture styleguide route
1 files · +3
- Investor Web
- routes
feat 17:19:38 85dc57f2
feat(epoch): Model B redemption UI across admin and investor surfaces
39 files · +2950 · -211
- Admin
- Route (pool-create)
- Route (redemptions)
- epoch-cycle-panel
- epoch-phase
- epoch-phase-stepper
- epoch-phase.test
- epoch-pool-list
- epoch-schedule
- epoch-schedule-block
- epoch-schedule.test
- index
- payload
- permissions
- step-redemption
- types
- validation
- Admin API
- pools
- redemption-requests
- use-pools
- Investor Web
- Route (pool.$id)
- Route (styleguide.epoch-states)
- Widget (epoch-position-panel)
- Widget (position-card)
- contract-errors
- contracts
- epoch-position-state
- epoch-position-state.test
- package
- routes
- status
- tx-error
- Investor Web API
- pools
- use-epoch-claim-preview
- Lambda API
- redemption-requests.get.epoch-summary
- redemption-requests.get.list
feat 17:18:54 c6a6aef8
feat(notifications): give the in-app card four zones, and stop gluing the disclaimer onto the body (QA-2)
22 files · +1143 · -208
- Infra
- catalog-integrity.test.ts
- create-system-update.ts
- in-app-copy.ts
- in-app.ts
- inapp-copy.test.ts
- pool.ts
- types.ts
- writedown-update-copy.ts
- Investor Web
- Route (notifications)
- Route (styleguide.notifications)
- Widget (category-chip)
- Widget (category-icon)
- Widget (format)
- Widget (index)
- Widget (notification-detail-modal)
- Widget (notification-row)
- formatters
- notifications
- Investor Web API
- notifications
- Lambda API
- nav-changes.post.activate
- nav-changes.scheduler.apply-pending
- pools.post.wind-down
docs 17:15:55 fbe42a71
docs(ia): regroup the sidebar by document kind, and mirror it in ko
1 files · +53 · -14
- Docs
- config.ts
docs 17:15:44 e593b072
docs(ko): add translation stubs for the 4 pages missing from ko
4 files · +24
- Docs
- 08a-contract-reference.md
- 22-notifications.md
- 25-design-system.md
- 26-glossary.md
docs 17:05:04 2ff515a5
docs(tooling): add check-doc-anchors — verify hash links against the built HTML
1 files · +98
- Docs
- check-doc-anchors.mjs
other 16:59:03 ce8131b0
ci(docs): drop the ch/product preview, restrict the trigger to jy/product
2 files · +10 · -37
- CI/CD
- deploy-docs.yml
- Docs
- config.ts
docs 15:22:31 297422f9
docs(money-path): restructure 23 back to a map, move implementation depth to its owners
17 files · +173 · -223
- Docs
- 02-core-concepts.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09a-custody.md
- 10-status-machines.md
- 11-db-schema.md
- 17-changelog.md
- 20-joob-pool-config.md
- 23-money-path.md
- 24-field-governance.md
- 26-glossary.md
docs 14:53:04 bd95ee0f
docs: name the hold-back a dormant lever, drop "the 90%" for partner remainder (v3-112)
5 files · +91 · -20
- Docs
- 14-decisions.md
- 17-changelog.md
- 22-notifications.md
- 23-money-path.md
- 26-glossary.md
other 14:43:49 dfd43d06
ci(docs): production deploys from jy/product only, ch/product goes to a preview prefix
2 files · +36 · -6
- CI/CD
- deploy-docs.yml
- Docs
- config.ts
docs 14:43:32 584032df
docs: correct stale deploy/contract claims, drop the partner webhook, fix container rendering
13 files · +392 · -94
- Docs
- 02-core-concepts.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 10-status-machines.md
- 14-decisions.md
- 17-changelog.md
- 21-holder-verification.md
- 23-money-path.md
docs 09:28:54 6486a29d
docs: NAV/epoch contract deploy verified — flip the 🟡 deploy-pending items to shipped
9 files · +60 · -28
- Docs
- 04-pool-models.md
- 06-writedown-nav.md
- 07-redemption.md
- 08a-contract-reference.md
- 10-status-machines.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
2026-08-04 (Tue)
🟢 ch/product
fix 23:04:00 e14ee87b
fix(infra): a cached SPA document stops outliving the security headers it shipped with
5 files · +96 · -32
- Infra
- CDK Stack (admin-web-stack)
- CDK Stack (docs-stack)
- CDK Stack (landing-stack)
- CDK Stack (spa-bucket-deployment)
- CDK Stack (web-stack)
feat 22:37:21 9c52fb5e
feat(pool): archive stops hiding pools people still own, and CLOSED gets a way in
30 files · +1050 · -90
- Admin
- Route (pool-detail)
- pool-controls
- status
- Admin API
- pools
- use-pools
- Admin UI
- pool-badges
- Docs
- 10-status-machines.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- Infra
- CDK Stack (api-stack)
- DB 0123_pools_is_hidden.sql
- DB 0124_nav_proposal_total_loss_wording.sql
- DB schema.sql
- DB seed.sql
- activity.ts
- pool-archive.test.ts
- pool-archive.ts
- Lambda API
- funds.delete
- pools.delete
- pools.get.list
- pools.patch.update
- pools.post.close
- pools.post.freeze
- pools.post.governance
- pools.post.impairment
- pools.post.pause
- pools.post.wind-down
- pools.scheduler.lifecycle
- pools.worker.deploy
feat 20:09:25 0abe1682
feat(nav): the reserve stops absorbing loss, and the suggestion path stops mixing currencies
77 files · +3569 · -454
- Admin
- Route (dashboard)
- Route (pool-detail)
- Route (pools)
- nav-change-dialog
- overview-tab
- pool-controls
- step-terms
- Admin API
- nav-changes
- use-nav-changes
- Contract Test
- PlatformPool.t
- PlatformPoolEpoch.t
- Docs
- 04-pool-models.md
- 06-writedown-nav.md
- 07-redemption.md
- 08a-contract-reference.md
- 09a-custody.md
- 11-db-schema.md
- 14-decisions.md
- 15-api-reference.md
- 17-changelog.md
- 23-money-path.md
- 26-glossary.md
- Infra
- CDK Stack (api-stack)
- CDK Stack (spa-security-headers)
- CDK Stack (web-stack)
- DB 0117_pools_lp_total_supply.sql
- DB 0118_pool_partner_report_config.sql
- DB 0119_buffer_requires_external_mapping.sql
- DB 0120_drop_nav_proposal_recovery_flag.sql
- DB 0121_equity_buffer_prose_requires_layer.sql
- DB 0122_nav_history_loss_and_ungate_buffer.sql
- DB schema.sql
- apply-proposal.ts
- engine.ts
- nav-formula.test.ts
- nav-formula.ts
- nav-suggest.test.ts
- nav-suggest.ts
- nav.ts
- package.json
- pool-registry.ts
- pool.ts
- range-limit.test.ts
- range-limit.ts
- units.test.ts
- units.ts
- Investor Web
- Route (pool.$id)
- Widget (fund-data-tab)
- Widget (overview-tab)
- Widget (performance-tab)
- Widget (risk-disclosure)
- status
- Investor Web API
- loss-history
- nav-changes
- pools
- Investor Web UI
- PoolStatusAlert
- Lambda API
- nav-changes.post.activate
- nav-changes.post.cancel
- nav-changes.post.dismiss
- nav-changes.post.propose
- nav-proposals.scheduler.expire
- pools.get.loss-history
- pools.get.nav-history
- pools.patch.update
- pools.post.create
- Other
- CLAUDE.md
- scripts/check-copy.mjs
- Smart Contract
- NavLib
- PlatformPool
- PlatformPool.abi.json
- PlatformPool.bytecode.d.ts
- PlatformPool.bytecode.js
- PlatformPoolStorage
- PoolCommonLib
- RedemptionLib
- sepolia.md
fix 12:05:11 860a5049
fix(nav): pin the tranche write-down decisions in tests, and retire the reserve-only wind-down wording
11 files · +287 · -29
- Admin
- status
- Docs
- 01-overview.md
- 02-core-concepts.md
- 04-pool-models.md
- 07-redemption.md
- 10-status-machines.md
- 14-decisions.md
- Infra
- loss-waterfall.test.ts
- writedown-governance.test.ts
- Investor Web
- status
- Lambda API
- pools.post.wind-down
feat 01:45:03 3feeb873
feat(epoch): the last open decisions ship, and the copy guard starts seeing the registry
42 files · +1553 · -173
- Admin
- Route (pool-detail)
- Route (yield)
- status
- Admin API
- pools
- Docs
- 11-db-schema.md
- Infra
- CDK Stack (api-stack)
- DB 0115_epoch_window_subscriptions.sql
- DB 0116_pool_junior_depleted_at.sql
- DB schema.sql
- catalog-integrity.test.ts
- deposit.ts
- epoch-redemption.ts
- epoch.ts
- freeze-milestones.test.ts
- in-app.ts
- investor-preferences.test.ts
- kyc-account.ts
- ops-variants.ts
- pool.ts
- redemption.ts
- resolve.ts
- stalled-threshold.test.ts
- types.ts
- yield.ts
- Investor Web
- Route (pool.$id)
- Widget (epoch-countdown)
- Widget (epoch-window-optin)
- Widget (index)
- status
- Investor Web API
- keys
- pools
- use-window-subscriptions
- window-subscriptions
- Lambda API
- pools.get.list
- pools.post.wind-down
- pools.scheduler.epoch-window-open
- redemption-requests.scheduler.epoch-cutoff
- tranche.post.writedown
- window-subscriptions.delete
- window-subscriptions.get.list
- window-subscriptions.post.create
- Other
- scripts/check-copy.mjs
feat 00:10:02 22c8004c
feat(yield): a stalled distribution now pushes, and the badge counts what it sends
9 files · +230 · -14
- Admin API
- yield-distributions
- Docs
- 11-db-schema.md
- Infra
- CDK Stack (api-stack)
- DB 0114_stalled_yield_requires_deposit_tx.sql
- DB schema.sql
- stalled.ts
- yield.ts
- Lambda API
- dashboard.get.stats
- yield.scheduler.stalled
🔵 jy/product
docs 23:29:08 90cf78ae
docs: resync status markers after ch/product shipped v3-109 / v3-110
10 files · +15 · -15
- Docs
- 04-pool-models.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09a-custody.md
- 14-decisions.md
- 15-api-reference.md
- 26-glossary.md
docs 19:01:54 2281a03e
docs(epoch): separate "not implemented" from "not deployed" for v3-105 / v3-107
5 files · +42 · -16
- Docs
- 07-redemption.md
- 08a-contract-reference.md
- 10-status-machines.md
- 14-decisions.md
- 17-changelog.md
docs 18:18:28 88a2aa0b
docs(nav): correct the reserveConsumed=0 claim — R8 requires it, the BE does not do it yet
8 files · +12 · -10
- Docs
- 06-writedown-nav.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09a-custody.md
- 11-db-schema.md
- 14-decisions.md
- 26-glossary.md
docs 17:45:17 fcf198d5
docs(anchors): repoint the 13 links whose target moved or was mis-numbered (85 -> 2)
7 files · +16 · -15
- Docs
- 01-overview.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09-rbac.md
- 09a-custody.md
- 14-decisions.md
- 17-changelog.md
docs 16:43:48 37896ce6
docs(anchors): add explicit {#…} to 29 heading targets so hand-written hash links resolve (72 links)
13 files · +30 · -29
- Docs
- 02-core-concepts.md
- 04-pool-models.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 09-rbac.md
- 09a-custody.md
- 10-status-machines.md
- 11-db-schema.md
- 14-decisions.md
- 21-holder-verification.md
- 22-notifications.md
docs 16:39:34 67eee582
docs(anchors): disambiguate duplicate v3-96 id (yield vs copy), repoint intending links
2 files · +7 · -3
- Docs
- 14-decisions.md
- 17-changelog.md
docs 16:32:11 16addd3b
docs(pool): reframe archive/close/hidden per v3-110; fix pause & loss-term comments
12 files · +158 · -21
- Docs
- 02-core-concepts.md
- 04-pool-models.md
- 06-writedown-nav.md
- 09-rbac.md
- 10-status-machines.md
- 11-db-schema.md
- 14-decisions.md
- 15-api-reference.md
- 17-changelog.md
- Infra
- DB schema.sql
- Lambda API
- pools.post.pause
docs 15:57:47 89a1b859
docs(build): generate anchors for ::: decided cards so #vX-NN links resolve (178 links)
2 files · +59 · -32
- Docs
- 14-decisions.md
- config.ts
docs 15:53:16 ad371d58
docs(nav): v3-109 — reserve out of loss absorption (R8), NAV denom → totalSupply (R9), buffer param (R6), wind-down denom (R10), FX/timelock/governance; +26-glossary
20 files · +443 · -99
- Docs
- 01-overview.md
- 02-core-concepts.md
- 04-pool-models.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09a-custody.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- 20-joob-pool-config.md
- 23-money-path.md
- 24-field-governance.md
- 26-glossary.md
- config.ts
2026-08-03 (Mon)
🟢 ch/product
feat 20:51:36 eda11ba4
feat(landing): the marketing site becomes its own app, and the investor app moves to app.
64 files · +2825 · -1301
- CI/CD
- deploy-landing.yml
- deploy-web.yml
- Docs
- epoch-redemption-redesign.md
- Infra
- .env.example
- CDK Stack (certificate-stack)
- CDK Stack (ci-deploy-role-stack)
- CDK Stack (index)
- CDK Stack (landing-stack)
- CDK Stack (spa-security-headers)
- app.ts
- environment.ts
- package.json
- Investor Web
- Route (home)
- Route (landing)
- hashed_logo
- routes
- sphere
- Investor Web UI
- Footer
- Other
- landing/.env.development
- landing/.env.example
- landing/.env.production
- landing/.gitignore
- landing/README.md
- landing/app/entry.client.tsx
- landing/app/entry.server.tsx
- landing/app/env.d.ts
- landing/app/root.tsx
- landing/app/routes.ts
- landing/app/routes/$.tsx
- landing/app/routes/landing.tsx
- landing/app/shared/config/app-url.ts
- landing/app/shared/config/contact.ts
- landing/app/shared/lib/date.ts
- landing/app/shared/lib/index.ts
- landing/app/shared/ui/index.ts
- landing/app/shared/ui/logo.tsx
- landing/app/shared/ui/reveal-on-scroll.tsx
- landing/app/widgets/footer/footer.tsx
- landing/app/widgets/footer/index.ts
- landing/app/widgets/header/header.tsx
- landing/app/widgets/header/index.ts
- landing/app/widgets/index.ts
- landing/app/widgets/landing/backed-by.tsx
- landing/app/widgets/landing/cta-banner.tsx
- landing/app/widgets/landing/hero-section.tsx
- landing/app/widgets/landing/how-it-works.tsx
- landing/app/widgets/landing/index.ts
- landing/app/widgets/landing/trust-strip.tsx
- landing/app/widgets/landing/why-aset-visuals.tsx
- landing/app/widgets/landing/why-aset.tsx
- landing/eslint.config.js
- landing/global.css
- landing/package.json
- landing/public/favicon.svg
- landing/public/hashed_logo.png
- landing/public/sphere.png
- landing/react-router.config.ts
- landing/tsconfig.app.json
- landing/tsconfig.json
- landing/tsconfig.node.json
- landing/vite.config.ts
- package.json
- pnpm-lock.yaml
- scripts/check-copy.mjs
feat 17:33:05 c5bddf5d
feat(yield): due periods move into the read model, and PENDING goes away with its only writer
32 files · +2147 · -683
- Admin
- Route (dashboard)
- Route (fund-detail)
- Route (yield)
- index
- use-debounced-value
- Admin API
- dashboard
- keys
- use-yield-distributions
- yield-distributions
- Docs
- 10-status-machines.md
- 11-db-schema.md
- 13-operations.md
- 14-decisions.md
- 15-api-reference.md
- 17-changelog.md
- 18-failure-types.md
- Infra
- CDK Stack (api-stack)
- DB 0113_yield_distributions_forbid_pending.sql
- DB schema.sql
- DB seed.sql
- due-row-math.test.ts
- due-row-math.ts
- due-rows.ts
- fees.ts
- run-distribution.ts
- yield-schedule.ts
- Lambda API
- dashboard.get.stats
- yield-distributions.get.counts
- yield-distributions.get.list
- yield-distributions.get.preview
- yield-distributions.post.create
- yield-distributions.post.distribute
feat 17:28:40 6c0a08fb
feat(epoch): install the anchored schedule and close the unanchored path
31 files · +1700 · -97
- Contract Test
- PlatformPoolEpoch.t
- PlatformPoolNonCustodial.t
- Docs
- 11-db-schema.md
- Infra
- CDK Stack (api-stack)
- DB 0111_epoch_funding_date_provenance.sql
- DB 0112_redemption_epochs_settlement_due.sql
- DB schema.sql
- DB seed.sql
- activity.ts
- create-pool.ts
- deploy-payload.ts
- engine.ts
- epoch-redemption.ts
- epoch-schedule.test.ts
- epoch-schedule.ts
- epoch.ts
- events.ts
- index.ts
- Lambda API
- pools.get.list
- pools.patch.update
- pools.post.create
- pools.post.epoch-schedule
- pools.post.lifecycle
- pools.worker.deploy
- redemption-requests.get.epoch-summary
- redemption-requests.get.list
- tranche.post.writedown
- Smart Contract
- PlatformPool
- PlatformPool.abi.json
- RedemptionLib
🔵 jy/product
feat 15:53:20 f6f9ff96
feat(copy-guard): fail the build on prose em-dashes
2 files · +88 · -7
- Other
- CLAUDE.md
- scripts/check-copy.mjs
refactor 15:31:12 be6aea35
refactor(copy): replace em-dashes in user-visible copy
57 files · +167 · -167
- Admin
- Route (admin-settings)
- Route (audit-log)
- Route (dashboard)
- Route (fund-detail)
- Route (fund-manager-onboard)
- Route (funds)
- Route (kyc)
- Route (my-settings)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (pools)
- Route (redemptions)
- Route (styleguide)
- Route (yield)
- client
- configuration-tab
- deploy-status-banner
- deposit-timeline
- fund-payout-button
- fund-select
- investors-tab
- nav-change-dialog
- nav-chart
- permissions
- pool-controls
- qualification-panel
- redemption-funding-modal
- status
- step-basics
- step-compliance
- step-redemption
- step-structure
- step-terms
- step-yield-fees
- use-fund-redemption-flow
- yield-settings-tab
- Admin UI
- dday-badge
- pool-badges
- Investor Web
- Route (activity)
- Route (help)
- Route (pool.$id)
- Route (portfolio)
- Widget (PortfolioHero)
- status
- tx-error
- use-add-lp-token
- use-cancel-redemption-flow
- use-redeem-flow
- use-reinvest-flow
- use-settle-epoch-flow
- Investor Web API
- use-user-settings
- Investor Web UI
- KYCModal
refactor 15:06:35 fd87ea59
refactor(ui): name the yield action Distribute, drop progress-label ellipsis
54 files · +179 · -179
- Admin
- Route (admin-settings)
- Route (audit-log)
- Route (auth-callback)
- Route (dashboard)
- Route (deposits)
- Route (fund-detail)
- Route (fund-invite-accept)
- Route (fund-manager-onboard)
- Route (funds)
- Route (kyc)
- Route (login)
- Route (my-settings)
- Route (notifications)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (redemptions)
- Route (super-login)
- Route (yield)
- configuration-tab
- delete-pool-section
- deploy-status-banner
- fund-payout-button
- investor-sidebar
- nav-change-dialog
- pool-controls
- qualification-panel
- status
- step-basics
- totp-step
- updates-tab
- wallet-bind-card
- yield-settings-tab
- Admin UI
- pending-confirm-dialog
- Investor Web
- Route (activity)
- Route (dashboard)
- Route (notifications)
- Route (pool.$id)
- Route (pools)
- Route (portfolio)
- Route (settings)
- Route (verify-email)
- Widget (activity-tab)
- Widget (fund-data-tab)
- Widget (invest-sidebar)
- Widget (reinvest-confirm-dialog)
- Widget (updates-tab)
- add-lp-token-control
- auth-button
- Investor Web UI
- KYCModal
- KYCStatusCard
- RedeemModal
- YieldClaimDialog
2026-08-02 (Sun)
🟢 ch/product
No activity
🔵 jy/product
docs 14:47:15 80e88fd3
docs(notifications): LEAD_DAYS shipped at 7, so stop calling it pending
2 files · +2 · -2
- Docs
- 14-decisions.md
- 22-notifications.md
2026-07-31 (Fri)
🟢 ch/product
feat 18:15:25 cda0ae86
feat(notifications): rebuild the pipeline around event → notification → delivery
108 files · +5885 · -3862
- Admin
- Route (pool-detail)
- Admin API
- dashboard
- notification-center
- notifications
- Admin UI
- status-dot
- Contract Test
- PlatformPoolEpoch.t
- Docs
- 11-db-schema.md
- 14-decisions.md
- 15-api-reference.md
- 17-changelog.md
- 22-notifications.md
- Infra
- CDK Stack (api-stack)
- CDK Stack (ses-stack)
- DB 0110_notification_rebuild.sql
- DB schema.sql
- activity.ts
- admin-feed-scope.ts
- admin-preferences.test.ts
- admin-preferences.ts
- app.ts
- apply-proposal.ts
- apply-review.ts
- catalog-integrity.test.ts
- catalog.ts
- client.ts
- copy.ts
- create-system-update.ts
- decide-channels.test.ts
- decide.ts
- delivery-log.ts
- deposit.ts
- dispatch.ts
- email.ts
- epoch.ts
- feed.ts
- freeze-milestones.test.ts
- freeze.ts
- governance.ts
- holdback-release.test.ts
- in-app.ts
- index.ts
- investor-preferences.test.ts
- investor-preferences.ts
- kyc-account.ts
- lookups.ts
- notification-email.ts
- notify.ts
- ops-variants.ts
- pool.ts
- preference-catalog.test.ts
- queue.ts
- redemption.ts
- resolve.ts
- response-shape.test.ts
- run-distribution.ts
- suppression.ts
- team.ts
- types.ts
- yield.ts
- Investor Web API
- notifications
- Lambda API
- admin-notification-preferences.get.list
- admin-notification-preferences.put.update
- admin-notifications.get.list
- admin-notifications.get.unread-count
- admin-notifications.patch.read
- admin-notifications.patch.read-all
- admin-users.patch.update
- deposits.post.create
- email-suppressions.delete
- email-suppressions.get.list
- email-suppressions.post.create
- fund-invites.post.accept
- fund-members.patch.update
- kyc.scheduler.reverify-sweep
- nav-changes.post.cancel
- nav-changes.post.propose
- nav-changes.scheduler.apply-pending
- nav-proposals.scheduler.suggest
- notification-logs.get.list
- notification-logs.post.escalate
- notification-logs.post.resend
- notification-logs.scheduler.send
- notification-preferences.get.list
- notification-preferences.put.update
- notifications.get.list
- notifications.get.unread-count
- notifications.patch.read
- notifications.patch.read-all
- notifications.scheduler.sweep
- notifications.webhook.ses
- notifications.worker.deliver
- pools.post.escalate-yield
- pools.post.impairment
- pools.post.wind-down
- pools.scheduler.epoch-funding-date
- pools.scheduler.lifecycle
- pools.scheduler.yield-due
- redemption-requests.post.approve
- redemption-requests.post.create
- redemption-requests.post.escalate
- redemption-requests.post.notify-fund
- redemption-requests.post.reject
- redemption-requests.scheduler.epoch-execute
- redemption-requests.scheduler.exit-gate-sweep
- redemption-requests.scheduler.partner-funding
- Other
- scripts/check-notification-producers.mjs
fix 14:25:28 bb38dca8
fix(contract,infra): make the on-chain amount axis a type, and settle a yield period in one tx
60 files · +1183 · -448
- Contract Test
- PlatformKYCSoulbound.t
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFlows.t
- PlatformPoolInvariant.t
- PlatformPoolNonCustodial.t
- SequenceDiagramVerification.t
- Docs
- 02-core-concepts.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09-rbac.md
- 09a-custody.md
- 10-status-machines.md
- 11-db-schema.md
- 14-decisions.md
- 15-api-reference.md
- 17-changelog.md
- 20-joob-pool-config.md
- 23-money-path.md
- 24-field-governance.md
- Infra
- apply-proposal.ts
- approve-redemption.ts
- create-pool.ts
- epoch-redemption.ts
- epoch.ts
- events.ts
- governance.ts
- index.ts
- lifecycle.ts
- nav.ts
- package.json
- reinvest.ts
- run-distribution.ts
- units.test.ts
- units.ts
- yield-distribution.ts
- yield.ts
- Investor Web UI
- YieldClaimDialog
- Lambda API
- deposits.post.create
- nav-changes.post.propose
- nav-changes.scheduler.apply-pending
- pools.patch.update
- pools.post.wind-down
- pools.worker.deploy
- redemption-requests.post.create
- redemption-requests.post.fund
- redemption-requests.scheduler.epoch-execute
- redemption-requests.scheduler.partner-funding
- tranche.post.writedown
- yield-distributions.post.create
- yield-distributions.post.distribute
- Other
- scripts/check-onchain-units.mjs
- Smart Contract
- PlatformPool
- PlatformPool.abi.json
- PlatformPoolStorage
- RedemptionLib
- YieldLib
fix 12:41:54 ab8ee0b7
fix(infra): drop deleteExisting from the api alias records again
1 files · +6 · -6
- Infra
- CDK Stack (api-stack)
🔵 jy/product
docs 18:11:34 f2d8fed3
docs(epoch): record that the anchored schedule is never installed (v3-107)
8 files · +102 · -7
- Docs
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 10-status-machines.md
- 11-db-schema.md
- 14-decisions.md
- 15-api-reference.md
- 17-changelog.md
docs 18:05:19 0e3422e2
docs(notifications): mark holdback_release_deferred on hold — the wording is provisional, not signed off
4 files · +24 · -1
- Docs
- 07-redemption.md
- 17-changelog.md
- 22-notifications.md
- Infra
- copy.ts
fix 17:58:10 4a6ff005
fix(notifications): the deferred hold-back remainder does not pay out automatically
6 files · +34 · -11
- Docs
- 07-redemption.md
- 17-changelog.md
- 22-notifications.md
- 23-money-path.md
- Infra
- copy.ts
- holdback-release.test.ts
docs 17:50:31 70580c91
docs(epoch): sync the epoch pages with the shipped engine; the hold-back does not auto-release
5 files · +163 · -26
- Docs
- 04-pool-models.md
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
- 23-money-path.md
docs 17:47:58 da2dfdec
docs(yield): catch 17-changelog and 18-failure-types up with the v3-104 decisions
2 files · +11 · -1
- Docs
- 17-changelog.md
- 18-failure-types.md
fix 17:34:03 0c467390
fix(admin): stuck yield distributions belong under Failed, not in the record queue
2 files · +67 · -72
- Admin
- Route (yield)
- Docs
- 14-decisions.md
docs 17:29:06 5f1232b2
docs(epoch,tranche): v3-105 + v3-106 — cancel claims first, and a wiped tranche escalates on-chain
7 files · +190 · -9
- Docs
- 04-pool-models.md
- 06-writedown-nav.md
- 07-redemption.md
- 08a-contract-reference.md
- 10-status-machines.md
- 14-decisions.md
- 17-changelog.md
docs 17:25:07 86455b46
docs(yield): v3-104 — fix the estimate basis, the missed-period count, and record that PENDING has no owner
1 files · +6
- Docs
- 14-decisions.md
docs 17:14:31 6ce938a9
docs(yield): v3-104 — due-but-unrecorded periods belong in the read model, not a FE join
4 files · +46
- Docs
- 13-operations.md
- 14-decisions.md
- 15-api-reference.md
- 17-changelog.md
refactor 15:46:44 6687c1b8
refactor(admin): render the Yield Pending queue with DataTable like every other tab
1 files · +119 · -124
- Admin
- Route (yield)
docs 15:23:22 33296078
docs(schema): notification_preferences.category is event_key for investors too
1 files · +14 · -5
- Infra
- DB schema.sql
fix 15:20:48 803d830c
fix(admin): make Yield Pending rows actually selectable, and give the tab a search bar
1 files · +97 · -62
- Admin
- Route (yield)
fix 15:05:02 aaf8f0a3
fix(admin): let the Yield Pending tab select into the detail panel
1 files · +154 · -30
- Admin
- Route (yield)
docs 14:28:59 9e4f9643
docs(notifications): reconcile the pages with the registry; copy SoT is the code (v3-101)
5 files · +202 · -87
- Docs
- 11-db-schema.md
- 13-operations.md
- 14-decisions.md
- 17-changelog.md
- 22-notifications.md
other 14:16:20 ae4e6018
copy(redemption): lead the closure notices with the returned position
1 files · +39 · -13
- Infra
- copy.ts
2026-07-30 (Thu)
🟢 ch/product
docs 17:51:51 ef8b06eb
docs(contracts): correct the RedemptionLib size to the post-exit-gate measurement
1 files · +1 · -1
- Docs
- 08-smart-contracts.md
feat 17:51:51 fc91f6a1
feat(redemption): finish v3-99 — shared closure reasons, live exit-gate hint, split closure counts
19 files · +415 · -70
- Admin
- Route (redemptions)
- Admin API
- redemption-requests
- use-redemption-requests
- Docs
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09-rbac.md
- 10-status-machines.md
- 13-operations.md
- 14-decisions.md
- 15-api-reference.md
- 17-changelog.md
- 22-notifications.md
- Infra
- CDK Stack (api-stack)
- redemption-exit-gate.ts
- Lambda API
- redemption-requests.get.counts
- redemption-requests.get.exit-gate
- redemption-requests.post.reject
- Other
- packages/types/src/index.ts
feat 16:57:13 c4f470a2
feat(redemption): gate the payout entry point on exit eligibility, detect blocked requests early
20 files · +861 · -37
- Contract Test
- PlatformPool.t
- Docs
- 10-status-machines.md
- 13-operations.md
- epoch-redemption-redesign.md
- Infra
- CDK Stack (api-stack)
- copy.ts
- engine.ts
- events.ts
- exit-gate.ts
- index.ts
- redemption-exit-gate.test.ts
- redemption-exit-gate.ts
- redemption.ts
- Lambda API
- redemption-requests.post.approve
- redemption-requests.post.fund
- redemption-requests.scheduler.exit-gate-sweep
- Other
- CLAUDE.md
- Smart Contract
- PlatformPool
- PlatformPool.abi.json
- RedemptionLib
feat 16:57:13 f8b165a3
feat(notifications): mirror the copy sheet, enforce investor preferences, add the follow opt-in
27 files · +1098 · -109
- Infra
- CDK Stack (api-stack)
- DB 0108_investor_notification_prefs_event_keys.sql
- DB 0109_pool_follows.sql
- DB schema.sql
- copy.ts
- investor-preferences.test.ts
- investor-preferences.ts
- notify.ts
- package.json
- Investor Web
- Route (pool.$id)
- Route (settings)
- Investor Web API
- index
- keys
- pool-follows
- use-pool-follows
- use-user-settings
- user-settings
- Lambda API
- notification-logs.scheduler.send
- notification-preferences.get.list
- notification-preferences.put.update
- pool-follows.delete
- pool-follows.get.list
- pool-follows.post.create
- pools.scheduler.lifecycle
- Other
- scripts/check-copy.mjs
- scripts/check-notification-producers.mjs
chore 16:57:13 3a49350e
chore(infra): drop deleteExisting from CloudFront alias records
4 files · -24
- Infra
- CDK Stack (admin-web-stack)
- CDK Stack (api-stack)
- CDK Stack (docs-stack)
- CDK Stack (web-stack)
fix 11:47:17 2345fd1a
fix(redemption): make wind-down payouts reachable; clamp hold-back release to free liquidity
5 files · +184 · -54
- Contract Test
- PlatformPoolEpoch.t
- PlatformPoolNonCustodial.t
- Docs
- 04-pool-models.md
- Smart Contract
- GovernanceLib
- RedemptionLib
feat 11:47:16 39e94e86
feat(epoch): rebuild the redemption engine — index collapse, double-commit, anchored schedule
64 files · +3960 · -756
- Admin
- pool-controls
- step-redemption
- types
- Admin API
- pools
- Contract Deploy
- CreatePool.s
- DeployV3Sepolia.s
- Contract Test
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFactory.t
- PlatformPoolFlows.t
- PlatformPoolInvariant.t
- PlatformPoolNonCustodial.t
- SequenceDiagramVerification.t
- Docs
- 11-db-schema.md
- epoch-redemption-redesign.md
- Infra
- CDK Stack (api-stack)
- DB 0104_epoch_schedule_cols.sql
- DB 0105_epoch_schedule_comments.sql
- DB 0106_drop_liquidity_windows.sql
- DB schema.sql
- copy.ts
- create-pool.ts
- deposit-eligibility.ts
- engine.ts
- enums.ts
- events.ts
- format-date.ts
- freeze-milestones.test.ts
- freeze-state.test.ts
- freeze-state.ts
- freeze.ts
- index.ts
- notify.ts
- redemption-eligibility.test.ts
- redemption-eligibility.ts
- Investor Web API
- pools
- Lambda API
- deposits.post.create
- pools.get.eligibility
- pools.get.list
- pools.patch.update
- pools.post.create
- pools.post.freeze
- pools.post.pause
- pools.scheduler.epoch-funding-date
- pools.scheduler.lifecycle
- pools.worker.deploy
- redemption-requests.post.create
- redemption-requests.scheduler.epoch-execute
- redemption-requests.scheduler.partner-funding
- yield.post.reinvest
- Other
- CLAUDE.md
- packages/types/src/index.ts
- Smart Contract
- GovernanceLib
- PlatformPool
- PlatformPool.abi.json
- PlatformPoolFactory.abi.json
- PlatformPoolStorage
- PoolCommonLib
- PoolConfigLib
- RedemptionLib
- YieldLib
fix 11:47:16 ce05c61d
fix(admin-redemptions): reset the detail panel when the list changes
1 files · +35 · -4
- Admin
- Route (redemptions)
fix 11:47:16 8a04310b
fix(auth): accept the integer sbt_token_id so minted investors keep their session
2 files · +38 · -2
- Infra
- jwt-token-use.test.ts
- jwt.ts
🔵 jy/product
feat 18:33:10 489e0dc9
feat(notifications): tell the FM when a hold-back release is clamped, and fix the 1e12 amounts around it
13 files · +376 · -19
- Docs
- 14-decisions.md
- 17-changelog.md
- 22-notifications.md
- Infra
- copy.ts
- engine.ts
- epoch-redemption.ts
- epoch.ts
- events.ts
- governance.ts
- holdback-release.test.ts
- holdback-release.ts
- redemption.ts
- Lambda API
- redemption-requests.scheduler.partner-funding
docs 17:44:35 fd5b93c8
docs(epoch): close out the epoch redesign against the merged engine (v3-100)
10 files · +97 · -25
- Docs
- 04-pool-models.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09a-custody.md
- 10-status-machines.md
- 14-decisions.md
- 17-changelog.md
- 24-field-governance.md
docs 16:40:38 1b288e50
docs(notifications): record the closure-notice split by reason (v3-99)
2 files · +30 · -1
- Docs
- 17-changelog.md
- 22-notifications.md
feat 16:23:13 a18a2d7f
feat(notifications): split the redemption-closure notice by reason (v3-99 step 1 tail)
4 files · +71 · -11
- Infra
- contact.ts
- copy.ts
- index.ts
- Lambda API
- redemption-requests.post.reject
feat 15:58:46 e2e3ecad
feat(redemption): Return position — admin-only, reason required (v3-99 step 1)
3 files · +116 · -30
- Admin
- Route (redemptions)
- Admin API
- redemption-requests
- Lambda API
- redemption-requests.post.reject
docs 15:49:00 c3070922
docs(redemption): close v3-99 — Return position is ADMIN-only, reason required
4 files · +33 · -7
- Docs
- 07-redemption.md
- 09-rbac.md
- 14-decisions.md
- 17-changelog.md
docs 15:34:36 1a5f9943
docs(epoch): correct the engine status item by item after the ch/product merge
5 files · +40 · -12
- Docs
- 04-pool-models.md
- 07-redemption.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
docs 15:26:16 6ff5cff1
docs(redemption): write down the exit gates; rename the operator action
4 files · +87 · -3
- Docs
- 07-redemption.md
- 09-rbac.md
- 14-decisions.md
- 17-changelog.md
feat 15:10:37 b52b913f
feat(notifications): P0-A/P0-B + ops variants, freeze window, INVALID_RECIPIENT KPI
29 files · +1195 · -164
- Docs
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- 22-notifications.md
- Infra
- DB 0104_failed_notifications_exclude_invalid_recipient.sql
- DB schema.sql
- activity.ts
- admin-preferences.ts
- apply-proposal.ts
- copy.ts
- create-system-update.ts
- epoch.ts
- freeze-window.test.ts
- freeze-window.ts
- freeze.ts
- notify.ts
- Lambda API
- nav-changes.post.cancel
- nav-changes.post.propose
- nav-changes.scheduler.apply-pending
- notification-logs.scheduler.send
- pools.get.eligibility
- pools.get.list
- pools.post.impairment
- pools.post.wind-down
- pools.scheduler.lifecycle
- redemption-requests.post.create
- redemption-requests.scheduler.epoch-execute
- redemption-requests.scheduler.partner-funding
- yield-claims.post.create
2026-07-29 (Wed)
🟢 ch/product
fix 12:12:40 7debf06c
fix(web,infra): unbreak /activity, refresh it after its own actions, record epoch fills
17 files · +612 · -76
- Docs
- 11-db-schema.md
- Infra
- DB 0103_redemption_fills.sql
- DB schema.sql
- epoch.ts
- Investor Web
- Route (activity)
- Widget (activity-tab)
- transaction-entries
- use-invest-flow
- use-settle-epoch-flow
- Investor Web API
- investor-activity
- keys
- use-redemption-requests
- use-redeposit
- use-yield-claims
- Investor Web UI
- TransactionDetailDrawer
- Lambda API
- investor-activity.get.list
- Other
- packages/types/src/index.ts
feat 12:12:40 dda78b1a
feat(contract): allow partial reinvest, regenerate the stale pool ABI
11 files · +178 · -45
- Contract Test
- PlatformPool.t
- PlatformPoolFlows.t
- Docs
- 05-investment-lifecycle.md
- 08a-contract-reference.md
- Investor Web
- Widget (PortfolioHero)
- Investor Web API
- portfolio-positions
- redemption-requests
- yield-claims
- Smart Contract
- PlatformPool
- PlatformPool.abi.json
- YieldLib
fix 12:12:40 9bdea96d
fix(pools): reopen exits after the freeze window, badge real pool state, stop blaming filters for failures
25 files · +590 · -139
- Docs
- 15-api-reference.md
- Infra
- reinvest.ts
- Investor Web
- PoolBrowseCard
- PoolCard
- PoolRow
- Route (pool.$id)
- Route (pools)
- Route (portfolio)
- Widget (PCWidgets)
- Widget (invest-sidebar)
- Widget (overview-tab)
- Widget (pool-header-card)
- Widget (position-card)
- client
- contracts
- index
- methods
- pool-exit
- status
- use-reinvest-flow
- Investor Web API
- pools
- Investor Web UI
- RedeemModal
- YieldClaimDialog
- status-badge
- Lambda API
- pools.get.list
fix 12:12:40 adea302a
fix(admin-my-settings): make email toggles real, self-profile endpoint, FM session access
39 files · +1416 · -306
- Admin
- Route (admin-settings)
- Route (my-settings)
- notification-prefs
- notification-prefs.test
- Admin API
- admin-users
- notification-preferences
- notifications
- platform-settings
- use-admin-users
- use-notification-preferences
- Admin UI
- status-dot
- Docs
- 11-db-schema.md
- 15-api-reference.md
- 22-notifications.md
- Infra
- CDK Stack (api-stack)
- DB 0100_notification_status_suppressed.sql
- DB 0101_admin_notification_prefs_event_keys.sql
- DB 0102_admin_sessions_drop_is_current.sql
- DB schema.sql
- admin-preferences.test.ts
- admin-preferences.ts
- copy.ts
- large-deposit.test.ts
- large-deposit.ts
- notify.ts
- sessions.ts
- Lambda API
- admin-me.patch.update
- admin-notification-preferences.get.list
- admin-notification-preferences.put.update
- admin-users.patch.update
- auth.get.admin-sessions
- auth.post.admin-logout-all
- auth.post.admin-session-revoke
- auth.post.refresh
- deposits.post.create
- fund-members.patch.update
- notification-logs.get.list
- notification-logs.scheduler.send
- platform-settings.put.update
fix 12:12:40 d516f2dd
fix(admin-settings): report invite failures, role-accurate access notes, self-delete guard
5 files · +177 · -70
- Admin
- Route (admin-settings)
- Admin API
- use-admin-users
- Admin UI
- status-dot
- Lambda API
- admin-users.delete
- admin-users.get.list
fix 12:12:40 5d3a5f81
fix(admin-pools): unfold is_paused from the lifecycle, target real proposals, uncap summed lists
21 files · +385 · -69
- Admin
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (pools)
- investors-tab
- overview-tab
- permissions
- permissions.test
- pool-controls
- status
- Admin API
- nav-changes
- notifications
- pools
- use-nav-changes
- use-notification-logs
- use-pools
- Admin UI
- pool-badges
- Docs
- 10-status-machines.md
- Lambda API
- pools.get.list
- pools.post.create
- pools.post.lifecycle
fix 12:12:40 d96d06e0
fix(admin-kyc): identify rows by real data, add a lever for stuck reviews, record epoch demand
11 files · +309 · -63
- Admin
- Route (kyc)
- qualification-panel
- Admin API
- kyc
- Docs
- 11-db-schema.md
- 15-api-reference.md
- Infra
- activity.ts
- epoch.ts
- Lambda API
- admin-users.post.invite
- kyc.post.sync
- redemption-requests.post.approve
- users.get.list
fix 12:12:40 291eb01d
fix(admin-funds): real error states, live pool counts, editable issuer profile
14 files · +410 · -107
- Admin
- Route (admin-settings)
- Route (fund-detail)
- Route (fund-manager-onboard)
- Route (funds)
- configuration-tab
- issuer-fields
- Admin API
- funds
- use-fund-invites
- use-fund-members
- use-funds
- Lambda API
- funds.get.list
- funds.patch.update
- funds.post.create
fix 12:12:40 039f993d
fix(admin-kyc): stop asserting an unassessed risk tier, add SBT re-mint, normalize log vocabulary
11 files · +286 · -20
- Admin
- Route (kyc)
- Admin API
- activity-category
- activity-category.test
- kyc
- Docs
- 11-db-schema.md
- 15-api-reference.md
- README.md
- bulk-sbt-mint.md
- Infra
- DB 0099_kyc_logs_normalize_legacy_status_result.sql
- activity.ts
- Lambda API
- kyc.post.mint-sbt
feat 12:12:40 9fba6e25
feat(web,admin-web): render every date in Singapore time; fix Audit Log export + filters
34 files · +677 · -177
- Admin
- Route (audit-log)
- Route (pool-create)
- Route (pool-edit)
- Route (yield)
- datetime
- dday
- index
- nav-chart
- pool-controls
- qualification-panel
- step-redemption
- Admin API
- dashboard
- use-dashboard
- Docs
- 09-rbac.md
- Infra
- notify.ts
- Investor Web
- Route (activity)
- Route (dashboard)
- Route (portfolio)
- Route (settings)
- Widget (PCWidgets)
- Widget (fund-data-tab)
- Widget (invest-sidebar)
- Widget (performance-tab)
- Widget (pool-header-card)
- formatters
- redemption-state
- status
- Investor Web API
- pools
- Investor Web UI
- Footer
- RedeemModal
- TransactionDetailDrawer
- Lambda API
- activity-events.get.counts
- activity-events.get.export
- activity-events.get.list
fix 12:12:40 a0cf0c23
fix: harden auth and audited investor access
43 files · +1759 · -2956
- Admin
- Route (admin-settings)
- Route (fund-detail)
- Route (fund-manager-onboard)
- Route (funds)
- Route (kyc)
- Route (my-settings)
- Route (notifications)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (pools)
- client
- investor-sidebar
- Admin API
- activity-events
- investor-detail
- portfolio-positions
- use-portfolio-positions
- Docs
- 07-redemption.md
- 09-rbac.md
- 13-operations.md
- Infra
- CDK Stack (admin-web-stack)
- CDK Stack (api-stack)
- CDK Stack (spa-security-headers)
- CDK Stack (web-stack)
- DB 0096_pool_position_stats.sql
- index.ts
- investor-stats.ts
- jwt-token-use.test.ts
- jwt.ts
- package.json
- Investor Web
- client
- package
- Lambda API
- activity-events.post.create
- auth.post.logout
- auth.post.refresh
- pools.get.list
- portfolio-positions.get.list
- users.get.investor-detail
- users.get.list
- Other
- package.json
- packages/http-auth/package.json
- packages/http-auth/src/index.ts
- pnpm-lock.yaml
fix 12:12:40 4910da02
fix(admin-yield): honest pool picker, deterministic pools paging, working deep-links
5 files · +46 · -6
- Admin API
- pools
- yield-distributions
- Infra
- copy.ts
- Lambda API
- pools.get.list
- yield-distributions.post.create
fix 12:12:40 f90057a3
fix(admin-redemptions): honest funding state, epoch queue partition, drawer gaps
9 files · +449 · -37
- Admin
- format-amount
- redemption-funding
- redemption-funding.test
- use-refresh-queries
- use-refresh-queries.test
- Admin API
- redemption-requests
- Infra
- DB 0097_epoch_summary_disjoint_queues.sql
- epoch.ts
- Lambda API
- redemption-requests.get.list
fix 12:12:40 499608ea
fix(admin-deposits): real CSV export, Pending tab covers PROCESSING, honest Received panel
13 files · +804 · -273
- Admin
- Route (deposits)
- Route (redemptions)
- Route (yield)
- csv-download
- export-table-csv
- index
- redemption-funding-modal
- use-csv-export
- Admin API
- deposits
- Docs
- 15-api-reference.md
- Infra
- status-filter.test.ts
- status-filter.ts
- Lambda API
- deposits.get.list
fix 12:12:40 73174425
fix(admin-dashboard): correct Action Required, Platform Stats & Recent Activity
17 files · +869 · -310
- Admin
- Route (audit-log)
- Route (dashboard)
- package
- Admin API
- activity-category
- activity-category.test
- dashboard
- use-dashboard
- use-deposits
- use-redemption-requests
- use-yield-distributions
- Admin UI
- index
- status-dot
- Docs
- 11-db-schema.md
- Infra
- DB 0095_platform_stats_total_yield_from_distributions.sql
- DB 0098_platform_stats_scope.sql
- DB schema.sql
- Lambda API
- dashboard.get.stats
🔵 jy/product
feat 17:50:29 98074810
feat(kyc): drop entity onboarding, remove the verification-type selector
4 files · +89 · -96
- Docs
- 03-kyc-identity.md
- 14-decisions.md
- 17-changelog.md
- Investor Web UI
- KYCModal
docs 14:57:36 0970ebee
docs: reconcile stale status claims with the code
8 files · +78 · -27
- Docs
- 04-pool-models.md
- 06-writedown-nav.md
- 09-rbac.md
- 11-db-schema.md
- 14-decisions.md
- 15-api-reference.md
- 17-changelog.md
- 21-holder-verification.md
2026-07-28 (Tue)
🟢 ch/product
No activity
🔵 jy/product
style 18:30:44 ca82857e
style(admin-yield): drop the ≈ on the Overview hero (the "estimated" label already says it)
1 files · +1 · -1
- Admin
- Route (yield)
fix 10:55:50 8fd6c1e5
fix(admin-yield): (i) tooltip to the right of Escalate; drop the "Overdue" section heading
1 files · +11 · -13
- Admin
- Route (yield)
refactor 10:52:38 1bbde835
refactor(admin-yield): drop the admin warning box; (i) tooltip sits by the Escalate CTA
1 files · +25 · -27
- Admin
- Route (yield)
feat 10:50:18 d3c9b895
feat(admin-yield): admin escalate becomes the footer primary + (i) tooltip
1 files · +59 · -44
- Admin
- Route (yield)
fix 10:45:36 674d6e06
fix(admin-yield): unify FM wallet action to "Connect wallet" (disconnect-then-connect if wrong)
1 files · +28 · -10
- Admin
- Route (yield)
feat 10:41:48 5565b10f
feat(admin-yield): actionable wrong-wallet gate (connect / switch / escalate) + record deep-link
2 files · +113 · -25
- Admin
- Route (yield)
- Admin API
- pools
feat 10:41:48 8fc3f22e
feat(infra): escalate-yield endpoint + notification to the fund wallet owner
3 files · +88
- Infra
- CDK Stack (api-stack)
- copy.ts
- Lambda API
- pools.post.escalate-yield
style 10:00:28 fa3ab421
style(admin-yield): rename calc rows to "Total yield" and "Net to holders"
1 files · +4 · -4
- Admin
- Route (yield)
feat 09:52:42 5a03f44f
feat(admin-yield): redesign the calculation as grouped, operator-led steps + per-LP-token
2 files · +68 · -58
- Admin
- Route (yield)
- Admin API
- pools
feat 09:52:42 e9a00093
feat(infra/pools): derive lp_total_supply for the yield-per-LP-token basis
2 files · +38 · -3
- Infra
- investor-stats.ts
- Lambda API
- pools.get.list
2026-07-27 (Mon)
🟢 ch/product
fix 14:33:54 d5b9239c
fix(infra): unpause on-chain when a higher state auto-clears is_paused (v3-92)
10 files · +174 · -18
- Docs
- 08-smart-contracts.md
- 10-status-machines.md
- 14-decisions.md
- 17-changelog.md
- Infra
- index.ts
- pause.ts
- Lambda API
- pools.post.freeze
- pools.post.impairment
- pools.post.wind-down
- Other
- CLAUDE.md
fix 14:30:28 a6b2de13
fix(infra): let DRAFT / DEPLOY_FAILED pools always hard-delete (0093)
3 files · +108 · -5
- Docs
- 11-db-schema.md
- Infra
- DB 0093_hard_delete_draft_pool_force.sql
- Lambda API
- pools.delete
fix 14:30:28 7608d3ca
fix(admin): stop sticky header bouncing on trackpad overscroll
1 files · +8
- Admin
- global
🔵 jy/product
fix 19:06:58 a673d0a9
fix(admin-yield): show Gross/Fee/Net (incl. "Fee none") before a gross is typed
1 files · +1 · -1
- Admin
- Route (yield)
fix 19:04:57 550e05b4
fix(admin-yield): show the estimate for tiny-TVL pools instead of "unavailable"
1 files · +12 · -8
- Admin
- Route (yield)
feat 19:00:08 d3df5b96
feat(admin-yield): expandable batch rows + investor count in the calculation
1 files · +127 · -119
- Admin
- Route (yield)
feat 18:51:48 88ac36bc
feat(admin-yield): batch "distribute overdue" review modal (UI only)
1 files · +102 · -1
- Admin
- Route (yield)
docs 18:49:55 866b336d
docs(copy): CLAUDE.md rule 2-b + enforcement layer for the copy SoT (v3-96)
4 files · +78 · -1
- Docs
- 10-status-machines.md
- 14-decisions.md
- 17-changelog.md
- Other
- CLAUDE.md
other 18:49:43 566e28e9
build(copy-guard): fail the build on unverified copy claims (v3-96)
5 files · +238 · -6
- Admin
- eslint.config
- package
- Investor Web
- eslint.config
- package
- Other
- scripts/check-copy.mjs
refactor 18:49:31 36bdd17b
refactor(copy): move status copy out of components into copy modules (v3-96)
5 files · +335 · -137
- Admin
- Route (pool-detail)
- pool-controls
- status
- Investor Web
- status
- Investor Web UI
- PoolStatusAlert
docs 18:35:55 9945e1a9
docs(yield): record = distribute one-shot, status-scoped recovery, tx_hash-persist fix (v3-96)
2 files · +31
- Docs
- 14-decisions.md
- 17-changelog.md
fix 18:25:53 7176ae3a
fix(infra/yield): persist distribute tx_hash before finalize to prevent orphaned PENDING
1 files · +20
- Infra
- run-distribution.ts
docs 18:25:08 091ce8e4
docs(status): banner copy SoT; pause is manual-only and overdue never auto-pauses (v3-94, v3-95)
4 files · +150 · -4
- Docs
- 10-status-machines.md
- 14-decisions.md
- 17-changelog.md
- Other
- CLAUDE.md
fix 18:24:54 69d76411
fix(status-copy): stop claiming auto-pause, drop the fabricated pause drawer (v3-95)
4 files · +90 · -61
- Admin
- Route (pool-detail)
- pool-controls
- Investor Web
- Route (pool.$id)
- Investor Web UI
- PoolStatusAlert
fix 18:24:25 391da7ad
fix(admin-yield): only offer recoveries the backend actually supports
1 files · +37 · -87
- Admin
- Route (yield)
refactor 18:17:34 bba16430
refactor(admin-yield): treat stuck PENDING as needs-retry, not "ready to distribute"
1 files · +32 · -22
- Admin
- Route (yield)
other 18:03:03 36391086
polish(admin-yield): clearer Calculation section (reason, fee grouping, spacing)
1 files · +31 · -21
- Admin
- Route (yield)
feat 17:54:40 606cee89
feat(admin-yield): always show Calculation + add retry action for stuck rows
1 files · +29 · -6
- Admin
- Route (yield)
refactor 17:51:01 9fed5ef3
refactor(admin-yield): relabel the overdue queue to Distribute (#3)
1 files · +4 · -4
- Admin
- Route (yield)
fix 17:40:55 389bbc90
fix(admin-yield): the server-side record modal already distributes, so label it that way
1 files · +4 · -4
- Admin
- Route (yield)
fix 17:20:39 fc75010a
fix(admin-yield): correct the Overview all-distributions total + hide ~$0 estimates
1 files · +5 · -5
- Admin
- Route (yield)
style 17:16:52 e4f6b2ef
style(admin-yield): make the Calculation heading a real subtitle
1 files · +1 · -1
- Admin
- Route (yield)
feat 17:15:35 d0b5f8bd
feat(admin-yield): add a Calculation breakdown section to the record modal
1 files · +58 · -70
- Admin
- Route (yield)
refactor 17:08:23 c1d93373
refactor(admin-yield): fold the fee-free note into the amount area
1 files · +17 · -18
- Admin
- Route (yield)
docs 17:02:44 6535b753
docs(epoch): funding date is admin-entered per cycle; knob freezes at window open (v3-93)
3 files · +8 · -8
- Docs
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
feat 16:46:02 89b05cd1
feat(nav): A4 — automated NAV suggestion + approve/override layer
18 files · +965 · -7
- Admin
- nav-change-dialog
- Admin API
- keys
- nav-changes
- use-nav-changes
- Docs
- 06-writedown-nav.md
- 11-db-schema.md
- 14-decisions.md
- Infra
- CDK Stack (api-stack)
- DB 0094_nav_proposals.sql
- DB schema.sql
- activity.ts
- apply-proposal.ts
- copy.ts
- nav-suggest.ts
- Lambda API
- nav-changes.post.approve
- nav-changes.post.override
- nav-proposals.get.list
- nav-proposals.scheduler.suggest
feat 16:37:36 660fe550
feat(admin-yield): explain the fee-policy blocker and deep-link to it
2 files · +16 · -6
- Admin
- Route (pool-edit)
- Route (yield)
refactor 16:23:05 af3957dd
refactor(admin-yield): make the record modal a clear gated flow
1 files · +44 · -27
- Admin
- Route (yield)
docs 16:18:41 1415ec03
docs(epoch): request window is a hard gate, one funding-date anchor, cancel window (v3-93)
3 files · +49 · -5
- Docs
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
feat 16:14:04 92b2ed23
feat(admin-yield): prefill the record modal with an APY-based estimate
1 files · +49 · -13
- Admin
- Route (yield)
feat 16:11:40 6b71e28f
feat(admin-yield): turn Pending tab into a distribution action queue
2 files · +168 · -59
- Admin
- Route (yield)
- Admin UI
- count-badge
docs 15:24:09 c7f473e7
docs(money-path): drop stale "penalty still credits reserve" caveat (v3-85)
1 files · +1 · -1
- Docs
- 23-money-path.md
docs 14:37:33 f96bbf4b
docs(redemption): flag v3-91 epoch redesign across epoch-behavior docs
4 files · +7 · -3
- Docs
- 04-pool-models.md
- 08a-contract-reference.md
- 10-status-machines.md
- 12-triggers.md
docs 14:06:10 f04b11a4
docs(redemption): v3-91 — epoch engine redesign (decided, impl pending)
3 files · +39 · -2
- Docs
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
2026-07-24 (Fri)
🟢 ch/product
fix 18:26:18 6424851b
fix(admin): stop sticky header bouncing on trackpad overscroll
1 files · +8
- Admin
- global
fix 17:54:51 95cb2364
fix(admin): white background for the deposits empty-state panel
1 files · +1 · -1
- Admin
- Route (deposits)
fix 17:54:51 b84341bb
fix(admin): align settings CTAs and spacing with the rest of the panel
2 files · +29 · -28
- Admin
- Route (admin-settings)
- Route (my-settings)
fix 17:47:09 c9f18298
fix(admin): align settings CTAs and spacing with the rest of the panel
2 files · +28 · -27
- Admin
- Route (admin-settings)
- Route (my-settings)
fix 17:23:22 4229768a
fix(admin): keep primary button text readable on hover (pools/funds CTAs)
2 files · +4 · -4
- Admin
- Route (funds)
- Route (pools)
fix 16:12:32 493c2dda
fix(admin): DataTable surface polish — fuse controls, first-col tint, last-row accent
3 files · +59 · -17
- Admin
- Route (funds)
- Route (pools)
- global
fix 15:34:41 fa437b90
fix(web): browse/portfolio UI polish — tab scrollbar, search icon, chip order, positions gap
4 files · +23 · -20
- Investor Web
- PoolBrowseCard
- Route (activity)
- Route (pools)
- Widget (PCWidgets)
fix 14:51:20 2a6512b2
fix(admin): align pools ops-filter counts with the visible rows
1 files · +25 · -16
- Admin
- Route (pools)
fix 14:46:44 d85851f9
fix(admin): unify filter-tab active color and stabilize dashboard Count column
4 files · +18 · -14
- Admin
- Route (admin-settings)
- Route (dashboard)
- Route (kyc)
- Route (notifications)
fix 13:58:25 e6484a26
fix(admin): unblock pool Class-C edits and shrink Back-to-Pools link hit area
2 files · +5 · -3
- Admin
- Route (pool-detail)
- payload
feat 12:32:02 f2cf37c2
feat(contract,infra): KYC MINTER_ROLE least-privilege split + guarded pool hard-delete
6 files · +171 · -11
- Contract Deploy
- GrantKYCRoles.s
- MintKYC.s
- Contract Test
- PlatformKYCSoulbound.t
- Infra
- DB 0090_hard_delete_pool_guarded.sql
- Lambda API
- pools.delete
- Smart Contract
- PlatformKYCSoulbound
fix 12:30:12 56a7cb8c
fix(infra): correct NAV scale to 6-dec and reconcile chain↔DB NAV drift
12 files · +399 · -54
- Docs
- 11-db-schema.md
- Infra
- CDK Stack (api-stack)
- DB 0089_nav_precision_scale6.sql
- DB 0091_apply_nav_change_atomic.sql
- DB schema.sql
- index.ts
- nav.ts
- Lambda API
- nav-changes.post.activate
- nav-changes.post.propose
- nav-changes.scheduler.apply-pending
- pools.post.wind-down
- tranche.post.writedown
🔵 jy/product
feat 18:24:50 c0facbf6
feat(admin): pool-detail funding modal + redemption panel actions + NAV pending writedown
6 files · +360 · -202
- Admin
- Route (redemptions)
- fund-payout-button
- investors-tab
- nav-chart
- overview-tab
- redemption-funding-modal
feat 17:58:29 bac5496d
feat(admin): pool overview Redeemable card + redemptions master-detail
5 files · +302 · -157
- Admin
- Route (redemptions)
- overview-tab
- Admin UI
- index
- Infra
- DB 0092_epoch_demand_usd_forward_priced.sql
- Other
- packages/ds-editorial/src/patterns.tsx
docs 17:09:14 fae8a848
docs(joob): v3-90 — NPL@90 / write-off ~180 DPD, cash-received fund value mirrored
6 files · +54 · -6
- Docs
- 06-writedown-nav.md
- 14-decisions.md
- 17-changelog.md
- 20-joob-pool-config.md
- Investor Web
- Widget (fund-data-tab)
- Investor Web API
- fund-data
2026-07-23 (Thu)
🟢 ch/product
feat 19:06:59 ef96877e
feat(web,admin): surface API mutation failures via global error toast
11 files · +155 · -11
- Admin
- query-client
- Admin API
- dashboard
- use-pools
- use-yield-distributions
- Investor Web
- query-client
- use-reinvest-flow
- Investor Web API
- use-auth
- use-deposits
- use-kyc
- use-redemption-requests
- use-redeposit
fix 19:06:59 44e844ed
fix(contract): harden KYC/governance/reinvest/redemption per contract QA
16 files · +503 · -48
- Contract Test
- PlatformKYCSoulbound.t
- PlatformPool.t
- PlatformPoolFactory.t
- PlatformPoolFlows.t
- SequenceDiagramVerification.t
- Docs
- 04-pool-models.md
- 05-investment-lifecycle.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 23-money-path.md
- Smart Contract
- GovernanceLib
- PlatformKYCSoulbound
- PlatformPool
- PlatformPoolStorage
- PoolConfigLib
- YieldLib
fix 19:06:59 f2883d8c
fix(infra): resolve backend QA findings across auth/kyc/pools/yield/redemption
54 files · +1477 · -229
- Docs
- 09-rbac.md
- 11-db-schema.md
- Infra
- DB 0085_deposit_process_atomic.sql
- DB 0086_yield_hardening.sql
- DB schema.sql
- copy.ts
- fallback-redemption.ts
- index.ts
- nav.ts
- pool-maturity.test.ts
- pool-maturity.ts
- pool-read-access.ts
- pool-visibility.test.ts
- pool-visibility.ts
- redemption.ts
- sbt-sync.test.ts
- sbt-sync.ts
- self-heal.test.ts
- self-heal.ts
- Lambda API
- activity-events.get.export
- admin-users.get.list
- auth.post.nonce
- auth.post.verify
- config.get.chains
- config.get.stablecoins
- deposits.get.list
- deposits.post.create
- fund-members.patch.update
- fund-members.post.create
- kyc.get.status
- kyc.post.access-token
- kyc.scheduler.reverify-sweep
- nav-changes.get.list
- nav-changes.post.propose
- notification-logs.get.list
- notification-logs.post.resend
- pools.get.eligibility
- pools.get.fund-data-writeoffs
- pools.patch.update
- pools.post.create
- pools.post.governance
- pools.post.impairment
- pools.post.wind-down
- pools.scheduler.lifecycle
- pools.scheduler.tvl-snapshot
- redemption-requests.post.cancel
- redemption-requests.post.claim-fallback
- redemption-requests.post.create
- tranche.post.writedown
- users.post.email
- wallets.get.list
- yield-claims.post.create
- yield-distributions.post.distribute
- yield.post.reinvest
fix 19:03:15 97548eaf
fix(admin): resolve admin-panel QA findings (redemptions, pools, yield, kyc, funds, notifications, settings)
36 files · +815 · -204
- Admin
- Route (admin-settings)
- Route (deposits)
- Route (fund-detail)
- Route (funds)
- Route (kyc)
- Route (my-settings)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (redemptions)
- Route (yield)
- auth-context
- payload
- permissions
- provider
- qualification-panel
- step-yield-fees
- types
- Admin API
- funds
- keys
- kyc
- notifications
- pools
- redemption-requests
- use-redemption-requests
- Docs
- 15-api-reference.md
- 22-notifications.md
- Infra
- CDK Stack (api-stack)
- DB 0084_redemption_epoch_summary_fn.sql
- DB 0087_notification_channel_webhook.sql
- run-distribution.ts
- Lambda API
- redemption-requests.get.epoch-summary
- redemption-requests.get.list
- yield-distributions.post.create
fix 19:01:40 b24889bd
fix(web): QA round — lifecycle/redemption/KYC/notification fixes; remove bridge
28 files · +145 · -206
- Docs
- 06-writedown-nav.md
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
- Investor Web
- Route (activity)
- Route (bridge)
- Route (dashboard)
- Route (disclaimer)
- Route (help)
- Route (kyc)
- Route (notifications)
- Route (pool.$id)
- Route (pools)
- Route (portfolio)
- Route (settings)
- explorer
- kyc-status
- methods
- redemption-state
- routes
- Investor Web API
- notifications
- use-user-settings
- user-settings
- Investor Web UI
- KYCModal
- KYCStatusCard
- RedeemModal
- Lambda API
- investor-activity.get.list
- Other
- CLAUDE.md
🔵 jy/product
wip 19:55:49 3081de5f
wip(admin): restore deposit master-detail + investor sidebar fold
1 files · +3 · -24
- Admin
- Route (deposits)
feat 19:55:40 ba5f67a3
feat(admin): pool-detail overview layout + status/warning polish
4 files · +151 · -133
- Admin
- Route (pool-detail)
- nav-chart
- overview-tab
- pool-metrics-line
wip 19:41:39 fc084924
wip(admin): panel empty-state shows an overview summary (yield + deposit)
2 files · +49 · -6
- Admin
- Route (deposits)
- Route (yield)
wip 19:37:52 1e3ef920
wip(admin): deposit master-detail panel + fold investor sidebar into it
2 files · +182 · -141
- Admin
- Route (deposits)
- investor-sidebar
wip 19:25:55 19bdb5b3
wip(admin): yield master-detail panel prototype (replaces slide-over drawer)
1 files · +128 · -119
- Admin
- Route (yield)
chore 19:20:54 e9e825d7
chore(infra): renumber reserve_balance migration 0084 → 0088 (ch/product collision)
3 files · +22 · -22
- Docs
- 11-db-schema.md
- Infra
- DB 0084_pool_reserve_balance.sql
- DB 0088_pool_reserve_balance.sql
feat 19:16:59 cbef3658
feat(admin): unified pool status chip + governance-pending chips + reserve alerts
8 files · +181 · -63
- Admin
- Route (pool-detail)
- Route (pools)
- overview-tab
- Admin API
- pools
- Admin UI
- index
- pool-badges
- status-dot
- Lambda API
- pools.get.list
fix 18:46:51 f86a1929
fix(admin): stop stating conditional penalty/redemption facts as fixed
4 files · +9 · -9
- Admin
- step-compliance
- step-redemption
fix 18:41:05 eb5ce9b1
fix(admin): breathe out NAV chart axes (x-label spacing, dedup y ticks)
1 files · +3 · -1
- Admin
- nav-chart
fix 18:37:21 1b1e3f5a
fix(admin): fund-wallet copy — "principal less the reserve", not fixed 90%
2 files · +4 · -3
- Admin
- step-basics
- types
feat 18:16:45 3f5458b9
feat(admin): consistent post-launch mutability chips on pool-create fields
6 files · +39 · -13
- Admin
- editorial
- step-basics
- step-compliance
- step-redemption
- step-structure
- step-terms
feat 18:09:30 808f4c4c
feat(admin): pool-detail overview redesign + live reserve + flat banners
13 files · +490 · -176
- Admin
- Route (pool-detail)
- deploy-status-banner
- index
- nav-chart
- overview-tab
- pool-metrics-line
- Admin API
- pools
- Admin UI
- alert-banner
- index
- Docs
- 11-db-schema.md
- Infra
- DB 0084_pool_reserve_balance.sql
- engine.ts
- Lambda API
- pools.get.list
fix 17:33:31 90a9ae46
fix(admin): stop pool-create epoch cycle-length flipping to instant mid-edit
3 files · +17 · -11
- Admin
- Route (pool-create)
- step-redemption
- validation
refactor 16:37:16 aaeeba9e
refactor(admin): flatten yield overdue banner to one hairline list
1 files · +32 · -13
- Admin
- Route (yield)
refactor 16:33:58 6f0ed210
refactor(admin): unify filters, buttons & remaining badges to dot+text
18 files · +106 · -118
- Admin
- Route (audit-log)
- Route (dashboard)
- Route (deposits)
- Route (fund-detail)
- Route (funds)
- Route (my-settings)
- Route (redemptions)
- Route (yield)
- collateral-badge
- header
- overdue-badge
- pool-controls
- qualification-panel
- transactions-tab
- updates-tab
- Admin UI
- dday-badge
- filter-group
- index
refactor 14:20:40 7c635668
refactor(admin): flat dot+text badge system + pool-list redesign
9 files · +319 · -191
- Admin
- Route (deposits)
- Route (pools)
- Route (redemptions)
- Route (yield)
- Admin UI
- index
- pool-badges
- status-badge
- status-dot
- Other
- packages/ds-editorial/src/tokens.css
docs 13:45:52 773f7458
docs: canonicalize OPEN_ENDED terminology; open-ended has no early-exit penalty (v3-89)
5 files · +50 · -22
- Docs
- 04-pool-models.md
- 07-redemption.md
- 12-triggers.md
- 14-decisions.md
- 17-changelog.md
fix 13:20:48 476e43a0
fix(admin): port the D6 redemption guard to the edit wizard
2 files · +27 · -3
- Admin
- Route (pool-edit)
- step-redemption
fix 13:15:26 491238e4
fix(admin): lock maturity_model on live pools in the edit wizard
1 files · +3 · -1
- Admin
- permissions
fix 13:12:24 e0c59383
fix(admin): clearer yield-based penalty lock-up guidance
2 files · +30 · -13
- Admin
- step-redemption
docs 12:41:53 17b72bfa
docs: record admin redemption-step wizard hardening (v3-88)
4 files · +38 · -3
- Docs
- 04-pool-models.md
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
fix 12:34:38 6f7100ce
fix(admin): clarify redemption settlement + gate epoch by redemption type (D7-D9)
3 files · +91 · -37
- Admin
- payload
- step-redemption
fix 11:00:14 5bd52f3c
fix(admin): align epoch redemption config wizard (D1-D6)
3 files · +156 · -82
- Admin
- step-redemption
- validation
2026-07-22 (Wed)
🟢 ch/product
fix 18:54:22 b8cbfdab
fix(kyc): unify KYC status interpretation and self-heal stale DB rows
9 files · +216 · -134
- Investor Web
- Route (dashboard)
- Route (kyc)
- Route (pool.$id)
- Route (portfolio)
- auth-button
- index
- kyc-status
- Investor Web UI
- KYCStatusCard
- Lambda API
- kyc.get.status
fix 18:06:02 d7faa747
fix(dashboard): correct funding shortfall amount + clearer alert label
2 files · +30 · -16
- Admin
- Route (dashboard)
- Lambda API
- dashboard.get.stats
fix 18:06:02 65c9bb0d
fix(dashboard): show Awaiting Partner Funding drilldown items
1 files · +14
- Admin
- Route (dashboard)
fix 18:06:02 83bfba8e
fix(redemption): default investor-sidebar wallet link to Basescan
1 files · +4 · -1
- Admin
- Route (redemptions)
fix 18:06:02 69771076
fix(redemption): reflect FM funding completion without a page refresh
1 files · +42 · -9
- Admin
- Route (redemptions)
fix 18:06:02 2389e130
fix(redemption): zero out fully-redeemed positions instead of deleting
2 files · +81 · -7
- Infra
- DB 0083_redemption_complete_zero_not_delete.sql
- Investor Web
- Route (portfolio)
fix 18:06:02 9a73c3ee
fix(chain): poll for receipts to survive fast-block RPC head lag
4 files · +17 · -4
- Infra
- approve-redemption.ts
- Lambda API
- deposits.post.create
- yield-claims.post.create
- yield-distributions.post.distribute
fix 18:06:02 87089317
fix(auth): resolve wallet identity by address, not address+chain
1 files · +32 · -5
- Lambda API
- auth.post.verify
fix 14:53:01 c4b1e184
fix(web): switch wallet to the pool's chain before every on-chain write
10 files · +63 · -14
- Investor Web
- Route (activity)
- index
- use-cancel-redemption-flow
- use-ensure-chain
- use-invest-flow
- use-redeem-flow
- use-reinvest-flow
- use-settle-epoch-flow
- wagmi
- Investor Web UI
- YieldClaimDialog
fix 14:42:54 6c306d6c
fix(chain): harden on-chain ops against fast-block RPC lag
3 files · +142 · -29
- Infra
- client.ts
- create-pool.ts
- Lambda API
- redemption-requests.post.create
fix 14:05:49 9283c97c
fix(pools): make admin "Retry Deploy" work by reusing the lifecycle endpoint
3 files · +123 · -77
- Admin API
- pools
- use-pools
- Lambda API
- pools.post.lifecycle
fix 13:45:49 fafd7da6
fix(pools): compare deploy_status against DEPLOY_FAILED, not stale 'FAILED'
5 files · +7 · -7
- Admin
- Route (pools)
- delete-pool-section
- deploy-status-banner
- Admin API
- pools
- Investor Web API
- pools
🔵 jy/product
feat 17:55:22 66e81943
feat(admin): governance dialog accepts percent for bps params
1 files · +16 · -5
- Admin
- pool-controls
chore 17:51:43 fb3c0324
chore(admin): remove temporary preview-redesign route
2 files · -167
- Admin
- Route (preview-redesign)
- routes
docs 17:51:43 973d0a43
docs: v3-87 — pool-detail Controls actions-only + NAV trend to Overview
2 files · +31 · -1
- Docs
- 14-decisions.md
- 17-changelog.md
refactor 17:48:02 748e5ffa
refactor(admin): restructure pool Controls tab + move NAV trend to Overview
13 files · +706 · -587
- Admin
- Route (pool-detail)
- Route (preview-redesign)
- controls-primitives
- delete-pool-section
- governance-history-panel
- index
- nav-change-dialog
- nav-changes-panel
- nav-chart
- overview-tab
- package
- pool-controls
- Other
- pnpm-lock.yaml
fix 17:47:48 08122c44
fix(web): remove stray empty column in portfolio Total row
1 files · -1
- Investor Web
- Widget (PCWidgets)
chore 16:57:14 250110b8
chore(db): sync schema.sql — pool_wallet dropped (0078)
1 files · +2 · -1
- Infra
- DB schema.sql
other 16:52:42 dad21c32
redesign(web): fold Maturity column into the status badge
1 files · +42 · -48
- Investor Web
- Widget (PCWidgets)
fix 16:52:42 359896f3
fix(api): include redemption fields in pools LIST_SELECT
1 files · +5 · -1
- Lambda API
- pools.get.list
other 16:06:27 4626395f
redesign(admin): clean up Controls + Communications tabs
3 files · +38 · -23
- Admin
- Route (preview-redesign)
- pool-controls
- updates-tab
fix 16:06:27 66d3f9e4
fix(web): correct pool/position status display + gate frozen pools
7 files · +72 · -27
- Investor Web
- PoolBrowseCard
- Route (pool.$id)
- Route (portfolio)
- Widget (PCWidgets)
- Widget (position-card)
- redemption-state
- Investor Web UI
- RedeemModal
fix 15:20:58 4112acef
fix(web): show invest risk checklist inside the mobile bottom sheet
3 files · +107 · -53
- Investor Web
- Route (pool.$id)
- Widget (index)
- Widget (invest-confirm-dialog)
other 15:20:58 e6f837cd
redesign(admin): move Description up + add Discard to Edit Pool
2 files · +42 · -8
- Admin
- Route (pool-edit)
- overview-tab
other 15:00:08 42723d2d
redesign(admin): declutter Pool PDP — 4 tabs, neutral palette, flat header
16 files · +585 · -379
- Admin
- Route (pool-detail)
- Route (pools)
- Route (preview-redesign)
- configuration-tab
- delete-pool-section
- deploy-status-banner
- governance-history-panel
- investors-tab
- nav-changes-panel
- overview-tab
- pool-controls
- routes
- transactions-tab
- updates-tab
- yield-settings-tab
- Admin UI
- index
2026-07-21 (Tue)
🟢 ch/product
fix 14:57:28 2369d542
fix(redemption): fund only shortfall, settle FM funding, close lockup gaps
11 files · +425 · -58
- Admin
- use-fund-redemption-flow
- Contract Test
- PlatformPool.t
- Docs
- 11-db-schema.md
- Infra
- approve-redemption.ts
- client.ts
- index.ts
- Lambda API
- redemption-requests.post.fund
- redemption-requests.post.record-funding
- Smart Contract
- PlatformPool
- RedemptionLib
- sepolia.md
fix 14:38:36 d3eb9921
fix(rbac): centralize FM investor-PII policy + surface redemption PII to operators
4 files · +92 · -49
- Infra
- investor-pii.ts
- Lambda API
- deposits.get.list
- portfolio-positions.get.list
- redemption-requests.get.list
fix 14:38:36 1e594a99
fix(audit): resolve actor identity in audit feed list + CSV export
2 files · +45 · -4
- Lambda API
- activity-events.get.export
- activity-events.get.list
feat 14:38:34 65fd6164
feat(create-pool+redemption): implement B-BE handoff (v3-84/85) + soft-pause redemption fix
16 files · +422 · -162
- Admin
- payload
- Admin API
- pools
- Contract Test
- PlatformPool.t
- PlatformPoolFlows.t
- Docs
- 07-redemption.md
- 11-db-schema.md
- Infra
- DB 0078_drop_pool_wallet.sql
- yield-schedule.ts
- Investor Web API
- pools
- Lambda API
- pools.get.list
- pools.patch.update
- pools.post.create
- pools.post.lifecycle
- pools.worker.deploy
- redemption-requests.post.create
- Smart Contract
- RedemptionLib
fix 14:31:57 df4a4198
fix(auth): dedupe sessions via device+IP upsert
4 files · +94 · -18
- Infra
- DB 0079_session_dedupe_unique.sql
- DB schema.sql
- investor-sessions.ts
- sessions.ts
feat 14:31:57 64ff22c4
feat(chain): migrate dev testnet to Base Sepolia + single-chain SBT
9 files · +752 · -297
- Admin
- Route (admin-settings)
- Contract Deploy
- CreatePool.s
- DeployV3Sepolia.s
- Infra
- apply-review.ts
- chain-config.ts
- Lambda API
- auth.post.verify
- kyc.get.status
- Smart Contract
- .env.example
- sepolia.md
🔵 jy/product
refactor 17:32:31 e68e4b7a
refactor(web): flatten Portfolio + Activity summaries (no boxed tiles)
2 files · +13 · -20
- Investor Web
- Route (activity)
- Widget (PortfolioHero)
feat 17:32:19 68518129
feat(audit): show actor name in column, email in detail only (hidden for FM)
3 files · +41 · -25
- Admin
- Route (audit-log)
- Admin API
- dashboard
- Lambda API
- activity-events.get.list
fix 17:29:21 3f3a4399
fix(web): chromeless draft-preview + status-agnostic preview banner
3 files · +15 · -2
- Investor Web
- Route (app-layout)
- Route (pool.$id)
- Investor Web UI
- MobileBottomNav
feat 17:23:15 13a45d53
feat(web): unify /transactions + /portfolio/activity into a single /activity page
7 files · +617 · -892
- Investor Web
- Route (activity)
- Route (dashboard)
- Route (portfolio-activity)
- Route (transactions)
- Widget (PortfolioHero)
- Widget (sidebar)
- routes
feat 17:22:19 a0f96ba1
feat(admin): add working "Preview as investor" to the edit wizard preview card
1 files · +32 · -2
- Admin
- Route (pool-edit)
feat 17:16:45 6a1311e5
feat(admin): collapse edit-mode lock reasons into a hover tooltip
2 files · +20 · -11
- Admin
- field-lock
- step-terms
feat 17:12:28 215127ca
feat(admin): trim long field help into ⓘ tooltips + set VITE_WEB_URL
9 files · +43 · -14
- Admin
- .env
- editorial
- step-compliance
- step-redemption
- step-terms
feat 16:58:40 0f02c67e
feat(admin): wire "Preview as investor" + make section sub-headers visible
8 files · +49 · -20
- Admin
- .env
- Route (pool-create)
- Route (pool-detail)
- env
- step-redemption
- step-terms
feat 16:56:40 37f30e4e
feat(audit): fix audit-log filter styling + enforce reason on high-risk acts (v3-86)
12 files · +223 · -73
- Admin
- Route (admin-settings)
- Route (audit-log)
- pool-controls
- qualification-panel
- Admin API
- admin-users
- pools
- use-admin-users
- Lambda API
- admin-users.patch.permissions
- pools.post.freeze
- pools.post.impairment
- pools.post.wind-down
- users.patch.qualification
style 16:38:20 4d56387a
style(admin): label the first section of create/edit steps 3/5/6
6 files · +6
- Admin
- step-compliance
- step-redemption
- step-terms
feat 16:24:48 406b11d4
feat(audit): expand write coverage, Audit/Activity UI, append-only archive (v3-86 slices 3-5)
28 files · +611 · -29
- Admin
- Route (audit-log)
- Admin API
- dashboard
- use-dashboard
- Docs
- 11-db-schema.md
- 13-operations.md
- Infra
- DB 0082_audit_append_only_archive.sql
- DB schema.sql
- activity.ts
- Lambda API
- activity-events.get.counts
- activity-events.get.list
- activity-events.scheduler.archive
- admin-users.delete
- admin-users.patch.permissions
- admin-users.patch.update
- admin-users.post.create
- admin-users.post.invite
- admin-wallet.post.verify
- fund-members.delete
- fund-members.patch.update
- fund-members.post.create
- funds.delete
- funds.patch.update
- funds.post.create
- pools.delete
- pools.patch.update
- pools.post.create
- pools.worker.deploy
- users.patch.qualification
feat 16:20:28 ed445b7f
feat(web,admin): maturity-model selector, display-only + APY-disclosure fields, PDP tab a11y
18 files · +176 · -36
- Admin
- Route (pool-create)
- Route (pool-edit)
- payload
- permissions
- step-compliance
- step-redemption
- step-terms
- types
- validation
- Admin API
- pools
- Investor Web
- Route (pool.$id)
- Widget (pool-header-card)
- Investor Web API
- pools
feat 16:14:24 88616afd
feat(web): redesign Portfolio (editorial factsheet, brand palette, LP token utility)
4 files · +136 · -191
- Investor Web
- Route (portfolio)
- Widget (PCWidgets)
- add-lp-token-control
- docs
feat 15:57:28 65254462
feat(audit): re-scope audit log — actor resolution + snapshot record fields (v3-86 slices 1-2)
13 files · +456 · -63
- Admin
- Route (audit-log)
- governance-history-panel
- Admin API
- dashboard
- Docs
- 11-db-schema.md
- 13-operations.md
- 14-decisions.md
- 17-changelog.md
- Infra
- DB 0080_audit_feed_actor.sql
- DB 0081_audit_record_fields.sql
- DB schema.sql
- activity.ts
- Lambda API
- activity-events.get.export
- activity-events.get.list
feat 15:48:58 1891e923
feat(web,admin): FE-UI quick wins — CF-3, PDP-7, DC-3, B6 polish
8 files · +113 · -115
- Admin
- payload
- step-terms
- validation
- Investor Web
- Widget (invest-sidebar)
- Widget (overview-tab)
- Investor Web UI
- skeleton
style 15:16:33 61b1b9ad
style(web): portfolio section headings + unverified-claim toast
3 files · +9 · -5
- Investor Web
- Route (portfolio)
- Widget (PCWidgets)
- Widget (PortfolioHero)
chore 15:12:32 72803637
chore(web,admin): drop dead FE pool_wallet field (FA8 FE tail)
3 files · -4
- Admin
- payload
- Admin API
- pools
- Investor Web API
- pools
feat 15:09:40 0c1be452
feat(web): terminal full-redemption lock (FA5) + LP-token add UX (FI1)
8 files · +448 · -178
- Investor Web
- Route (pool.$id)
- Route (portfolio)
- Widget (PCWidgets)
- Widget (PortfolioHero)
- Widget (invest-sidebar)
- add-lp-token-control
- use-add-lp-token
- Investor Web UI
- PoolStatusAlert
fix 14:17:03 74505b90
fix(web): fixed full-height sidebar + risk shown as a factsheet stat row
6 files · +30 · -18
- Investor Web
- PoolBrowseCard
- Route (landing)
- Route (verify-email)
- Widget (app-shell)
- root
- Investor Web UI
- LegalPageLayout
feat 12:45:27 b59e3c33
feat(redemption): YIELD_BASED gating, %-input, publish gate, full-redeem lock
13 files · +277 · -92
- Admin
- Route (pool-create)
- Route (pool-edit)
- editorial
- number-format
- step-redemption
- step-terms
- step-yield-fees
- validation
- Investor Web UI
- RedeemModal
feat 12:29:06 ebce42f6
feat(redemption): FE QA quick wins + Explore PLP polish
14 files · +96 · -35
- Admin
- deploy-status-banner
- step-redemption
- validation
- Docs
- 04-pool-models.md
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 14-decisions.md
- 17-changelog.md
- 23-money-path.md
- Investor Web
- Widget (position-card)
- Other
- CLAUDE.md
feat 12:28:41 37dbd559
feat(web): add risk-tier badges + platform overview stats to Explore PLP
3 files · +49 · -19
- Investor Web
- PoolBrowseCard
- Route (pools)
- Investor Web API
- pools
feat 12:08:45 cce248ef
feat(web): redesign Explore PLP as premium offering cards + app-wide spacing/copy polish
26 files · +359 · -474
- Investor Web
- PoolBrowseCard
- Route ($)
- Route (bridge)
- Route (dashboard)
- Route (disclaimer)
- Route (help)
- Route (kyc)
- Route (landing)
- Route (notifications)
- Route (pool.$id)
- Route (pools)
- Route (portfolio)
- Route (portfolio-activity)
- Route (privacy)
- Route (settings)
- Route (styleguide)
- Route (terms)
- Route (transactions)
- Widget (PCWidgets)
- Widget (invest-sidebar)
- Widget (overview-tab)
- Widget (risk-disclosure)
- Investor Web UI
- KYCModal
- KYCStatusCard
- PoolStatusAlert
- RedeemModal
docs 10:49:34 5e7d81e0
docs(v3-84): reinstate YIELD_BASED penalty (lock-up pools, principal deduction)
6 files · +52 · -8
- Docs
- 07-redemption.md
- 08-smart-contracts.md
- 14-decisions.md
- 17-changelog.md
- 23-money-path.md
- Other
- CLAUDE.md
2026-07-20 (Mon)
🟢 ch/product
feat 14:02:38 734f7d3c
feat(redemption): partner funding auto-settles PENDING_RESERVE + FM in-app funding (v3-82)
12 files · +182 · -146
- Admin
- Route (redemptions)
- Admin API
- redemption-requests
- use-redemption-requests
- Contract Test
- PlatformPool.t
- PlatformPoolFlows.t
- SequenceDiagramVerification.t
- Docs
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
- Lambda API
- redemption-requests.post.approve
- redemption-requests.post.fund
- Smart Contract
- RedemptionLib
feat 14:02:38 dd139ebe
feat(web+admin): auto-logout on session expiry with deferred toast
4 files · +228 · -34
- Admin
- client
- provider
- Investor Web
- client
- provider
fix 14:02:38 404149ad
fix(admin): TOTP for Super Admin only on OAuth login + correct RBAC invite-flow docs
2 files · +12 · -11
- Docs
- 09-rbac.md
- Lambda API
- auth.post.admin-oauth
fix 14:02:38 235d3e62
fix(admin): repair admin-user invite — email validation + result feedback
4 files · +33 · -5
- Admin
- Route (admin-settings)
- Admin API
- admin-users
- Infra
- email.ts
- Lambda API
- admin-users.post.invite
feat 14:02:38 66c66a9c
feat(admin/pool): BE handoff for create/edit (B1–B5)
9 files · +236 · -4
- Docs
- 11-db-schema.md
- 15-api-reference.md
- Infra
- CDK Stack (api-stack)
- DB 0077_pool_equity_buffer_rule.sql
- jwt.ts
- Lambda API
- pools.get.list
- pools.patch.update
- pools.post.create
- pools.post.preview-token
🔵 jy/product
feat 19:16:04 09884fe4
feat(web): Explore Pools editorial pivot + unified label badges
11 files · +561 · -348
- Admin
- Route (pools)
- Investor Web
- PoolBrowseCard
- PoolCard
- PoolRow
- Route (dashboard)
- Route (pools)
- Route (portfolio)
- Route (portfolio-activity)
- TrancheBadge
- index
- Investor Web UI
- status-badge
feat 19:05:10 9252bd65
feat: decouple lock-up from penalty type (v3-83, supersedes v3-66)
26 files · +204 · -229
- Admin
- Route (pool-create)
- step-compliance
- step-redemption
- step-terms
- validation
- Contract Test
- PlatformPool.t
- Docs
- 04-pool-models.md
- 05-investment-lifecycle.md
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
- 24-field-governance.md
- Investor Web
- Widget (PCWidgets)
- Widget (invest-sidebar)
- Widget (risk-disclosure)
- redemption-state
- Lambda API
- pools.patch.update
- pools.post.create
- Other
- CLAUDE.md
- Smart Contract
- GovernanceLib
- PlatformPool
- PlatformPool.abi.json
- PoolConfigLib
- RedemptionLib
feat 15:32:17 448bf072
feat(web/portfolio): show "· awaiting funding" on escrowed LP for PENDING_RESERVE
2 files · +27 · -4
- Investor Web
- Route (portfolio)
- Widget (PCWidgets)
refactor 15:24:24 859615a0
refactor(admin): move FM signing-wallet card from My Settings to Fund detail (FM-only)
2 files · +27 · -22
- Admin
- Route (fund-detail)
- Route (my-settings)
refactor 13:06:46 8ffd730e
refactor(admin/redemptions): remove manual approve (v3-76 auto-flow), keep reject
1 files · +21 · -44
- Admin
- Route (redemptions)
fix 12:44:09 3703d2eb
fix(admin/redemptions): surface on-chain revert reason + stop swallowing approve/reject failures (C4)
2 files · +20 · -5
- Admin
- Route (redemptions)
- client
feat 10:22:46 5c9893dc
feat(status/redemption): wind-down no-freeze + flag auto-clear (BE), per-year APY display, penalty/redemption docs (v3-78~81)
10 files · +251 · -55
- Docs
- 07-redemption.md
- 10-status-machines.md
- 14-decisions.md
- 17-changelog.md
- Investor Web
- Widget (invest-sidebar)
- Lambda API
- pools.post.freeze
- pools.post.impairment
- pools.post.pause
- pools.post.wind-down
- Other
- CLAUDE.md
2026-07-16 (Thu)
🟢 ch/product
docs 15:43:29 882d69a3
docs(contract): record v3-76 Sepolia redeploy addresses
1 files · +43 · -25
- Smart Contract
- sepolia.md
feat 15:43:29 fd6fdbaf
feat(redemption): reserve-gated instant settle + lockup hard-block (v3-76)
20 files · +610 · -202
- Contract Test
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFlows.t
- PlatformPoolNonCustodial.t
- SequenceDiagramVerification.t
- Docs
- 07-redemption.md
- 12-triggers.md
- 14-decisions.md
- 17-changelog.md
- Infra
- client.ts
- describe-on-chain-error.test.ts
- index.ts
- Investor Web
- Route (portfolio)
- Widget (PCWidgets)
- use-redeem-flow
- Investor Web UI
- RedeemModal
- Lambda API
- redemption-requests.post.approve
- redemption-requests.post.create
- Other
- CLAUDE.md
- Smart Contract
- RedemptionLib
feat 15:43:29 11d5d128
feat(dpd-npl): retire live DPD endpoint, expose sector_breakdown, persist risk-ack (S2 B/C/D)
16 files · +218 · -107
- Docs
- 11-db-schema.md
- Infra
- CDK Stack (api-stack)
- DB 0076_deposit_risk_ack.sql
- DB schema.sql
- npl.ts
- Investor Web
- Route (pool.$id)
- Widget (fund-data-tab)
- Widget (invest-confirm-dialog)
- use-invest-flow
- Investor Web API
- deposits
- fund-data
- keys
- pools
- use-fund-data
- Lambda API
- deposits.post.create
- pools.get.fund-data-dpd
feat 15:43:29 135b8fa5
feat(pool): enforce NO_EARLY ⇔ lockup_days=0 on-chain + edit path (v3-66)
9 files · +77 · -8
- Contract Test
- PlatformPool.t
- PlatformPoolFlows.t
- Docs
- 14-decisions.md
- 17-changelog.md
- 24-field-governance.md
- Lambda API
- pools.patch.update
- Smart Contract
- GovernanceLib
- PlatformPool
- PlatformPool.abi.json
refactor 11:04:23 4e4aeffe
refactor(fees): instant treasury_wallet setter + unify yield fee rates to bps
35 files · +384 · -422
- Admin
- Route (pool-create)
- Route (yield)
- payload
- permissions
- step-financial
- types
- validation
- Admin API
- pools
- Contract Test
- PlatformPool.t
- Docs
- 04-pool-models.md
- 05-investment-lifecycle.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- 23-money-path.md
- 24-field-governance.md
- Infra
- DB 0075_yield_fee_config_to_bps.sql
- governance.ts
- index.ts
- run-distribution.ts
- Investor Web
- Widget (overview-tab)
- Investor Web API
- pools
- Lambda API
- pools.patch.update
- pools.post.create
- pools.post.governance
- Other
- CLAUDE.md
- Smart Contract
- GovernanceLib
- PlatformPool
- PlatformPool.abi.json
- PlatformPoolStorage
docs 10:44:54 f5270d9f
docs(field-governance): mark qualified-investor gating as shipped (v3-74)
1 files · +1 · -1
- Docs
- 24-field-governance.md
refactor 10:44:54 c4cb9d64
refactor(infra): migrate CDK to aset account, import CloudFront certs by ARN
12 files · +266 · -64
- Infra
- .env.example
- CDK Stack (admin-web-stack)
- CDK Stack (api-stack)
- CDK Stack (ci-deploy-role-stack)
- CDK Stack (ci-oidc-provider-stack)
- CDK Stack (docs-stack)
- CDK Stack (web-stack)
- app.ts
- cdk.context.json
- ci.ts
- docs.ts
- package.json
🔵 jy/product
docs 18:04:16 c4076bd1
docs(ds): serif font rule now covers page/section titles
2 files · +7 · -6
- Docs
- 25-design-system.md
- Other
- packages/ds-editorial/src/patterns.tsx
feat 18:02:16 00187db1
feat(admin): serif page titles + clearable npl_threshold_days
7 files · +39 · -6
- Admin
- Route (fund-detail)
- Route (pool-detail)
- payload
- Admin API
- pools
- Admin UI
- index
- page-header
- Lambda API
- pools.patch.update
feat 17:42:29 6de84929
feat(ds): living /styleguide from shared package + design-system docs
10 files · +522 · -1
- Admin
- Route (styleguide)
- routes
- Docs
- 14-decisions.md
- 17-changelog.md
- 25-design-system.md
- config.ts
- Investor Web
- Route (styleguide)
- routes
- Other
- packages/ds-editorial/package.json
- packages/ds-editorial/src/showcase.tsx
fix 17:18:06 fe5d4f11
fix(web): keep write_off_policy admin-only, off the investor PDP (DPD/NPL S2)
1 files · +3 · -4
- Investor Web
- Widget (risk-disclosure)
refactor 17:18:06 931b12bd
refactor(ds): @aset/ds-editorial owns full palette + fonts (web+admin SoT)
5 files · +149 · -154
- Admin
- global
- Investor Web
- global
- Other
- packages/ds-editorial/package.json
- packages/ds-editorial/src/fonts.css
- packages/ds-editorial/src/tokens.css
feat 16:48:31 0decca5c
feat(admin): rebuild pool create/edit as editorial 6-step wizard
32 files · +2261 · -2395
- Admin
- Route (pool-create)
- Route (pool-edit)
- disabled-tooltip
- editorial
- field-lock
- index
- info-callout
- permissions
- step-basic-info
- step-basics
- step-compliance
- step-financial
- step-models
- step-redemption
- step-risk-penalty
- step-save
- step-save-publish
- step-structure
- step-terms
- step-yield-fees
- validation
feat 13:23:07 edec069d
feat(ds): extract editorial patterns into @aset/ds-editorial workspace package
12 files · +374 · -250
- Admin
- global
- package
- Investor Web
- global
- package
- Investor Web UI
- index
- patterns
- Other
- packages/ds-editorial/package.json
- packages/ds-editorial/src/cn.ts
- packages/ds-editorial/src/index.ts
- packages/ds-editorial/src/patterns.tsx
- packages/ds-editorial/src/tokens.css
- pnpm-lock.yaml
2026-07-15 (Wed)
🟢 ch/product
No activity
🔵 jy/product
docs 19:06:59 15181ee3
docs(admin/pool-form): clarify Max Target Size / Max Investment hints
2 files · +4 · -4
- Admin
- step-financial
feat 19:00:02 5ecce957
feat(pool-preview): draft PDP preview mode (web) + disabled admin trigger (BE token pending)
4 files · +72 · -29
- Admin
- Route (pool-detail)
- Investor Web
- Route (pool.$id)
- Investor Web API
- pools
- use-pools
feat 18:28:10 67df84c7
feat(admin/pool-edit): port editable content fields (tagline, default reporting, disclosures)
6 files · +99 · -1
- Admin
- payload
- permissions
- step-basic-info
- step-risk-penalty
- types
- Admin API
- pools
feat 18:19:16 301f042f
feat(admin/pool-create): port BE-ready fields (tagline, asset stats, default reporting, fee cadence, disclosures)
8 files · +164 · -4
- Admin
- Route (pool-create)
- payload
- step-basic-info
- step-financial
- step-risk-penalty
- types
- validation
- Admin API
- pools
feat 13:32:50 156f0c07
feat(admin/pool-create): reuse-a-fund-wallet picker on Basic Info
2 files · +60
- Admin
- Route (pool-create)
- step-basic-info
feat 13:15:08 49342cf4
feat(admin/pool-create): surface lockup↔penalty conflict + irreversibility summary
2 files · +16
- Admin
- step-financial
- step-save-publish
2026-07-14 (Tue)
🟢 ch/product
feat 13:21:21 7e8e627f
feat(fund): qualified-investor gating (v3-74) + DPD/NPL fund-data (v3-72)
38 files · +880 · -158
- Admin API
- pools
- Docs
- 03-kyc-identity.md
- 04-pool-models.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- Infra
- CDK Stack (api-stack)
- DB 0072_investor_status_qualification.sql
- DB 0073_dpd_npl_additive.sql
- DB 0074_rename_cumulative_impairment_to_loss.sql
- DB schema.sql
- DB seed.sql
- country-eligibility-policy.ts
- deposit-eligibility.test.ts
- deposit-eligibility.ts
- kyc-gating.test.ts
- kyc-gating.ts
- mapper.ts
- npl.ts
- sync.ts
- types.ts
- Investor Web
- Route (pools)
- Route (settings)
- Widget (fund-data-tab)
- Widget (invest-sidebar)
- Investor Web API
- fund-data
- pools
- user-settings
- Lambda API
- deposits.post.create
- fund-data.scheduler.sync
- pools.get.eligibility
- pools.get.fund-data-history
- pools.get.list
- pools.patch.update
- pools.post.create
- users.get.list
- users.get.me
- users.patch.qualification
🔵 jy/product
style 18:05:50 09cdf6ec
style(admin): serif display numbers + raise Quicksand baseline to 500
5 files · +26 · -25
- Admin
- Route (dashboard)
- Route (fund-detail)
- Route (redemptions)
- global
- overview-tab
style 17:56:15 898e5749
style(web,admin): raise Quicksand baseline weight; enable serif in admin
3 files · +8 · -4
- Admin
- global
- Investor Web
- Widget (invest-sidebar)
- global
style 17:34:01 f3eb8f51
style(web,admin): switch fonts to Quicksand + DM Serif Display
4 files · +11 · -11
- Admin
- global
- root
- Investor Web
- global
- Investor Web UI
- patterns
feat 16:37:41 7633bfde
feat(pdp): pre-wire spec fields for graceful-hide (accrued income, equity buffer, DPD aggregates)
4 files · +64
- Investor Web
- Widget (fund-data-tab)
- Widget (overview-tab)
- Investor Web API
- fund-data
- pools
feat 16:34:13 760bdfda
feat(admin,web): investor qualification (Status Gate) UI + pool eligibility_mode (v3-74)
13 files · +294 · -6
- Admin
- Route (kyc)
- Route (pool-create)
- payload
- permissions
- qualification-panel
- step-risk-penalty
- types
- Admin API
- kyc
- use-kyc
- Investor Web UI
- KYCStatusCard
docs 16:27:32 d5850070
docs: add v3-75 KYB institution onboarding policy
3 files · +52
- Docs
- 03-kyc-identity.md
- 14-decisions.md
- 17-changelog.md
fix 16:23:31 84d4c435
fix(pdp): align pool detail fields with fixed data-field spec
5 files · +13 · -10
- Investor Web
- Widget (epoch-countdown)
- Widget (invest-sidebar)
- Widget (overview-tab)
- Widget (risk-disclosure)
- Investor Web API
- pools
feat 15:58:47 046c7d65
feat(web): PDP DPD/NPL S2 + KYC eligibility gating (v3-72, v3-74)
7 files · +264 · -66
- Investor Web
- Route (pool.$id)
- Widget (fund-data-tab)
- Widget (index)
- Widget (invest-confirm-dialog)
- Widget (invest-sidebar)
- Widget (overview-tab)
- Investor Web API
- pools
2026-07-13 (Mon)
🟢 ch/product
refactor 17:45:51 7de46eea
refactor(pools): unify ratio fields to bps and align DB↔contract names
100 files · +1017 · -890
- Admin
- Route (pool-create)
- Route (redemptions)
- configuration-tab
- overview-tab
- payload
- permissions
- pool-controls
- step-models
- step-risk-penalty
- step-save-publish
- types
- validation
- yield-settings-tab
- Admin API
- pools
- Contract Deploy
- CreatePool.s
- DeployV3Sepolia.s
- Contract Test
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFactory.t
- PlatformPoolFlows.t
- PlatformPoolNonCustodial.t
- SequenceDiagramVerification.t
- Docs
- 01-overview.md
- 02-core-concepts.md
- 03-kyc-identity.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 10-status-machines.md
- 11-db-schema.md
- 12-triggers.md
- 14-decisions.md
- 17-changelog.md
- 20-joob-pool-config.md
- 23-money-path.md
- 24-field-governance.md
- Infra
- DB 0068_unify_ratio_fields_to_bps.sql
- DB 0069_consolidate_penalty_bps.sql
- DB 0070_align_pool_field_names.sql
- DB schema.sql
- DB seed.sql
- create-pool.ts
- deploy-payload.ts
- governance.ts
- index.ts
- kyc-gating.test.ts
- kyc-gating.ts
- pool-field-validation.ts
- Investor Web
- Route (portfolio)
- Route (portfolio-activity)
- Widget (PCWidgets)
- Widget (epoch-countdown)
- Widget (invest-sidebar)
- Widget (overview-tab)
- Widget (risk-disclosure)
- redemption-state
- Investor Web API
- pools
- redemption-requests
- Investor Web UI
- RedeemModal
- Lambda API
- deposits.post.create
- nav-changes.post.propose
- pools.get.eligibility
- pools.get.list
- pools.patch.update
- pools.post.create
- pools.post.governance
- pools.post.lifecycle
- pools.worker.deploy
- redemption-requests.post.approve
- redemption-requests.post.claim
- redemption-requests.post.claim-fallback
- redemption-requests.post.create
- redemption-requests.post.fund
- redemption-requests.post.record-funding
- redemption-requests.scheduler.epoch-execute
- redemption-requests.scheduler.partner-funding
- yield.post.reinvest
- Other
- CLAUDE.md
- Smart Contract
- GovernanceLib
- PlatformPool
- PlatformPool.abi.json
- PlatformPool.bytecode.js
- PlatformPoolFactory.abi.json
- PlatformPoolStorage
- PoolConfigLib
- RedemptionLib
- YieldLib
- sepolia.md
🔵 jy/product
feat 23:02:26 de140a4e
feat(fe): display bps ratio config as percent (v3-73)
12 files · +76 · -21
- Admin
- bps
- index
- step-save-publish
- Docs
- 14-decisions.md
- 17-changelog.md
- Investor Web
- Widget (PCWidgets)
- Widget (invest-sidebar)
- Widget (overview-tab)
- Widget (risk-disclosure)
- formatters
- Investor Web API
- pools
- Other
- CLAUDE.md
feat 22:38:37 abceb674
feat(pool): wire tagline, disclosures, write-off & NPL fields end-to-end
8 files · +88 · -4
- Docs
- 11-db-schema.md
- Infra
- DB 0071_pool_tagline_and_disclosures.sql
- Investor Web
- Widget (pool-header-card)
- Widget (risk-disclosure)
- Investor Web API
- pools
- Lambda API
- pools.get.list
- pools.patch.update
- pools.post.create
docs 22:27:02 6fdda954
docs: v3-72 DPD/NPL data model + risk-badge NPL signal + loan-lifecycle section
3 files · +63
- Docs
- 06-writedown-nav.md
- 14-decisions.md
- 17-changelog.md
docs 22:22:01 2eecdc54
docs(04-pool-models): NPL is a leading signal, separate from NAV — wire npl_ratio into the risk badge (S2)
1 files · +6 · -3
- Docs
- 04-pool-models.md
docs 14:24:30 334d6bc1
docs: correct field-governance matrix + sync KYC/KYB docs to code (v3-71)
7 files · +109 · -77
- Docs
- 03-kyc-identity.md
- 04-pool-models.md
- 14-decisions.md
- 17-changelog.md
- 24-field-governance.md
- Other
- CLAUDE.md
2026-07-10 (Fri)
🟢 ch/product
feat 13:44:11 3cdba357
feat(fee): split pool mgmt fee to fund_fee_wallet (v3-69)
41 files · +763 · -159
- Admin
- Route (pool-create)
- Route (yield)
- payload
- permissions
- step-basic-info
- step-financial
- step-save-publish
- types
- validation
- Admin API
- pools
- Contract Test
- PlatformPool.t
- PlatformPoolNonCustodial.t
- SequenceDiagramVerification.t
- Docs
- 11-db-schema.md
- Infra
- DB 0067_pool_mgmt_fee_split.sql
- DB schema.sql
- create-pool.ts
- deploy-payload.ts
- governance.ts
- index.ts
- run-distribution.ts
- yield-distribution.ts
- yield-schedule.ts
- Investor Web
- Widget (overview-tab)
- Investor Web API
- pools
- Lambda API
- pools.get.list
- pools.patch.update
- pools.post.create
- pools.post.lifecycle
- pools.worker.deploy
- yield-distributions.post.create
- yield-distributions.post.distribute
- Smart Contract
- GovernanceLib
- PlatformPool
- PlatformPool.abi.json
- PlatformPoolStorage
- YieldLib
- sepolia.md
style 13:28:26 8ed21d78
style(web): strengthen read-only portfolio card contrast
1 files · +2 · -2
- Investor Web
- Route (portfolio)
fix 13:28:26 176b647b
fix(infra): stop SBT (re)mint from getting stuck in MINTING
3 files · +100 · -56
- Infra
- CDK Stack (api-stack)
- apply-review.ts
- mint-queue.ts
🔵 jy/product
fix 17:46:40 5f628acf
fix(web): show derived lockup label when DB value is empty
1 files · +4 · -1
- Investor Web API
- pools
feat 17:46:40 10bd7e1a
feat(web): rework app shell + PDP frame to fix rushed look
8 files · +224 · -137
- Investor Web
- Route (pool.$id)
- Widget (app-shell)
- Widget (invest-sidebar)
- Widget (pool-header-card)
- Widget (position-card)
- Widget (sidebar)
- Widget (topbar)
- auth-button
docs 16:33:19 4346d0ce
docs(money-path): wrap redemption OTC node label to stop right-edge clipping
2 files · +2 · -2
- Docs
- 23-money-path.md
docs 16:29:01 447bfc84
docs(money-path): render boundary as mermaid, simplify redemption diagram
2 files · +44 · -26
- Docs
- 23-money-path.md
docs 16:21:40 a20ecb64
docs(governance): add 24-field-governance matrix (v3-70)
5 files · +167 · -2
- Docs
- 14-decisions.md
- 17-changelog.md
- 24-field-governance.md
- config.ts
docs 16:09:18 d19ffc55
docs(money-path): unify wallet/fee naming + add 23-money-path (v3-70)
7 files · +382 · -1
- Docs
- 04-pool-models.md
- 09a-custody.md
- 14-decisions.md
- 17-changelog.md
- 23-money-path.md
- config.ts
docs 11:41:38 6cc58fdc
docs(fee): add treasury + fund_fee_wallet to Editability-after-ACTIVE (instant, no timelock)
2 files · +5 · -1
- Docs
- 04-pool-models.md
- 09-rbac.md
docs 11:34:52 e008d155
docs(fee): v3-69 — fee-side changes are not timelocked (auto-distribution has no hold)
3 files · +5 · -3
- Docs
- 04-pool-models.md
- 14-decisions.md
- 17-changelog.md
docs 11:22:33 47001e51
docs(fee): v3-69 — fee calc stays off-chain; only on-chain change is a 2nd withdrawFees destination
3 files · +5 · -5
- Docs
- 04-pool-models.md
- 14-decisions.md
- 17-changelog.md
2026-07-09 (Thu)
🟢 ch/product
feat 15:35:02 406fef80
feat(admin-web): show loading state for lazily-fetched expand/drawer lists
2 files · +64 · -26
- Admin
- Route (dashboard)
- Route (kyc)
docs 15:10:43 c0142398
docs(contract): record 2026-07-09 guard-hardening Sepolia redeploy
1 files · +53 · -36
- Smart Contract
- sepolia.md
feat 15:05:37 46932097
feat(infra): pre-check NAV proposal against on-chain guards before writing
3 files · +101 · -3
- Infra
- index.ts
- nav.ts
- Lambda API
- nav-changes.post.propose
perf 15:05:37 7fb11072
perf(infra): cap and speed up on-chain receipt waits
2 files · +49 · -27
- Admin
- Route (kyc)
- Infra
- client.ts
feat 14:36:57 fee3f71f
feat(infra): precisely attribute gating-capped epoch fills (mirror on-chain min)
3 files · +58 · -7
- Infra
- epoch-redemption.ts
- index.ts
- Lambda API
- redemption-requests.scheduler.epoch-execute
feat 14:29:56 d8608be9
feat(infra): distinguish gating-capped partial fills in epoch settlement alerts
1 files · +16 · -4
- Lambda API
- redemption-requests.scheduler.epoch-execute
feat 14:17:50 151cd69d
feat: enforce lifecycle transition DAG on-chain and fix IMPAIRED recovery
4 files · +106 · -22
- Contract Test
- PlatformPool.t
- PlatformPoolFlows.t
- Lambda API
- pools.post.impairment
- Smart Contract
- PlatformPool
feat 13:52:08 b1105748
feat(infra): pre-check epoch settlement before triggering a redemption claim
1 files · +35 · -1
- Lambda API
- redemption-requests.post.claim
feat 13:52:08 ff9dc7ff
feat(infra): expose TREASURY & ENFORCE_JURISDICTION governance change types
6 files · +183 · -5
- Docs
- 11-db-schema.md
- Infra
- DB 0065_governance_treasury_enforce_jurisdiction.sql
- DB schema.sql
- governance.ts
- index.ts
- Lambda API
- pools.post.governance
feat 13:52:08 fbbf6bc5
feat: enforce jurisdiction whitelist on-chain via explicit flag (v3-60 / Option 1)
18 files · +138 · -46
- Admin
- step-risk-penalty
- Admin API
- pools
- Docs
- 11-db-schema.md
- Infra
- DB 0064_pool_enforce_jurisdiction.sql
- DB schema.sql
- create-pool.ts
- deploy-payload.ts
- kyc-gating.test.ts
- kyc-gating.ts
- Lambda API
- deposits.post.create
- pools.get.eligibility
- pools.patch.update
- pools.post.create
- pools.post.governance
- pools.post.lifecycle
- pools.worker.deploy
- Smart Contract
- PlatformPool
fix 13:52:08 edc91793
fix(infra): only block redemption during the 72h freeze exit window
2 files · +37 · -7
- Lambda API
- redemption-requests.post.create
- redemption-requests.scheduler.epoch-execute
feat 13:52:08 317de7a7
feat(infra): reject min_investment above max_investment or capacity at creation
1 files · +19
- Lambda API
- pools.post.create
refactor 13:52:08 6eb40771
refactor: gate the subscription period on lifecycle ACTIVE, drop fixed window
14 files · +5 · -124
- Contract Deploy
- CreatePool.s
- DeployV3Sepolia.s
- Contract Test
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFlows.t
- PlatformPoolNonCustodial.t
- SequenceDiagramVerification.t
- Infra
- create-pool.ts
- deposit-eligibility.ts
- Lambda API
- pools.worker.deploy
- Smart Contract
- GovernanceLib
- PlatformPool
- PlatformPool.abi.json
- PlatformPoolStorage
🔵 jy/product
feat 19:37:55 5066e3ba
feat(web): global app shell (sidebar+topbar) + mobile Invest bottom sheet
20 files · +318 · -63
- Investor Web
- Route (app-layout)
- Route (bridge)
- Route (dashboard)
- Route (kyc)
- Route (notifications)
- Route (pool.$id)
- Route (pools)
- Route (portfolio)
- Route (portfolio-activity)
- Route (settings)
- Route (transactions)
- Widget (app-shell)
- Widget (index)
- Widget (invest-sidebar)
- Widget (sidebar)
- Widget (topbar)
- routes
- Investor Web UI
- index
- sheet
docs 19:16:53 942d5e15
docs(fee): v3-69 — Pool mgmt fee wallet is separate from deposit fund_wallet
3 files · +6 · -6
- Docs
- 04-pool-models.md
- 14-decisions.md
- 17-changelog.md
docs 19:08:52 c02e4e61
docs(fee): v3-69 — fee split by recipient (Aset/Fund/operation), Pool mgmt → fund_wallet
3 files · +42 · -1
- Docs
- 04-pool-models.md
- 14-decisions.md
- 17-changelog.md
feat 17:28:50 d5a2ea82
feat: pre-gate epoch Claim on settled fill amount (#16 complete)
4 files · +145 · -8
- Docs
- 11-db-schema.md
- Infra
- DB 0066_investor_activity_lp_filled.sql
- Investor Web
- Route (portfolio-activity)
- Investor Web API
- investor-activity
docs 17:21:18 d19579d1
docs: NAV guard rails are operational, no investor UI (v3-68, guard #12)
3 files · +35 · -1
- Docs
- 06-writedown-nav.md
- 14-decisions.md
- 17-changelog.md
fix 17:12:02 73c7e68d
fix(web): surface epoch-claim pre-check result to the investor (#16)
1 files · +17 · -4
- Investor Web
- Route (portfolio-activity)
feat 17:05:50 43ae11b4
feat(web): surface per-epoch redemption fill cap to investors (#14)
4 files · +31 · -2
- Investor Web
- Route (portfolio)
- Widget (epoch-countdown)
- Investor Web API
- pools
- Investor Web UI
- RedeemModal
feat 17:03:25 66e0f7cd
feat(infra): fold 72h freeze exit-window into redemption eligibility (#10)
1 files · +30 · -4
- Lambda API
- pools.get.eligibility
feat 16:59:34 d28c4a51
feat(web): gate Redeem before signing on the on-chain redemption window (#1)
5 files · +76 · -6
- Investor Web
- Route (pool.$id)
- Route (portfolio)
- Widget (position-card)
- Investor Web API
- pools
- Investor Web UI
- RedeemModal
feat 16:48:02 5258c21d
feat: Overview risk facts — Loss history + Overdue-loans summary + guarded Total assets
8 files · +168 · -1
- Infra
- CDK Stack (api-stack)
- Investor Web
- Widget (overview-tab)
- Investor Web API
- index
- keys
- loss-history
- use-loss-history
- Lambda API
- pools.get.loss-history
fix 16:47:49 c57f18e9
fix(web): number font consistency — serif for display tiers only (>=20px)
4 files · +13 · -8
- Investor Web
- Widget (activity-tab)
- Widget (fund-data-tab)
- Widget (invest-sidebar)
- Investor Web UI
- patterns
fix 12:48:57 8d93a1c2
fix: enforce NO_EARLY = no lockup (v3-66) across FE + create validation
6 files · +41 · -9
- Admin
- validation
- Investor Web
- Widget (invest-sidebar)
- Widget (overview-tab)
- Widget (risk-disclosure)
- redemption-state
- Lambda API
- pools.post.create
other 12:11:09 585aac54
polish(web): PDP invest panel + risk disclosures + issuer to mockup
5 files · +181 · -215
- Investor Web
- Route (pool.$id)
- Widget (invest-sidebar)
- Widget (overview-tab)
- Widget (position-card)
- Widget (risk-disclosure)
2026-07-08 (Wed)
🟢 ch/product
feat 18:24:22 c08f1b2a
feat(contract): bound early-redemption penalty to 100% on-chain
2 files · +28
- Contract Test
- PlatformPool.t
- Smart Contract
- PoolConfigLib
refactor 18:18:48 f4ac1abd
refactor: move US-person enforcement off-chain to the API layer
20 files · +131 · -172
- Contract Deploy
- CreatePool.s
- DeployV3Sepolia.s
- Contract Test
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFactory.t
- PlatformPoolFlows.t
- PlatformPoolNonCustodial.t
- SequenceDiagramVerification.t
- Infra
- create-pool.ts
- deploy-payload.ts
- kyc-gating.test.ts
- kyc-gating.ts
- Lambda API
- deposits.post.create
- pools.get.eligibility
- pools.post.create
- pools.post.lifecycle
- pools.worker.deploy
- Smart Contract
- PlatformPool
- PlatformPool.abi.json
- PlatformPoolFactory.abi.json
feat 17:58:15 8b94eb2d
feat(infra): reject maturity_days < lockup_days at pool creation
1 files · +13
- Lambda API
- pools.post.create
feat 17:38:22 79b3e07a
feat(infra): add redemption eligibility pre-check to pool eligibility API
3 files · +179 · -1
- Infra
- redemption-eligibility.test.ts
- redemption-eligibility.ts
- Lambda API
- pools.get.eligibility
refactor 17:38:22 7879bfa5
refactor: remove pool-level KYC/KYB required-level restriction
40 files · +107 · -349
- Admin
- Route (pool-create)
- payload
- permissions
- pool-controls
- step-risk-penalty
- types
- Admin API
- pools
- Contract Deploy
- CreatePool.s
- DeployV3Sepolia.s
- Contract Test
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFactory.t
- PlatformPoolFlows.t
- PlatformPoolNonCustodial.t
- SequenceDiagramVerification.t
- Docs
- 11-db-schema.md
- Infra
- DB 0063_remove_pool_kyc_level.sql
- DB schema.sql
- create-pool.ts
- deploy-payload.ts
- governance.ts
- index.ts
- kyc-gating.ts
- Investor Web
- Route (pool.$id)
- Widget (invest-sidebar)
- Investor Web API
- pools
- Lambda API
- deposits.post.create
- pools.get.eligibility
- pools.get.list
- pools.patch.update
- pools.post.create
- pools.post.governance
- pools.post.lifecycle
- pools.worker.deploy
- Smart Contract
- GovernanceLib
- PlatformPool
- PlatformPoolStorage
feat 17:29:37 a1d6c40d
feat: guard NO_EARLY pools to ON_DEMAND redemption across layers
6 files · +95 · -3
- Admin
- Route (pool-create)
- step-risk-penalty
- validation
- Contract Test
- PlatformPool.t
- Lambda API
- pools.post.create
- Smart Contract
- PoolConfigLib
fix 13:55:24 99fd0dd7
fix(admin-web): bump finance-dashboard-kit to 0.2.1 for tooltip z-index fix
2 files · +41 · -882
- Admin
- package
- Other
- pnpm-lock.yaml
fix 11:28:32 a392fea7
fix(infra): clear stale SBT failure on mint re-queue
1 files · +11 · -1
- Infra
- mint-queue.ts
🔵 jy/product
wip 16:36:59 8835a02d
wip(web): PDP design-system refactor — hero/overview/sidebar to 5 patterns
21 files · +1116 · -835
- Investor Web
- Route (pool.$id)
- Widget (activity-tab)
- Widget (epoch-countdown)
- Widget (fund-data-tab)
- Widget (invest-sidebar)
- Widget (overview-tab)
- Widget (performance-tab)
- Widget (pool-header-card)
- Widget (position-card)
- Widget (reinvest-confirm-dialog)
- Widget (risk-disclosure)
- Widget (timelock-countdown)
- Widget (updates-tab)
- formatters
- global
- utils
- Investor Web API
- pools
- Investor Web UI
- PoolStatusAlert
- index
- patterns
- Lambda API
- pools.get.list
docs 15:50:03 be5e6c02
docs+contract: v3-67 — redemption gating cap base is totalDeposited, not TVL
8 files · +34 · -8
- Contract Test
- PlatformPoolEpoch.t
- Docs
- 04-pool-models.md
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
- Smart Contract
- PlatformPool
- PlatformPoolStorage
- RedemptionLib
docs 14:51:25 7ce89ed8
docs: v3-66 — NO_EARLY means no lockup (lockup_days=0)
6 files · +43 · -16
- Docs
- 04-pool-models.md
- 05-investment-lifecycle.md
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
- Other
- CLAUDE.md
docs 14:43:49 3c257a19
docs: v3-60 — country code canonical = ISO alpha-3 (reverse alpha-2 decision)
6 files · +15 · -15
- Docs
- 03-kyc-identity.md
- 04-pool-models.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 14-decisions.md
- 17-changelog.md
2026-07-07 (Tue)
🟢 ch/product
refactor 18:58:48 aa920567
refactor(contract+infra): remove KYC dead code, simplify SBT attributes
23 files · +245 · -573
- Contract Deploy
- DeployV3Sepolia.s
- MintKYC.s
- Contract Test
- PlatformKYCSoulbound.t
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFlows.t
- PlatformPoolNonCustodial.t
- SequenceDiagramVerification.t
- Infra
- apply-review.ts
- client.ts
- country.ts
- kyc-sbt.ts
- Other
- CLAUDE.md
- Smart Contract
- GovernanceLib
- Makefile
- NavLib
- PlatformKYCSoulbound
- PlatformKYCSoulbound.abi.json
- PlatformLPToken.abi.json
- PlatformPool
- RedemptionLib
- YieldLib
- sepolia.md
fix 18:58:48 d21d7dc1
fix(infra+admin-web): medium-severity security hardening S-9~S-27
43 files · +903 · -196
- Admin
- Route (admin-settings)
- types
- Docs
- 11-db-schema.md
- 12-triggers.md
- Infra
- CDK Stack (api-stack)
- CDK Stack (route-group-stack)
- DB 0057_notification_logs_claimed_at.sql
- DB 0058_redemption_requests_onchain_unique.sql
- DB 0059_fund_amount_checks.sql
- DB 0060_investor_sessions.sql
- DB 0061_admin_login_lockout.sql
- DB schema.sql
- DB seed.sql
- environment.ts
- investor-sessions.ts
- middleware.ts
- pool-read-access.ts
- Lambda API
- activity-events.get.list
- activity-events.post.create
- admin-users.patch.permissions
- auth.post.admin-login
- auth.post.admin-oauth
- auth.post.logout
- auth.post.refresh
- auth.post.verify
- deposits.post.create
- fund-members.get.list
- funds.get.list
- notification-logs.get.list
- notification-logs.scheduler.send
- pool-documents.get.list
- pool-tvl-history.get.list
- pools.delete
- pools.get.fund-data-dpd
- pools.get.fund-data-history
- pools.get.fund-data-summary
- pools.get.nav-history
- pools.post.impairment
- pools.scheduler.lifecycle
- redemption-requests.post.create
- underlying-assets.get.list
- yield-claims.post.create
- yield.post.reinvest
fix 18:55:25 965d4b02
fix(infra): low-severity security hardening S-28~S-46 + carry S-5/S-13/S-17 guards
27 files · +574 · -93
- Docs
- 11-db-schema.md
- Infra
- CDK Stack (admin-web-stack)
- CDK Stack (docs-stack)
- CDK Stack (web-stack)
- DB 0054_enable_rls_admin_user_wallets.sql
- DB 0054_total_subscribed_and_fund_service_providers.sql
- DB 0056_admin_sessions_expires_at.sql
- DB 0062_total_subscribed_and_fund_service_providers.sql
- DB schema.sql
- sessions.ts
- Lambda API
- activity-events.get.export
- admin-notification-preferences.put.update
- admin-users.patch.update
- admin-users.post.invite
- auth.post.verify-email
- config.get.stablecoins
- nav-changes.get.list
- notification-preferences.put.update
- platform-settings.put.update
- pool-updates.post.create
- pools.get.list
- pools.patch.update
- pools.post.freeze
- pools.worker.deploy
- redemption-requests.post.record-funding
- users.post.email
- Other
- refactor-review-infra.md
chore 18:40:52 5bf16371
chore: sync lockfile to finance-dashboard-kit 0.2.0
1 files · +11 · -10
- Other
- pnpm-lock.yaml
feat 18:40:52 eb7ef1c0
feat(web+admin-web+infra): server-side pagination (P-5)
46 files · +2529 · -544
- Admin
- Route (audit-log)
- Route (deposits)
- Route (kyc)
- Route (notifications)
- Route (redemptions)
- Route (yield)
- methods
- package
- Admin API
- dashboard
- deposits
- keys
- kyc
- notification-center
- redemption-requests
- use-dashboard
- use-deposits
- use-kyc
- use-notification-center
- use-redemption-requests
- use-yield-distributions
- yield-distributions
- Infra
- CDK Stack (api-stack)
- DB 0055_investor_activity_view.sql
- list-controls.ts
- supabase.ts
- Investor Web
- Route (portfolio-activity)
- Route (transactions)
- Widget (activity-tab)
- methods
- transaction-entries
- Investor Web API
- investor-activity
- keys
- use-investor-activity
- Lambda API
- activity-events.get.counts
- activity-events.get.list
- admin-notifications.get.list
- deposits.get.counts
- deposits.get.list
- investor-activity.get.list
- notification-logs.get.list
- redemption-requests.get.counts
- redemption-requests.get.list
- users.get.counts
- users.get.list
- yield-distributions.get.counts
- yield-distributions.get.list
🔵 jy/product
docs 13:43:11 5d446779
docs: v3-65 — Fund Data grounding (total_subscribed, service providers, NPL write-offs)
2 files · +34 · -1
- Docs
- 14-decisions.md
- 17-changelog.md
feat 13:41:20 67d47e10
feat(web): Fund Data tab — written-off loans (NPL) + service providers
6 files · +104 · -2
- Investor Web
- Widget (fund-data-tab)
- Investor Web API
- fund-data
- keys
- pools
- use-fund-data
- Lambda API
- pools.get.list
feat 13:37:26 f37ef7c2
feat(admin): fund service providers editor + tranche-create UX (Option 1)
5 files · +155 · -7
- Admin
- Route (fund-detail)
- Route (funds)
- service-providers-editor
- step-models
- Admin API
- funds
feat 13:32:27 574e6520
feat(be): total_subscribed ingest, fund service providers CRUD, NPL writeoffs API
10 files · +188 · -18
- Infra
- CDK Stack (api-stack)
- service-providers.ts
- sync.ts
- types.ts
- Lambda API
- fund-data.scheduler.sync
- funds.get.list
- funds.patch.update
- funds.post.create
- pools.get.fund-data-history
- pools.get.fund-data-writeoffs
feat 13:28:31 370d14ca
feat(db): total_subscribed snapshot col + fund_service_providers table (0054)
3 files · +58 · -2
- Docs
- 11-db-schema.md
- Infra
- DB 0054_total_subscribed_and_fund_service_providers.sql
- DB schema.sql
chore 13:23:10 af1159d1
chore(design-sync): add DS sync scaffolding, dts configs, and build ignores
175 files · +5795
- Admin
- tsconfig.dts
- Docs
- pnpm-lock.yaml
- Investor Web
- tsconfig.dts
- Other
- .design-sync/NOTES.md
- .design-sync/admin-pkg/entry.tsx
- .design-sync/admin-pkg/groups/ActivityFeedSkeleton.md
- .design-sync/admin-pkg/groups/AdminTableSkeleton.md
- .design-sync/admin-pkg/groups/AlertCard.md
- .design-sync/admin-pkg/groups/AllClearCard.md
- .design-sync/admin-pkg/groups/AutoExpandTextarea.md
- .design-sync/admin-pkg/groups/Badge.md
- .design-sync/admin-pkg/groups/Button.md
- .design-sync/admin-pkg/groups/CancellationTimer.md
- .design-sync/admin-pkg/groups/Card.md
- .design-sync/admin-pkg/groups/ConfirmDialog.md
- .design-sync/admin-pkg/groups/CountBadge.md
- .design-sync/admin-pkg/groups/DataTable.md
- .design-sync/admin-pkg/groups/DetailDrawer.md
- .design-sync/admin-pkg/groups/Dialog.md
- .design-sync/admin-pkg/groups/DropdownMenu.md
- .design-sync/admin-pkg/groups/EmptyState.md
- .design-sync/admin-pkg/groups/ExplorerLink.md
- .design-sync/admin-pkg/groups/FundingBadge.md
- .design-sync/admin-pkg/groups/Input.md
- .design-sync/admin-pkg/groups/Label.md
- .design-sync/admin-pkg/groups/LastUpdatedFooter.md
- .design-sync/admin-pkg/groups/Logo.md
- .design-sync/admin-pkg/groups/LogoMark.md
- .design-sync/admin-pkg/groups/MetricCard.md
- .design-sync/admin-pkg/groups/NotificationLog.md
- .design-sync/admin-pkg/groups/PageHeader.md
- .design-sync/admin-pkg/groups/RadioCard.md
- .design-sync/admin-pkg/groups/RefreshButton.md
- .design-sync/admin-pkg/groups/RefreshIndicator.md
- .design-sync/admin-pkg/groups/Select.md
- .design-sync/admin-pkg/groups/Separator.md
- .design-sync/admin-pkg/groups/Skeleton.md
- .design-sync/admin-pkg/groups/StatCard.md
- .design-sync/admin-pkg/groups/StatCardSkeleton.md
- .design-sync/admin-pkg/groups/StatusBadge.md
- .design-sync/admin-pkg/groups/SubStatusIndicator.md
- .design-sync/admin-pkg/groups/Switch.md
- .design-sync/admin-pkg/groups/Table.md
- .design-sync/admin-pkg/groups/TableSkeleton.md
- .design-sync/admin-pkg/groups/Tabs.md
- .design-sync/admin-pkg/groups/Textarea.md
- .design-sync/admin-pkg/groups/TimelineItem.md
- .design-sync/admin-pkg/groups/TimelineStepper.md
- .design-sync/admin-pkg/groups/Tooltip.md
- .design-sync/admin-pkg/package.json
- .design-sync/config.admin.json
- .design-sync/config.json
- .design-sync/conventions.admin.md
- .design-sync/conventions.md
- .design-sync/previews-admin/ActivityFeedSkeleton.tsx
- .design-sync/previews-admin/AdminTableSkeleton.tsx
- .design-sync/previews-admin/AlertCard.tsx
- .design-sync/previews-admin/AllClearCard.tsx
- .design-sync/previews-admin/AutoExpandTextarea.tsx
- .design-sync/previews-admin/Badge.tsx
- .design-sync/previews-admin/Button.tsx
- .design-sync/previews-admin/CancellationTimer.tsx
- .design-sync/previews-admin/Card.tsx
- .design-sync/previews-admin/ConfirmDialog.tsx
- .design-sync/previews-admin/CountBadge.tsx
- .design-sync/previews-admin/DataTable.tsx
- .design-sync/previews-admin/Dialog.tsx
- .design-sync/previews-admin/DropdownMenu.tsx
- .design-sync/previews-admin/EmptyState.tsx
- .design-sync/previews-admin/ExplorerLink.tsx
- .design-sync/previews-admin/FundingBadge.tsx
- .design-sync/previews-admin/Input.tsx
- .design-sync/previews-admin/Label.tsx
- .design-sync/previews-admin/LastUpdatedFooter.tsx
- .design-sync/previews-admin/Logo.tsx
- .design-sync/previews-admin/LogoMark.tsx
- .design-sync/previews-admin/MetricCard.tsx
- .design-sync/previews-admin/NotificationLog.tsx
- .design-sync/previews-admin/PageHeader.tsx
- .design-sync/previews-admin/RadioCard.tsx
- .design-sync/previews-admin/RefreshButton.tsx
- .design-sync/previews-admin/RefreshIndicator.tsx
- .design-sync/previews-admin/Select.tsx
- .design-sync/previews-admin/Separator.tsx
- .design-sync/previews-admin/Skeleton.tsx
- .design-sync/previews-admin/StatCard.tsx
- .design-sync/previews-admin/StatCardSkeleton.tsx
- .design-sync/previews-admin/StatusBadge.tsx
- .design-sync/previews-admin/SubStatusIndicator.tsx
- .design-sync/previews-admin/Switch.tsx
- .design-sync/previews-admin/Table.tsx
- .design-sync/previews-admin/TableSkeleton.tsx
- .design-sync/previews-admin/Tabs.tsx
- .design-sync/previews-admin/Textarea.tsx
- .design-sync/previews-admin/TimelineItem.tsx
- .design-sync/previews-admin/TimelineStepper.tsx
- .design-sync/previews-admin/Tooltip.tsx
- .design-sync/previews-web/Badge.tsx
- .design-sync/previews-web/Button.tsx
- .design-sync/previews-web/Card.tsx
- .design-sync/previews-web/Dialog.tsx
- .design-sync/previews-web/FilterTabs.tsx
- .design-sync/previews-web/Input.tsx
- .design-sync/previews-web/Label.tsx
- .design-sync/previews-web/Logo.tsx
- .design-sync/previews-web/LogoMark.tsx
- .design-sync/previews-web/PoolCardGridSkeleton.tsx
- .design-sync/previews-web/PoolCardSkeleton.tsx
- .design-sync/previews-web/PoolDetailSkeleton.tsx
- .design-sync/previews-web/PortfolioSkeleton.tsx
- .design-sync/previews-web/RiskTierBadge.tsx
- .design-sync/previews-web/Select.tsx
- .design-sync/previews-web/Skeleton.tsx
- .design-sync/previews-web/StatCard.tsx
- .design-sync/previews-web/StatusBadge.tsx
- .design-sync/previews-web/StepIndicator.tsx
- .design-sync/previews-web/Tooltip.tsx
- .design-sync/previews/ActivityFeedSkeleton.tsx
- .design-sync/previews/AdminTableSkeleton.tsx
- .design-sync/previews/AlertCard.tsx
- .design-sync/previews/AllClearCard.tsx
- .design-sync/previews/AutoExpandTextarea.tsx
- .design-sync/previews/Badge.tsx
- .design-sync/previews/Button.tsx
- .design-sync/previews/CancellationTimer.tsx
- .design-sync/previews/Card.tsx
- .design-sync/previews/ConfirmDialog.tsx
- .design-sync/previews/CountBadge.tsx
- .design-sync/previews/DataTable.tsx
- .design-sync/previews/Dialog.tsx
- .design-sync/previews/DropdownMenu.tsx
- .design-sync/previews/EmptyState.tsx
- .design-sync/previews/ExplorerLink.tsx
- .design-sync/previews/FundingBadge.tsx
- .design-sync/previews/Input.tsx
- .design-sync/previews/Label.tsx
- .design-sync/previews/LastUpdatedFooter.tsx
- .design-sync/previews/Logo.tsx
- .design-sync/previews/LogoMark.tsx
- .design-sync/previews/MetricCard.tsx
- .design-sync/previews/NotificationLog.tsx
- .design-sync/previews/PageHeader.tsx
- .design-sync/previews/RadioCard.tsx
- .design-sync/previews/RefreshButton.tsx
- .design-sync/previews/RefreshIndicator.tsx
- .design-sync/previews/Select.tsx
- .design-sync/previews/Separator.tsx
- .design-sync/previews/Skeleton.tsx
- .design-sync/previews/StatCard.tsx
- .design-sync/previews/StatCardSkeleton.tsx
- .design-sync/previews/StatusBadge.tsx
- .design-sync/previews/SubStatusIndicator.tsx
- .design-sync/previews/Switch.tsx
- .design-sync/previews/Table.tsx
- .design-sync/previews/TableSkeleton.tsx
- .design-sync/previews/Tabs.tsx
- .design-sync/previews/Textarea.tsx
- .design-sync/previews/TimelineItem.tsx
- .design-sync/previews/TimelineStepper.tsx
- .design-sync/previews/Tooltip.tsx
- .design-sync/web-pkg/entry.tsx
- .design-sync/web-pkg/groups/FilterTabs.md
- .design-sync/web-pkg/groups/Logo.md
- .design-sync/web-pkg/groups/LogoMark.md
- .design-sync/web-pkg/groups/PoolCardGridSkeleton.md
- .design-sync/web-pkg/groups/PoolCardSkeleton.md
- .design-sync/web-pkg/groups/PoolDetailSkeleton.md
- .design-sync/web-pkg/groups/PortfolioSkeleton.md
- .design-sync/web-pkg/groups/RiskTierBadge.md
- .design-sync/web-pkg/groups/Skeleton.md
- .design-sync/web-pkg/groups/StatCard.md
- .design-sync/web-pkg/groups/StatusBadge.md
- .design-sync/web-pkg/groups/StepIndicator.md
- .design-sync/web-pkg/package.json
- .gitignore
2026-07-06 (Mon)
🟢 ch/product
feat 15:46:09 68d4ead9
feat(web+admin-web+infra): move refresh token to HttpOnly cookie (S-1)
24 files · +351 · -129
- Admin
- client
- provider
- types
- Admin API
- auth
- Docs
- 15-api-reference.md
- 17-changelog.md
- Infra
- CDK Stack (api-stack)
- admin-mfa.ts
- cookies.ts
- environment.ts
- index.ts
- supabase.ts
- Investor Web
- client
- provider
- use-sign-in
- Investor Web API
- auth
- Lambda API
- auth.post.admin-2fa-verify
- auth.post.admin-login
- auth.post.admin-logout-all
- auth.post.admin-oauth
- auth.post.logout
- auth.post.refresh
- auth.post.verify
- Other
- CLAUDE.md
perf 15:25:01 015869b4
perf(infra): page past PostgREST 1000-row cap, cache notification recipients, drop dup indexes
7 files · +107 · -31
- Docs
- 11-db-schema.md
- Infra
- DB 0053_drop_redundant_indexes.sql
- DB schema.sql
- fetch-all.ts
- investor-stats.ts
- yield-schedule.ts
- Lambda API
- notification-logs.scheduler.send
fix 15:05:10 3a163fbe
fix(web+admin-web+infra): chain-aware explorer links + honor operator saved page grants
23 files · +199 · -40
- Admin
- Route (admin-settings)
- Route (redemptions)
- provider
- route-permissions
- types
- Admin API
- dashboard
- kyc
- Infra
- admin-mfa.ts
- page-permissions.ts
- Investor Web
- .env
- Route (kyc)
- Route (pool.$id)
- Route (portfolio-activity)
- Route (settings)
- Route (transactions)
- Widget (activity-tab)
- explorer
- transaction-entries
- Investor Web UI
- KYCStatusCard
- TransactionDetailDrawer
- Lambda API
- admin-users.patch.permissions
- auth.post.admin-oauth
perf 14:16:05 e30cc7ba
perf(admin-web+web+infra): cut over-fetching and redundant recompute across dashboards
20 files · +176 · -74
- Admin
- Route (audit-log)
- Route (dashboard)
- Route (pool-detail)
- governance-history-panel
- investors-tab
- methods
- sidebar
- Admin API
- dashboard
- notifications
- use-dashboard
- use-notification-logs
- Investor Web
- Route (landing)
- Route (portfolio-activity)
- Widget (PCWidgets)
- Widget (performance-tab)
- Investor Web API
- keys
- use-notifications
- use-yield-claims
- Lambda API
- activity-events.get.list
- notification-logs.get.list
feat 13:46:43 5e515148
feat(infra+admin-web): operator redemption escalate/notify-fund + drop synthetic emails
30 files · +374 · -183
- Admin
- Route (audit-log)
- Route (login)
- Route (my-settings)
- Route (redemptions)
- payload
- permissions
- Admin API
- pools
- redemption-requests
- use-redemption-requests
- Docs
- 11-db-schema.md
- Infra
- CDK Stack (api-stack)
- DB 0052_notification_status_escalated.sql
- DB schema.sql
- activity.ts
- cache.ts
- client.ts
- copy.ts
- email.ts
- Investor Web API
- user-settings
- Lambda API
- auth.post.verify
- deposits.get.list
- notification-logs.post.escalate
- notification-logs.scheduler.send
- portfolio-positions.get.list
- redemption-requests.post.escalate
- redemption-requests.post.notify-fund
- users.get.list
- users.get.me
- users.post.email
refactor 13:46:43 8b728fd2
refactor(contract): split PlatformPool into Gov/Yield/Nav libraries for EIP-170 headroom
15 files · +1112 · -526
- Contract Test
- PlatformLPToken.t
- PlatformPool.t
- PlatformPoolEpoch.t
- SequenceDiagramVerification.t
- Docs
- 08-smart-contracts.md
- 08a-contract-reference.md
- Investor Web
- Route (settings)
- Investor Web API
- user-settings
- Lambda API
- users.get.me
- Smart Contract
- GovernanceLib
- NavLib
- PlatformPool
- PlatformPool.abi.json
- YieldLib
- foundry.toml
refactor 13:46:43 a3ba156b
refactor(web+infra): code-quality/dedup sweep + reinvest partial-amount
53 files · +929 · -936
- Infra
- DB 0051_reinvest_partial_amount.sql
- DB schema.sql
- yield-distribution.ts
- Investor Web
- PoolCard
- Route (dashboard)
- Route (landing)
- Route (notifications)
- Route (pool.$id)
- Route (pools)
- Route (portfolio)
- Route (portfolio-activity)
- Route (settings)
- Route (transactions)
- Route (verify-email)
- TrancheBadge
- Widget (PCWidgets)
- Widget (PortfolioHero)
- Widget (activity-tab)
- Widget (epoch-countdown)
- Widget (invest-sidebar)
- Widget (overview-tab)
- Widget (pool-header-card)
- Widget (position-card)
- Widget (risk-disclosure)
- Widget (timelock-countdown)
- auth-button
- eslint.config
- formatters
- index
- portfolio-stats
- provider
- redemption-state
- transaction-entries
- use-redeem-flow
- use-reinvest-flow
- Investor Web API
- index
- notifications
- pools
- redeposit
- support-request
- use-support-request
- Investor Web UI
- DarkPageLayout
- KYCStatusCard
- MobileBottomNav
- OnboardingModal
- PoolStatusAlert
- RedeemModal
- TransactionDetailDrawer
- YieldClaimDialog
- index
- tx-type-badge
- Lambda API
- yield.post.reinvest
refactor 13:41:55 68b0afcc
refactor(admin-web): code-quality sweep + 2 P0 fixes, dedup & modal/badge consolidation
45 files · +2446 · -2186
- Admin
- Route (admin-settings)
- Route (audit-log)
- Route (dashboard)
- Route (deposits)
- Route (fund-detail)
- Route (fund-manager-onboard)
- Route (funds)
- Route (kyc)
- Route (login)
- Route (my-settings)
- Route (notifications)
- Route (pools)
- Route (protected-layout)
- Route (redemptions)
- Route (super-login)
- address
- configuration-tab
- delete-pool-section
- env.d
- governance-history-panel
- index
- nav-changes-panel
- sidebar
- step-models
- step-risk-penalty
- totp-step
- types
- updates-tab
- use-deposit-yield-flow
- use-fund-redemption-flow
- use-pool-fund-tx
- wagmi
- wallet-bind-card
- Admin API
- activity-events
- dashboard
- funds
- keys
- notification-center
- pools
- use-admin-users
- use-notification-center
- use-pools
- Admin UI
- count-badge
- dday-badge
- radio-card
refactor 13:41:55 f47819f2
refactor(infra): apply no-let/IIFE style + extract shared helpers across lambdas
31 files · +434 · -421
- Infra
- deploy-payload.ts
- epoch.ts
- escape-html.ts
- loss-waterfall.ts
- notification-email.ts
- notify.ts
- pool-field-validation.ts
- templates.ts
- Lambda API
- activity-events.get.export
- activity-events.get.list
- activity-events.post.create
- admin-notifications.get.list
- admin-notifications.get.unread-count
- admin-notifications.patch.read
- admin-notifications.patch.read-all
- admin-users.post.invite
- auth.post.nonce
- auth.post.verify
- fund-invites.get.list
- fund-invites.post.create
- kyc.post.access-token
- kyc.post.mint-sbt
- kyc.post.reuse
- notification-logs.scheduler.send
- notifications.get.list
- pools.patch.update
- pools.post.create
- pools.post.freeze
- pools.post.lifecycle
- pools.scheduler.yield-due
- yield.scheduler.reconcile
🔵 jy/product
No activity
2026-07-04 (Sat)
🟢 ch/product
No activity
🔵 jy/product
docs 17:05:04 4d06f4a1
docs: reinvest is same-pool only — drop "cross-pool reinvest is V2" framing (v3-64)
4 files · +31 · -2
- Docs
- 02-core-concepts.md
- 05-investment-lifecycle.md
- 14-decisions.md
- 17-changelog.md
fix 16:59:12 d63348c2
fix(reinvest): enforce same-pool-only — remove cross-pool Target Pool selector
2 files · +43 · -75
- Investor Web
- Route (portfolio)
- Other
- CLAUDE.md
2026-07-03 (Fri)
🟢 ch/product
refactor 14:41:41 7ee2ec8c
refactor: purge v3-deprecated remnants (REFUNDED, lp_issuance_model, FM-stage) across web/admin/infra
30 files · +243 · -172
- Admin
- Route (dashboard)
- Route (deposits)
- Route (pool-create)
- Route (pool-detail)
- Route (pools)
- overview-tab
- payload
- permissions
- step-models
- types
- Admin API
- dashboard
- deposits
- pools
- redemption-requests
- Admin UI
- status-badge
- Docs
- 10-status-machines.md
- 11-db-schema.md
- Infra
- DB 0049_drop_deposit_status_refunded.sql
- DB 0050_drop_lp_issuance_and_fm_stage_columns.sql
- DB schema.sql
- DB seed.sql
- Investor Web
- Route (dashboard)
- Route (portfolio)
- Route (portfolio-activity)
- Investor Web API
- deposits
- redemption-requests
- Investor Web UI
- status-badge
- Other
- packages/types/src/index.ts
refactor 13:37:01 3afd438d
refactor: remove verified dead code across web/admin/infra + reconcile DB schema
43 files · +64 · -1388
- Admin API
- deposits
- index
- keys
- notifications
- pools
- use-auth
- Docs
- 11-db-schema.md
- Infra
- DB 0048_wallet_ci_unique_drop_lowercase_fn.sql
- DB schema.sql
- DB seed.sql
- cdk.context.json
- client.ts
- create-system-update.ts
- index.ts
- package.json
- Investor Web
- Route (home)
- Widget (HoldingCard)
- Widget (PCWidgets)
- Widget (QuickActions)
- Widget (index)
- Widget (tvl-chart)
- holder-state
- index
- Investor Web API
- index
- keys
- kyc-logs
- pools
- underlying-assets
- use-deposits
- use-kyc-logs
- use-portfolio-positions
- use-redemption-requests
- use-underlying-assets
- use-wallets
- use-yield-distributions
- wallets
- Investor Web UI
- InvestModal
- index
- stat-card
- status-badge
- step-indicator
- Lambda API
- deposits.get.list
🔵 jy/product
docs 18:09:41 2b990c23
docs: log v3-60~63 decisions from FE-UI tracker (country code, max_investment, formatting, recovery)
3 files · +107
- Docs
- 04-pool-models.md
- 14-decisions.md
- 17-changelog.md
docs 17:25:03 9ee104a4
docs: add v3-59 dynamic DPD buckets decision + reconcile v3-58 LP whitelist mention
6 files · +40 · -2
- Docs
- 08-smart-contracts.md
- 11-db-schema.md
- 14-decisions.md
- 16-timeline.md
- 17-changelog.md
- 20-joob-pool-config.md
2026-07-02 (Thu)
🟢 ch/product
test 17:04:07 c3bec237
test: cover every deposit-blocking state in backend and contract
5 files · +290 · -33
- Contract Test
- PlatformPool.t
- Infra
- deposit-eligibility.test.ts
- deposit-eligibility.ts
- package.json
- Lambda API
- deposits.post.create
fix 16:16:16 f4a030f1
fix(web): show skeletons on Settings while profile data loads
1 files · +57 · -23
- Investor Web
- Route (settings)
fix 16:07:30 8d4d496c
fix: drop synthetic investor emails + route Add-LP-token through the connected wallet
12 files · +158 · -38
- Docs
- 11-db-schema.md
- Infra
- DB 0047_drop_synthetic_user_emails.sql
- DB schema.sql
- email.ts
- Investor Web
- Widget (PCWidgets)
- Widget (invest-sidebar)
- use-add-lp-token
- Lambda API
- auth.post.verify
- deposits.get.list
- portfolio-positions.get.list
- users.get.list
- users.get.me
fix 15:43:03 04889c45
fix(admin): derive redemptions and yield CSV exports from the table columns
2 files · +27 · -23
- Admin
- Route (redemptions)
- Route (yield)
feat 15:43:03 5357bfa2
feat: friendly tx errors, max-investment gate, and invite-link copy button
13 files · +135 · -23
- Admin
- Route (fund-manager-onboard)
- Investor Web
- Route (portfolio)
- Widget (invest-sidebar)
- index
- tx-error
- use-cancel-redemption-flow
- use-invest-flow
- use-reinvest-flow
- use-settle-epoch-flow
- Investor Web API
- pools
- Investor Web UI
- RedeemModal
- YieldClaimDialog
- Lambda API
- pools.get.list
fix 15:43:03 d19090fd
fix(admin): make dashboard alert counts match their lists (0046)
5 files · +60 · -11
- Admin
- Route (dashboard)
- Route (kyc)
- Docs
- 11-db-schema.md
- Infra
- DB 0046_dashboard_alerts_exclude_inflight_mint.sql
- DB schema.sql
fix 15:43:03 4dfdbcf0
fix(admin): sync SBT mint retry state across pages + surface retry outcomes
8 files · +168 · -32
- Admin
- Route (dashboard)
- Route (kyc)
- Admin API
- kyc
- Docs
- 11-db-schema.md
- Infra
- DB 0045_sbt_mint_queued_at.sql
- DB schema.sql
- apply-review.ts
- mint-queue.ts
fix 15:43:03 fa9eae18
fix(admin): derive deposits CSV export from the table columns
3 files · +49 · -10
- Admin
- Route (deposits)
- export-table-csv
- index
fix 13:32:07 c21b2791
fix(infra): enforce single-primary fund manager rules (invite & removal)
9 files · +279 · -47
- Admin
- Route (fund-detail)
- Docs
- 11-db-schema.md
- Infra
- DB 0044_single_primary_fund_member.sql
- DB schema.sql
- Lambda API
- fund-invites.post.accept
- fund-invites.post.create
- fund-members.delete
- fund-members.patch.update
- fund-members.post.create
fix 12:26:32 a50d7c8b
fix(infra): offboard FM accounts on fund delete and make invite accept atomic
4 files · +138 · -68
- Infra
- offboard-fund-manager.ts
- Lambda API
- fund-invites.post.accept
- fund-members.delete
- funds.delete
feat 12:09:49 7ebce9f3
feat(contract): mint LP on full deposit amount — reserve no longer dilutes claim (v3-56)
16 files · +209 · -92
- Contract Test
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFlows.t
- PlatformPoolNonCustodial.t
- SequenceDiagramVerification.t
- Docs
- 05-investment-lifecycle.md
- 08-smart-contracts.md
- 14-decisions.md
- 17-changelog.md
- Infra
- CDK Stack (api-stack)
- token-calculations.ts
- Lambda API
- deposits.post.create
- pools.scheduler.lifecycle
- yield.post.reinvest
- Smart Contract
- PlatformPool
- sepolia.md
fix 12:09:49 dfde7045
fix(ui): add loading spinners and pending guards to all async action buttons
31 files · +522 · -146
- Admin
- Route (admin-settings)
- Route (dashboard)
- Route (fund-detail)
- Route (fund-invite-accept)
- Route (funds)
- Route (kyc)
- Route (login)
- Route (my-settings)
- Route (notifications)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (redemptions)
- Route (yield)
- delete-pool-section
- nav-changes-panel
- updates-tab
- yield-settings-tab
- Admin UI
- index
- pending-confirm-dialog
- Investor Web
- Route (dashboard)
- Route (notifications)
- Route (portfolio)
- Route (portfolio-activity)
- Route (settings)
- Widget (invest-sidebar)
- Widget (reinvest-confirm-dialog)
- Investor Web UI
- KYCModal
- KYCStatusCard
- RedeemModal
- YieldClaimDialog
fix 12:09:49 c7875014
fix: harden fund manager removal and fund deletion
6 files · +214 · -47
- Admin
- Route (fund-detail)
- Lambda API
- fund-members.delete
- fund-members.get.list
- fund-members.post.create
- funds.delete
- funds.get.list
🔵 jy/product
docs 16:31:11 c57899ec
docs: sync backend docs to code — audit Medium/Low fixes
9 files · +26 · -19
- Docs
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 09a-custody.md
- 11-db-schema.md
- 13-operations.md
- 18-failure-types.md
- 21-holder-verification.md
docs 16:16:04 645e0e40
docs: sync backend docs to code — v3-58, pool-status matrix, audit fixes
14 files · +133 · -35
- Docs
- 01-overview.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 08a-contract-reference.md
- 09-rbac.md
- 09a-custody.md
- 10-status-machines.md
- 14-decisions.md
- 17-changelog.md
- 18-failure-types.md
- 21-holder-verification.md
feat 16:15:49 9d74f572
feat(contract): permissionless LP transfers — remove whitelist gate (v3-58)
7 files · +33 · -138
- Contract Test
- PlatformLPToken.t
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFlows.t
- PlatformPoolNonCustodial.t
- SequenceDiagramVerification.t
- Smart Contract
- PlatformLPToken
fix 15:21:14 712aed24
fix(docs): repoint pool-updates RBAC link to v3-57 after merge renumber
1 files · +1 · -1
- Docs
- 09-rbac.md
refactor 14:15:30 76d6f37f
refactor(web): detint transaction modals/drawer to ledger style + StatusBadge quiet variant
5 files · +155 · -127
- Investor Web UI
- InvestModal
- RedeemModal
- TransactionDetailDrawer
- YieldClaimDialog
- status-badge
feat 13:36:35 377470e5
feat(admin): pool-updates RBAC — Operator opt-in via 'pools' page perm + docs (v3-56)
6 files · +92 · -12
- Docs
- 09-rbac.md
- 14-decisions.md
- 17-changelog.md
- Lambda API
- pool-updates.delete
- pool-updates.patch.update
- pool-updates.post.create
feat 13:36:12 37cd06ca
feat(web): wire pool fees (FEE-1) + pool-level wind-down recovery (PDP-6)
3 files · +74
- Investor Web
- Widget (overview-tab)
- Widget (position-card)
- Investor Web API
- pools
feat 11:02:29 ddec3f87
feat(admin): surface EOA vs Safe (multisig) pending signing state (W4)
5 files · +77 · -7
- Admin
- Route (redemptions)
- Route (yield)
- use-deposit-yield-flow
- use-fund-redemption-flow
- use-wallet-kind
2026-07-01 (Wed)
🟢 ch/product
fix 19:13:14 7cfdf216
fix(admin): redirect to dashboard on fund invite accept
1 files · +8 · -2
- Admin
- Route (fund-invite-accept)
fix 19:05:33 94d41073
fix(infra): harden FM invitation flow edge cases
5 files · +127 · -26
- Admin
- Route (fund-invite-accept)
- Lambda API
- admin-users.post.invite
- auth.post.admin-oauth
- fund-invites.get.list
- fund-invites.post.create
feat 19:02:26 9cd0692f
feat: show canonical investor name (first/last) across admin UI + notifications
8 files · +78 · -25
- Admin
- display-name
- Admin API
- kyc
- Infra
- display-name.ts
- notify.ts
- Lambda API
- deposits.get.list
- portfolio-positions.get.list
- redemption-requests.get.list
- users.get.me
fix 18:04:11 9365d4ef
fix(infra): require fund_wallet, harden MFA/dev shims (audit A/B)
6 files · +37 · -39
- Admin
- provider
- Infra
- admin-mfa.ts
- Investor Web
- contact
- Lambda API
- notification-logs.post.resend
- pools.post.create
- pools.post.lifecycle
docs 17:04:01 dfaacf23
docs: sync 15-api-reference with actual lambda routes (130 endpoints)
1 files · +135 · -47
- Docs
- 15-api-reference.md
feat 16:52:03 5fb85e7d
feat(admin): FM wallet signing hardening — W8/W9 (v3-54)
17 files · +292 · -49
- Admin
- Route (my-settings)
- Route (redemptions)
- Route (yield)
- fund-wallet-display
- overview-tab
- pool-controls
- use-bind-wallet
- wallet-bind-card
- Admin API
- admin-user-wallets
- index
- keys
- use-admin-user-wallets
- Docs
- 14-decisions.md
- 15-api-reference.md
- 17-changelog.md
- Infra
- CDK Stack (api-stack)
- Lambda API
- admin-user-wallets.get.list
chore 13:39:14 1d5f1a95
chore: migrate domains from aset.shardlab.io to aset.finance
21 files · +234 · -176
- Admin
- .env
- CI/CD
- deploy-admin-web.yml
- deploy-docs.yml
- deploy-web.yml
- Docs
- 14-decisions.md
- 22-notifications.md
- README.md
- Infra
- .env.example
- CDK Stack (api-stack)
- CDK Stack (certificate-stack)
- CDK Stack (docs-stack)
- CDK Stack (ses-stack)
- app.ts
- cdk.context.json
- docs.ts
- environment.ts
- Investor Web
- .env
- contact
- Other
- README.md
🔵 jy/product
fix 18:29:58 a89e5355
fix(docs): close unterminated v3-55 <details>/::: block in 17-changelog
1 files · +3
- Docs
- 17-changelog.md
fix 18:20:03 c118291b
fix(web): route partner CTA to contact@aset.finance, add CONTACT_EMAIL
2 files · +7 · -1
- Investor Web
- contact
- Investor Web UI
- Footer
fix 18:16:57 fc3d756f
fix(admin): restrict invite target role — Admin cannot invite Admin/Super Admin (B2)
1 files · +11
- Lambda API
- admin-users.post.invite
docs 17:57:38 f225d89b
docs: sync backend docs to shipped code (2026-07-01 audit)
13 files · +86 · -83
- Docs
- 01-overview.md
- 03-kyc-identity.md
- 04-pool-models.md
- 06-writedown-nav.md
- 07-redemption.md
- 08a-contract-reference.md
- 09-rbac.md
- 10-status-machines.md
- 11-db-schema.md
- 17-changelog.md
- 20-joob-pool-config.md
- 21-holder-verification.md
- Other
- CLAUDE.md
fix 17:29:12 3fbd0174
fix(web): correct misleading matured-pool copy (no auto-redemption)
2 files · +5 · -5
- Investor Web
- Widget (invest-sidebar)
- Investor Web UI
- PoolStatusAlert
refactor 13:45:41 2717de9b
refactor(fund-data): rename total_rni/total_npl -> realized_income/cumulative_impairment (v3-54)
11 files · +68 · -28
- Docs
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- Infra
- DB 0043_rename_fund_metrics_neutral.sql
- DB schema.sql
- mapper.ts
- sync.ts
- types.ts
- Investor Web
- Widget (fund-data-tab)
- Investor Web API
- fund-data
- Lambda API
- pools.get.fund-data-history
feat 13:45:41 cbced658
feat(web): add pool PDP Activity tab — per-pool deposit/redemption/yield history
3 files · +175 · -1
- Investor Web
- Route (pool.$id)
- Widget (activity-tab)
- Widget (index)
2026-06-30 (Tue)
🟢 ch/product
feat 16:21:04 cc6b4ee1
feat: FM wallet signing — client-signed depositYield/fundRedemption (v3-53)
42 files · +2329 · -349
- Admin
- Route (my-settings)
- Route (pool-create)
- Route (redemptions)
- Route (yield)
- contracts
- index
- payload
- pool-controls
- root
- step-basic-info
- step-save-publish
- types
- use-bind-wallet
- use-deposit-yield-flow
- use-fund-redemption-flow
- use-network-guard
- validation
- wagmi
- wallet-bind-card
- wallet-silent-reconnect
- Admin API
- auth
- redemption-requests
- use-redemption-requests
- use-yield-distributions
- yield-distributions
- Docs
- 09-rbac.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- Infra
- CDK Stack (api-stack)
- DB 0041_admin_user_wallets.sql
- DB 0042_yield_deposit_tx_hash.sql
- DB schema.sql
- copy.ts
- run-distribution.ts
- Lambda API
- admin-wallet.post.nonce
- admin-wallet.post.verify
- pools.scheduler.yield-due
- redemption-requests.post.approve
- redemption-requests.post.record-funding
- yield-distributions.post.create
- yield-distributions.post.distribute
chore 11:46:41 c364fd56
chore: remove unused docs-src Notion-to-HTML build tooling
3 files · -3554
- Other
- docs-src/build.py
- docs-src/template/notion_config.json
- docs-src/template/shell.html
fix 11:39:11 558b4c43
fix(admin): restrict pool Controls tab to Admin only
2 files · +9 · -7
- Admin
- Route (pool-detail)
- pool-controls
feat 10:59:53 401af5ac
feat(admin): per-button loading spinners on pool control actions
2 files · +92 · -68
Admin
- pool-controls
docs 10:19:01 fe320c61
docs: document users.first_name/last_name in db-schema users table (0040)
1 files · +3 · -1
- Docs
- 11-db-schema.md
docs 10:19:01 d8a77900
docs: sync db-schema with migration 0039 platform_settings
1 files · +14 · -4
- Docs
- 11-db-schema.md
🔵 jy/product
chore 10:35:12 5a3e5c42
chore(db): enable RLS on platform_settings (Lambda/service-key only)
1 files · +7
- Infra
- DB 0039_platform_settings.sql
2026-06-29 (Mon)
🟢 ch/product
docs 18:18:49 5716c4ce
docs: add contract code reference and dedupe with smart-contracts page
3 files · +356 · -105
- Docs
- 08-smart-contracts.md
- 08a-contract-reference.md
- config.ts
feat 14:38:59 064fef6a
feat(web): redirect to landing page on wallet disconnect
1 files · +3
- Investor Web
- auth-button
feat 13:34:47 d4e8fbd8
feat(auth): support Base Account SIWE and harden token issuance
22 files · +667 · -660
- Admin
- package
- Infra
- admin-mfa.ts
- index.ts
- jwt.ts
- middleware.ts
- package.json
- read-scope.ts
- siwe.ts
- Investor Web
- auth-button
- client
- package
- provider
- siwe-base-account
- siwe-eoa
- use-sign-in
- wagmi
- wallet-silent-reconnect
- Lambda API
- auth.post.admin-2fa-verify
- auth.post.admin-oauth
- auth.post.verify
- Other
- package.json
- pnpm-lock.yaml
🔵 jy/product
feat 18:48:22 d5445d50
feat(kyc): backfill investor names from SumSub via reconcile-sweep (v3-52)
3 files · +100 · -2
- Docs
- 14-decisions.md
- 17-changelog.md
- Lambda API
- kyc.scheduler.reconcile-sweep
feat 18:34:07 66fc3a0f
feat: store investor name (from SumSub) + dedupe investor Settings
7 files · +44 · -34
- Docs
- 11-db-schema.md
- Infra
- DB 0040_investor_names.sql
- DB schema.sql
- apply-review.ts
- client.ts
- Investor Web
- Route (settings)
- Lambda API
- users.get.me
chore 18:12:56 9bcabf0d
chore(admin): remove dead "Transfer to Defined Wallet" Operations tab
3 files · +4 · -100
- Admin
- Route (pool-detail)
- index
- operations-tab
feat 18:07:13 2587e41d
feat(notify): notify the investor when their SBT mint fails
2 files · +37
- Infra
- apply-review.ts
- copy.ts
feat 17:09:48 b521e97e
feat: SBT-failed recovery + yield stub cleanup + server-persisted platform config
17 files · +259 · -43
- Admin
- Route (admin-settings)
- Route (yield)
- Admin API
- index
- platform-settings
- use-platform-settings
- Docs
- 11-db-schema.md
- Infra
- CDK Stack (api-stack)
- DB 0039_platform_settings.sql
- DB schema.sql
- Investor Web
- Route (dashboard)
- Route (pool.$id)
- Route (portfolio)
- Investor Web API
- use-user-settings
- user-settings
- Investor Web UI
- KYCStatusCard
- Lambda API
- platform-settings.get
- platform-settings.put.update
fix 16:33:51 6b1ad0ad
fix(admin): ADMIN can edit-name + delete another ADMIN (v3-47 revised)
5 files · +61 · -4
- Admin
- Route (admin-settings)
- Docs
- 14-decisions.md
- 17-changelog.md
- Lambda API
- admin-users.delete
- admin-users.patch.update
feat 16:16:54 eed36d7c
feat: FM_SHORTFALL alert + admin notif prefs save + preview-pool gating (FE-UI #31/#10, #5, #19)
10 files · +285 · -29
- Admin
- Route (my-settings)
- Admin API
- index
- notification-preferences
- use-notification-preferences
- Infra
- CDK Stack (api-stack)
- Investor Web
- Route (pool.$id)
- Investor Web API
- pools
- Lambda API
- admin-notification-preferences.get.list
- admin-notification-preferences.put.update
- redemption-requests.post.approve
chore 16:15:08 595380ab
chore(ui): clean up user-facing copy and unify contact email
16 files · +46 · -31
- Admin
- Route (yield)
- nav-changes-panel
- operations-tab
- step-models
- Investor Web
- Route (dashboard)
- Route (help)
- Route (portfolio)
- Route (portfolio-activity)
- Route (privacy)
- Route (settings)
- Route (terms)
- Widget (invest-sidebar)
- contact
- Investor Web UI
- KYCModal
- KYCStatusCard
feat 14:54:21 4e6068dd
feat(web): claimable yield display (v3-51 #7) + State-C read-only portfolio (docs 21)
7 files · +138 · -16
- Investor Web
- Route (dashboard)
- Route (pool.$id)
- Route (portfolio)
- Route (settings)
- Widget (HoldingCard)
- holder-state
- Investor Web API
- portfolio-positions
docs 14:44:53 2352266c
docs(pool-models): flag tranche yield-waterfall deferred, loss-waterfall built (v3-50)
1 files · +8
- Docs
- 04-pool-models.md
fix 14:00:07 17d958ff
fix(web): tranche risk-tier Senior/Mezzanine → Medium per v3-25 spec
4 files · +10 · -7
- Docs
- 04-pool-models.md
- 14-decisions.md
- 17-changelog.md
- Investor Web API
- pools
feat 13:32:46 db1d14f3
feat(web/admin): investor tranche display + admin incomplete-group badge (v3-50)
7 files · +128 · -10
- Admin
- Route (pools)
- Docs
- 14-decisions.md
- 17-changelog.md
- Investor Web
- PoolCard
- Widget (pool-header-card)
- Widget (risk-disclosure)
- Investor Web API
- pools
feat 13:26:46 918ba8e9
feat(admin): tranche group setup in pool-create (Method A, v3-50)
9 files · +256 · -7
- Admin
- Route (pool-create)
- payload
- step-models
- step-save-publish
- types
- validation
- Admin API
- pools
- Docs
- 14-decisions.md
- 17-changelog.md
feat 13:06:16 2c55aa3b
feat(infra): tranche loss waterfall engine + write-down endpoint (v3-50)
4 files · +442
- Infra
- CDK Stack (api-stack)
- loss-waterfall.ts
- Lambda API
- pools.post.lifecycle
- tranche.post.writedown
feat 13:01:21 e2c55a8e
feat(infra): yield reconciler — claimable_yield = on-chain pendingYield (v3-51)
12 files · +422 · -2
- Docs
- 05-investment-lifecycle.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- Infra
- CDK Stack (api-stack)
- DB 0038_yield_reconciler.sql
- DB schema.sql
- engine.ts
- events.ts
- yield.ts
- Lambda API
- yield.scheduler.reconcile
2026-06-26 (Fri)
🟢 ch/product
refactor 15:13:04 6b0d2681
refactor(auth): unify SIWE on viem and fix JWT chainId claim
7 files · +75 · -123
- Infra
- jwt.ts
- siwe.ts
- Investor Web
- provider
- siwe-message
- use-sign-in
- Lambda API
- auth.post.refresh
- auth.post.verify
feat 14:09:46 50f45a2d
feat(web): support Coinbase Wallet + Base Account and harden wallet session
3 files · +85 · -6
- Investor Web
- auth-button
- provider
- wagmi
🔵 jy/product
chore 18:12:40 e4af685c
chore(admin): remove dead/phantom code surfaced by gap re-audit (v3-48)
10 files · +31 · -117
- Admin
- Route (deposits)
- Route (my-settings)
- Admin API
- admin-users
- fund-members
- index
- pools
- use-admin-users
- use-fund-members
- use-pools
- Infra
- copy.ts
feat 16:55:41 3ccb35c0
feat(notifications): FM yield-distribution due + overdue alerts (v3-49)
4 files · +172 · -12
- Docs
- 14-decisions.md
- 17-changelog.md
- Infra
- copy.ts
- Lambda API
- pools.scheduler.yield-due
fix 14:42:33 1e59dcdc
fix(admin): remove dead retry-lp-mint (v3-48 resolved, option b)
6 files · +21 · -62
- Admin
- Route (dashboard)
- Route (deposits)
- Admin API
- deposits
- use-deposits
- Docs
- 14-decisions.md
- 17-changelog.md
fix 13:56:44 e2f21a8d
fix(admin): close BE-FE gaps — fund-member edit, NAV propose; disable retry-lp-mint (v3-48)
5 files · +241 · -17
- Admin
- Route (deposits)
- Route (fund-detail)
- nav-changes-panel
- Docs
- 14-decisions.md
- 17-changelog.md
fix 12:50:40 c758111e
fix(admin): edit admin user name + reachable delete for all roles (v3-47)
4 files · +63 · -10
- Admin
- Route (admin-settings)
- Docs
- 09-rbac.md
- 14-decisions.md
- 17-changelog.md
fix 12:15:43 17251363
fix(admin): add Name field to invite modal + send invite email
6 files · +96 · -6
- Admin
- Route (admin-settings)
- Admin API
- admin-users
- Infra
- CDK Stack (route-group-stack)
- index.ts
- templates.ts
- Lambda API
- admin-users.post.invite
docs 12:15:35 d0d32fb5
docs: clarify instant vs epoch redemption as a gating choice orthogonal to maturity (v3-46)
4 files · +43 · -3
- Docs
- 04-pool-models.md
- 07-redemption.md
- 14-decisions.md
- 17-changelog.md
2026-06-25 (Thu)
🟢 ch/product
fix 17:50:26 fb024786
fix(admin): allow editing collateral ratio on a live pool
1 files · +4
- Admin
- permissions
fix 17:14:23 95affff4
fix(admin): grey out locked native selects in pool edit
1 files · +4 · -1
- Admin
- constants
feat 17:14:23 b22d368f
feat(admin): show loading state on pool deposit pause/resume buttons
2 files · +25 · -8
- Admin
- Route (pool-detail)
- pool-controls
fix 16:52:16 d6c46d79
fix(admin): prevent linking a pool to an inactive fund
1 files · +33 · -16
- Admin
- fund-select
refactor 16:48:10 f5eaa47d
refactor(pools): drop legacy collateral_type enum (v3-35 display-only)
9 files · +25 · -47
- Admin
- types
- Admin API
- pools
- Docs
- 11-db-schema.md
- Infra
- DB 0037_drop_pool_collateral_type.sql
- DB schema.sql
- Investor Web
- Route (pools)
- Investor Web API
- pools
- Lambda API
- pools.get.list
- pools.post.create
fix 16:48:10 bdf13429
fix(admin): surface fund primary contact in list & flag inactive funds on pool-create
4 files · +12 · -5
- Admin
- fund-select
- types
- Admin UI
- status-badge
- Lambda API
- funds.get.list
fix 16:08:04 9fb43655
fix(web): persist SIWE session across refresh + portfolio/nav UI
5 files · +143 · -105
- Investor Web
- Route (portfolio)
- Widget (header)
- client
- provider
- Investor Web UI
- MobileBottomNav
fix 15:07:54 852991e3
fix(infra): force HttpApi replacement to escape route-key 409 during nested migration
1 files · +7 · -1
- Infra
- CDK Stack (api-stack)
fix 15:07:54 6cb19890
fix(infra): add apiRoutes migration toggle to move routes to nested stacks without 409
1 files · +28 · -19
- Infra
- CDK Stack (api-stack)
refactor 15:07:54 0a94717b
refactor(infra): split ApiStack routes into nested stacks; drop dead pool-compositions route
4 files · +214 · -178
- Infra
- CDK Stack (api-stack)
- CDK Stack (lambda-helpers)
- CDK Stack (route-group-stack)
- Lambda API
- pool-compositions.get.list
fix 15:04:42 ee408cb9
fix(kyc): frontend gating, state display & SumSub event handling (web + admin)
14 files · +232 · -45
- Admin
- Route (kyc)
- pool-controls
- Admin API
- kyc
- Investor Web
- Route (dashboard)
- Route (pool.$id)
- Route (portfolio)
- Route (settings)
- auth-button
- use-redeem-flow
- use-reinvest-flow
- Investor Web API
- kyc
- use-kyc
- Investor Web UI
- KYCModal
- KYCStatusCard
fix 15:04:42 40b46a99
fix(kyc): backend audit fixes — status mapping, sync, renewal, jurisdiction, tx-revert
11 files · +208 · -75
- Docs
- 04-pool-models.md
- Infra
- apply-review.ts
- client.ts
- sync-review.ts
- Lambda API
- kyc.get.status
- kyc.post.access-token
- kyc.post.mint-sbt
- kyc.post.sync
- kyc.scheduler.reconcile-sweep
- pools.post.governance
- users.get.list
feat 15:04:42 a906f07a
feat: complete pool-mutability governance + on-chain redemption gating (v3-43)
24 files · +660 · -35
- Admin
- payload
- permissions
- pool-controls
- step-models
- types
- Admin API
- pools
- Contract Test
- PlatformPoolEpoch.t
- Docs
- 11-db-schema.md
- Infra
- DB 0034_governance_jurisdiction_change_type.sql
- DB 0035_governance_redemption_gating_change_type.sql
- DB 0036_pools_fx_rate_source.sql
- DB schema.sql
- create-pool.ts
- governance.ts
- index.ts
- Lambda API
- pools.patch.update
- pools.post.create
- pools.post.governance
- pools.worker.deploy
- Smart Contract
- PlatformPool
- PlatformPool.abi.json
- PlatformPoolStorage
- RedemptionLib
- sepolia.md
feat 14:57:05 a7ee89df
feat: enforce pool-attribute mutability across contract, lambda, and admin UI (v3-43)
14 files · +826 · -74
- Admin
- Route (pool-edit)
- payload
- permissions
- step-financial
- step-risk-penalty
- Contract Test
- PlatformPool.t
- Infra
- governance.ts
- index.ts
- Lambda API
- pools.patch.update
- pools.post.create
- Smart Contract
- PlatformPool
- PlatformPool.abi.json
- PlatformPoolStorage
- sepolia.md
🔵 jy/product
docs 17:10:15 963bf91d
docs(notifications): add Notification System reference page (v3-44/45)
4 files · +118 · -2
- Docs
- 13-operations.md
- 17-changelog.md
- 22-notifications.md
- config.ts
feat 16:24:30 809fcc02
feat(web,admin): redesign notification preferences — in-app always-on + collapse essentials (v3-44)
2 files · +120 · -93
- Admin
- Route (my-settings)
- Investor Web
- Route (settings)
fix 16:18:26 4d00491d
fix(email): verification email uses branded Direction B template (v3-44)
1 files · +22 · -30
- Infra
- templates.ts
feat 14:56:34 1ed00f88
feat(notifications): admin notification-center BE endpoints (v3-44 model A)
6 files · +211
- Infra
- CDK Stack (api-stack)
- admin-feed-scope.ts
- Lambda API
- admin-notifications.get.list
- admin-notifications.get.unread-count
- admin-notifications.patch.read
- admin-notifications.patch.read-all
feat 14:45:37 593f297d
feat(admin-web): notification center FE — bell + feed (v3-44 admin center, model A)
7 files · +348 · -5
- Admin
- Route (notifications)
- header
- routes
- Admin API
- index
- notification-center
- use-notification-center
feat 13:50:12 31eeef35
feat(notifications): operator/FM awareness variants for deposit/yield/maturity (v3-44 #c, D3)
5 files · +138 · -2
- Infra
- copy.ts
- deposit.ts
- Lambda API
- deposits.post.create
- pools.scheduler.lifecycle
- yield-distributions.post.create
fix 13:47:28 2118c94d
fix(notifications): sync failure-event email heroes to copy sheet (v3-44)
1 files · +5 · -5
- Infra
- copy.ts
feat 13:36:21 37a1202a
feat(notifications): pool announcements use Direction B template + payload (v3-44 #3b)
3 files · +111 · -65
- Infra
- create-system-update.ts
- index.ts
- notification-email.ts
feat 12:36:25 dbba808f
feat(notifications): fm_notification_failed admin alert on terminal send failure (v3-44 #3a)
1 files · +31 · -1
- Lambda API
- notification-logs.scheduler.send
feat 12:14:02 96f15d86
feat(notifications): preferences persistence endpoints + critical-locked (v3-44 (c))
3 files · +89
- Infra
- CDK Stack (api-stack)
- Lambda API
- notification-preferences.get.list
- notification-preferences.put.update
feat 12:01:39 d1db4fe7
feat(web/settings): surface pending email change while current email stays verified (v3-45)
1 files · +13 · -5
- Investor Web
- Route (settings)
docs 11:57:43 e039023d
docs(notifications): investor email verification (v3-45) — schema + decisions + changelog
3 files · +44 · -1
- Docs
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
feat 11:54:03 7c42273e
feat(notifications): investor email registration + verification flow (v3-44 email channel)
14 files · +479 · -9
- Infra
- CDK Stack (api-stack)
- DB 0033_user_email_verification.sql
- DB schema.sql
- index.ts
- templates.ts
- Investor Web
- Route (settings)
- Route (verify-email)
- routes
- Investor Web API
- use-user-settings
- user-settings
- Lambda API
- auth.post.verify-email
- notification-logs.scheduler.send
- users.get.me
- users.post.email
fix 11:32:29 1bf3f3fc
fix(notifications): worker env base URLs (deep-link) + in-app detail modal (v3-44)
4 files · +82 · -1
- Infra
- CDK Stack (api-stack)
- notify.ts
- Investor Web
- Route (notifications)
- Investor Web API
- notifications
feat 11:22:10 89df5cc0
feat(web/notifications): render payload.in_app + clickable deep-links + POOL/ACCOUNT filters (v3-44)
2 files · +93 · -23
- Investor Web
- Route (notifications)
- Investor Web API
- notifications
chore 10:51:36 ab35b774
chore(notifications): send worker cron 2min -> 1min (lower email latency)
1 files · +1 · -1
- Infra
- CDK Stack (api-stack)
2026-06-24 (Wed)
🟢 ch/product
No activity
🔵 jy/product
feat 18:31:09 e3e18b55
feat(notifications): SES send worker + in-app read endpoints + producers (v3-44)
29 files · +1941 · -8
- Docs
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- Infra
- CDK Stack (api-stack)
- DB 0032_notification_payload.sql
- DB schema.sql
- apply-review.ts
- copy.ts
- deposit.ts
- epoch.ts
- freeze.ts
- index.ts
- notification-email.ts
- notify.ts
- redemption.ts
- Lambda API
- admin-users.patch.update
- deposits.post.create
- fund-invites.post.accept
- nav-changes.post.cancel
- nav-changes.post.propose
- notification-logs.scheduler.send
- notifications.get.list
- notifications.get.unread-count
- notifications.patch.read
- notifications.patch.read-all
- pools.scheduler.lifecycle
- redemption-requests.post.create
- redemption-requests.post.reject
- yield-distributions.post.create
docs 17:05:24 83302193
docs(08): clarify Field Sync table — readable after-deploy editability
1 files · +15 · -6
- Docs
- 08-smart-contracts.md
feat 16:18:32 944d8c94
feat(admin): consolidate pool controls + risk-tiered friction & impact copy
3 files · +151 · -34
- Admin
- Route (pool-detail)
- overview-tab
- pool-controls
fix 15:42:44 aed00cc5
fix(pool-form): mark Start Date as required for publish (create + edit)
2 files · +8 · -2
- Admin
- step-save
- step-save-publish
fix 15:29:49 d84cc746
fix(pool-edit): restore Maturity field + persist DRAFT Class B edits; fix Lockup display
6 files · +44 · -8
- Admin
- payload
- permissions
- step-financial
- step-save
- Admin API
- pools
- Lambda API
- pools.patch.update
fix 15:19:28 d984aaf6
fix(web): remove Inflow/Outflow card from investor pool detail (Performance tab)
1 files · -48
- Investor Web
- Widget (performance-tab)
feat 15:19:00 2c092c67
feat(pools/BE,v3-43): capacity raise-only after deploy; clarify Class B lock rationale
1 files · +37 · -6
- Lambda API
- pools.patch.update
docs 14:48:46 89bbdc66
docs(v3-43): pool field editability — phase-aware; capacity raise-only, min_investment locked
4 files · +51 · -4
- Docs
- 04-pool-models.md
- 08-smart-contracts.md
- 14-decisions.md
- 17-changelog.md
fix 14:24:23 6d3c90b3
fix(audit/v3-41): dashboard activity rows 404 on click
1 files · +31 · -1
- Admin API
- dashboard
docs 12:12:07 eaccce4f
docs(v3-42): FM fund-scoped Activity access; reconcile 09-rbac contradiction
3 files · +46 · -5
- Docs
- 09-rbac.md
- 14-decisions.md
- 17-changelog.md
feat 12:10:02 6a440b23
feat(audit/v3-41): open audit-log route to FM as fund-scoped "Activity" view
5 files · +69 · -18
- Admin
- Route (audit-log)
- Route (dashboard)
- route-permissions
- sidebar
- types
feat 11:44:23 cb410351
feat(audit/v3-41): fund-scope activity feed for FM + move dashboard "More" link
2 files · +30 · -18
- Admin
- Route (dashboard)
- Lambda API
- activity-events.get.list
feat 11:24:00 3f9c527c
feat(admin/#24): Governance & Lifecycle History panel from audit feed (v3-41)
3 files · +99
- Admin
- Route (pool-detail)
- governance-history-panel
- index
fix 11:17:41 6c49f86b
fix(audit/v3-41): relabel KYC events in audit_feed (no raw SumSub codes)
2 files · +77 · -2
- Infra
- DB 0031_audit_feed_kyc_labels.sql
- DB schema.sql
feat 11:00:40 d3691474
feat(admin/#21): wire PENDING_RESERVE funding button to useFundRedemption
1 files · +33 · -5
- Admin
- Route (redemptions)
2026-06-23 (Tue)
🟢 ch/product
feat 17:48:29 673196dc
feat(fund-data): rename fund-data to external-pool-data + daily TVL/NAV history
22 files · +538 · -187
- Docs
- 11-db-schema.md
- Infra
- CDK Stack (api-stack)
- DB 0027_pool_tvl_history_daily_idempotency.sql
- DB 0028_rename_fund_data_to_external_pool_data.sql
- DB backfill_nav_history_genesis.sql
- DB backfill_pool_tvl_history.sql
- DB schema.sql
- DB seed.sql
- cache.ts
- resolver.ts
- sync.ts
- Investor Web
- Widget (performance-tab)
- Widget (risk-disclosure)
- Investor Web API
- fund-data
- nav-changes
- Lambda API
- fund-data.scheduler.sync
- pools.get.fund-data-dpd
- pools.get.fund-data-history
- pools.get.fund-data-summary
- pools.get.nav-history
- pools.post.create
- pools.scheduler.tvl-snapshot
feat 17:48:29 af245426
feat(contract): harden setEpochDurationDays as create-time-only (v3-38)
4 files · +150 · -22
- Contract Test
- PlatformPoolEpoch.t
- Smart Contract
- PlatformPool
- PlatformPool.abi.json
- sepolia.md
fix 17:48:29 7c15e7db
fix(admin): distinguish KYC Not Started vs In Review in the KYC tab
4 files · +11 · -16
- Admin
- Route (dashboard)
- Route (kyc)
- Admin API
- kyc
- Admin UI
- status-badge
fix 17:48:29 107b0250
fix(admin): gate dev mock auto sign-in behind VITE_DEV_AUTOLOGIN (default off)
1 files · +10 · -4
- Admin
- provider
fix 17:48:29 ab434823
fix(admin): show redemption summary on every tab, not just Funding
1 files · +17 · -21
- Admin
- Route (redemptions)
fix 17:48:29 9b84f02a
fix(web): correct post-deposit UX and capacity bar rendering (QA Bug 1/2)
5 files · +151 · -54
- Investor Web
- PoolCard
- Widget (invest-sidebar)
- use-invest-flow
- use-redeem-flow
- use-reinvest-flow
fix 11:52:24 79e0c806
fix(dashboard): scope Recent Activity to 48h and link older events to Audit Log
1 files · +28 · -1
- Admin
- Route (dashboard)
feat 11:12:07 8c162823
feat(auth): add dev kill-switch to bypass admin 2FA
4 files · +106 · -1
- Infra
- CDK Stack (api-stack)
- admin-mfa.ts
- Lambda API
- auth.post.admin-login
- auth.post.admin-oauth
refactor 11:12:02 37563cab
refactor(admin): consolidate fund-managers routes into /funds
8 files · +26 · -337
- Admin
- Route (fund-detail)
- Route (fund-manager-detail)
- Route (fund-manager-onboard)
- Route (fund-managers)
- Route (funds)
- route-permissions
- routes
- Admin API
- dashboard
🔵 jy/product
feat 19:02:32 0257c246
feat(audit/v3-41): admin CSV export endpoint + 5y retention archive sweep
3 files · +176
- Infra
- CDK Stack (api-stack)
- Lambda API
- activity-events.get.export
- activity-events.scheduler.archive
feat 18:58:34 0d4aeb45
feat(audit/v3-41): unified audit_feed view + GET /activity-events reads it
4 files · +240 · -12
- Docs
- 11-db-schema.md
- Infra
- DB 0030_audit_feed_view.sql
- DB schema.sql
- Lambda API
- activity-events.get.list
feat 18:57:48 253b2a07
feat(admin/#23): NAV Changes panel with reserve_consumed (v3-16)
4 files · +111 · -1
- Admin
- Route (pool-detail)
- index
- nav-changes-panel
- Admin API
- nav-changes
feat 18:42:25 0d80934c
feat(audit/v3-41): human-actor activity_events writers on privileged admin actions
10 files · +267
- Admin API
- dashboard
- Infra
- activity.ts
- Lambda API
- pools.post.freeze
- pools.post.governance
- pools.post.impairment
- pools.post.lifecycle
- pools.post.pause
- pools.post.wind-down
- redemption-requests.post.approve
- redemption-requests.post.reject
docs 18:39:25 6f2ad9e2
docs(decisions): v3-35 collateral soft wording + v3-40 preview tier + v3-41 audit log
4 files · +55 · -4
- Docs
- 04-pool-models.md
- 13-operations.md
- 14-decisions.md
- 17-changelog.md
feat 18:29:15 66158631
feat(#32①/v3-35): soft transition collateral_type enum → collateral_description
21 files · +97 · -107
- Admin
- Route (pool-create)
- Route (pool-detail)
- Route (pools)
- collateral-badge
- configuration-tab
- payload
- permissions
- step-risk-penalty
- step-save
- step-save-publish
- types
- validation
- Admin API
- pools
- Infra
- DB 0029_collateral_description_backfill.sql
- Investor Web
- Route (portfolio)
- Widget (HoldingCard)
- Widget (risk-disclosure)
- Lambda API
- pools.post.create
docs 18:22:46 0d087852
docs(epoch): v3-38 contract hardening — mark implemented & tested
3 files · +46 · -3
- Docs
- 08-smart-contracts.md
- 14-decisions.md
- 17-changelog.md
feat 18:04:32 768c8d6e
feat(admin): yield fee preview (#12) + advanced pool config fields (#22/#32)
18 files · +442 · -126
- Admin
- Route (pool-create)
- Route (yield)
- create-distribution-form
- index
- payload
- permissions
- step-financial
- step-risk-penalty
- types
- validation
- Admin API
- pools
- Lambda API
- pools.get.list
- pools.patch.update
- pools.post.create
feat 18:03:09 79000a48
feat(redeem): epoch exit-right fallback UX — 2-stage settle (v3-31)
3 files · +146 · -4
- Investor Web
- Route (portfolio-activity)
- index
- use-settle-epoch-flow
feat 17:16:53 beeacd4a
feat(pool-edit): per-field lock reasons + locked redemption-model display (#41, v3-38)
4 files · +40 · -8
- Admin
- permissions
- step-models
- step-risk-penalty
- types
docs 17:13:44 e0ecb4f3
docs: tranche first-loss = v1 off-chain (Lambda) trust model (v3-39)
3 files · +40
- Docs
- 04-pool-models.md
- 14-decisions.md
- 17-changelog.md
docs 16:59:39 511328d5
docs(epoch): v3-38 — enforce create-only on-chain (revert once LP>0)
5 files · +8 · -8
- Docs
- 04-pool-models.md
- 07-redemption.md
- 08-smart-contracts.md
- 14-decisions.md
- 17-changelog.md
feat 16:28:03 c3597ac6
feat(epoch): show expected settlement date + cadence guidance on epoch field
1 files · +28 · -5
- Admin
- step-models
feat 16:24:36 251c7bb2
feat(epoch): set redemption epoch at pool creation + investor settlement countdown (v3-26/v3-38)
12 files · +176 · -1
- Admin
- Route (pool-create)
- payload
- step-models
- types
- validation
- Admin API
- pools
- Infra
- create-pool.ts
- Investor Web
- Route (pool.$id)
- Widget (epoch-countdown)
- Widget (index)
- Lambda API
- pools.post.create
- pools.worker.deploy
docs 14:30:02 b40b68a1
docs(epoch): v3-38 — epoch duration set at pool creation only
5 files · +50 · -3
- Docs
- 04-pool-models.md
- 07-redemption.md
- 08-smart-contracts.md
- 14-decisions.md
- 17-changelog.md
docs 14:11:44 9b8a9a44
docs: adopt Gnosis Safe multisig for cold roles (v3-37)
4 files · +43 · -5
- Docs
- 09-rbac.md
- 09a-custody.md
- 14-decisions.md
- 17-changelog.md
2026-06-22 (Mon)
🟢 ch/product
fix 18:24:23 4dbb657b
fix(deposits): populate DepositTimeline with the v3.0 atomic lifecycle
2 files · +33 · -10
- Admin
- deposit-timeline
- Admin API
- deposits
fix 18:16:45 09d79204
fix(investors): derive investor count live, group Investors tab by investor
8 files · +214 · -39
- Admin
- Route (pool-detail)
- investors-tab
- Docs
- 11-db-schema.md
- Infra
- DB 0026_platform_stats_live_investors.sql
- DB schema.sql
- investor-stats.ts
- Lambda API
- dashboard.get.stats
- pools.get.list
chore 17:52:30 de62696a
chore(db): drop obsolete fund_pool_assignments junction (migration 0025)
4 files · +18 · -36
- Docs
- 11-db-schema.md
- Infra
- DB 0025_drop_fund_pool_assignments.sql
- DB schema.sql
- DB seed.sql
fix 17:52:20 9fa7dc58
fix(funds): derive linked pools from pools.fund_id, not the dead junction
2 files · +9 · -7
- Admin API
- funds
- Lambda API
- funds.get.list
feat 17:51:17 0ebe64b4
feat(shortfall): persist + surface funding_shortfall amount KPI (v3-26)
9 files · +136 · -11
- Admin
- Route (dashboard)
- Route (fund-detail)
- Admin API
- dashboard
- Infra
- DB 0024_redemption_epochs_funding_shortfall.sql
- engine.ts
- epoch.ts
- events.ts
- redemption.ts
- Lambda API
- dashboard.get.stats
docs 17:14:15 e1dfd0af
docs: close unterminated v3-28/v3-32 changelog block (fix VitePress build)
1 files · +3
- Docs
- 17-changelog.md
docs 17:10:09 d035e550
docs(contract): document RedemptionLib EIP-170 extraction + record Sepolia redeploy
3 files · +104 · -54
- Docs
- 08-smart-contracts.md
- 17-changelog.md
- Smart Contract
- sepolia.md
refactor 17:08:06 b485acc1
refactor(contract): extract redemption into RedemptionLib (AppStorage) to fit EIP-170
9 files · +1390 · -1585
- Contract Test
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolNonCustodial.t
- Smart Contract
- PlatformPool
- PlatformPool.abi.json
- PlatformPoolInterfaces
- PlatformPoolStorage
- PoolCommonLib
- RedemptionLib
fix 15:55:03 1797e675
fix(admin): redirect authenticated users away from /login and /super
2 files · +28 · -3
- Admin
- Route (login)
- Route (super-login)
feat 15:55:03 02164855
feat(contract): non-custodial v3 — KYC UUPS upgradeable, epoch redemption, EIP-170 lib extraction
17 files · +1281 · -552
- Contract Deploy
- DeployFactory.s
- DeployPlatformKYCSoulbound.s
- DeployPoolImplementation.s
- DeployV3Sepolia.s
- Contract Test
- PlatformKYCSoulbound.t
- PlatformPool.t
- PlatformPoolEpoch.t
- PlatformPoolFactory.t
- PlatformPoolFlows.t
- SequenceDiagramVerification.t
- Smart Contract
- PlatformKYCSoulbound
- PlatformKYCSoulbound.abi.json
- PlatformPool
- PlatformPool.abi.json
- foundry.lock
- foundry.toml
- sepolia.md
fix 12:16:31 50d86e15
fix(admin): disambiguate admin_user_permissions embed in GET /admin-users
1 files · +6 · -1
- Lambda API
- admin-users.get.list
feat 12:16:23 3dfa8797
feat(contract): on-chain epoch redemption + EIP-170 library extraction
9 files · +2828 · -30
- Contract Test
- KYCProxyHelper
- PlatformKYCSoulboundV2Mock
- PlatformPoolEpoch.t
- PlatformPoolNonCustodial.t
- Smart Contract
- PlatformPool
- PlatformPool.abi.json
- PoolConfigLib
- StablecoinAdminLib
- openzeppelin-contracts-upgradeable
feat 11:54:14 a67c40d5
feat(pool): time-bound emergency freeze + permissionless redemption fallback (v3-28/31)
27 files · +1095 · -60
- Admin
- pool-controls
- Admin API
- pools
- Docs
- 08-smart-contracts.md
- 09-rbac.md
- 11-db-schema.md
- 14-decisions.md
- 15-api-reference.md
- Infra
- CDK Stack (api-stack)
- DB 0023_pool_freeze_started_at.sql
- DB schema.sql
- engine.ts
- events.ts
- fallback-redemption.ts
- freeze.ts
- index.ts
- redemption.ts
- Investor Web
- Route (portfolio-activity)
- Widget (invest-sidebar)
- Investor Web API
- pools
- redemption-requests
- use-redemption-requests
- Lambda API
- pools.get.list
- pools.post.freeze
- redemption-requests.post.claim-fallback
- Other
- .gitmodules
- Smart Contract
- openzeppelin-contracts-upgradeable
feat 11:52:26 6ccd040f
feat(redemption): epoch-based pro-rata redemption with forward pricing (v3-26/31/32/34)
41 files · +2911 · -267
- Admin
- Route (redemptions)
- Admin API
- pools
- redemption-requests
- use-redemption-requests
- Admin UI
- status-badge
- Docs
- 04-pool-models.md
- 07-redemption.md
- 08-smart-contracts.md
- 10-status-machines.md
- 11-db-schema.md
- 12-triggers.md
- 14-decisions.md
- 15-api-reference.md
- 18-failure-types.md
- Infra
- CDK Stack (api-stack)
- DB 0021_epoch_redemption.sql
- DB schema.sql
- DB seed.sql
- engine.ts
- epoch-redemption.ts
- epoch.ts
- events.ts
- index.ts
- Investor Web
- Route (portfolio-activity)
- index
- use-cancel-redemption-flow
- Investor Web API
- pools
- redemption-requests
- use-redemption-requests
- Investor Web UI
- status-badge
- Lambda API
- redemption-requests.get.list
- redemption-requests.post.approve
- redemption-requests.post.cancel
- redemption-requests.post.claim
- redemption-requests.post.create
- redemption-requests.post.fund
- redemption-requests.scheduler.epoch-execute
- redemption-requests.scheduler.partner-funding
- Other
- CLAUDE.md
- README.md
- packages/types/src/index.ts
refactor 10:56:23 fd5a1a98
refactor(deposits): drop deprecated Receipt-NFT / Escrow / D+7-refund remnants
11 files · +175 · -47
- Admin
- deposit-timeline
- escrow-badge
- index
- investors-tab
- Admin API
- deposits
- Docs
- 13-operations.md
- Infra
- DB 0020_rename_complete_deposit_fn.sql
- DB 0022_drop_deposit_receipt_escrow_cols.sql
- deposit.ts
- Investor Web API
- deposits
- Lambda API
- deposits.post.create
🔵 jy/product
docs 16:05:31 9efcd1d9
docs: v3-36 (per-fund stats + shortfall KPI) + reconcile v3-28/v3-32 to merged contract
3 files · +46 · -14
- Docs
- 08-smart-contracts.md
- 14-decisions.md
- 17-changelog.md
docs 15:56:35 a077df1d
docs: reconcile v3-28 / v3-32 status with contract code (2026-06-22)
3 files · +20 · -8
- Docs
- 08-smart-contracts.md
- 14-decisions.md
- 17-changelog.md
feat 15:52:33 b623d577
feat: shortfall (awaiting partner funding) count KPI (v3-26)
4 files · +23 · -4
- Admin
- Route (dashboard)
- Route (fund-detail)
- Admin API
- dashboard
- Lambda API
- dashboard.get.stats
feat 15:31:33 2b9a2ee3
feat: per-fund stats drill-down on fund detail (v3-23)
4 files · +67 · -12
- Admin
- Route (fund-detail)
- Admin API
- dashboard
- use-dashboard
- Lambda API
- dashboard.get.stats
feat 15:17:43 e26dbfba
feat(admin): show fund-scoped stats to FM on dashboard (v3-23 read-authz)
1 files · +10 · -12
- Admin
- Route (dashboard)
feat 15:04:09 4e4518ba
feat(admin): FM read-only guards for yield distribution + pool config
3 files · +23 · -8
- Admin
- Route (pool-detail)
- Route (yield)
- configuration-tab
fix 14:31:29 d45ef6df
fix(web,admin): reconcile epoch-redemption FE with merged backend (v3-26)
5 files · +6 · -18
- Admin API
- pools
- Admin UI
- status-badge
- Investor Web
- Route (portfolio-activity)
- Investor Web UI
- TransactionDetailDrawer
- status-badge
feat 11:06:06 d2ea94b4
feat(admin): show redemption epoch cadence (read-only) in pool config (v3-26)
2 files · +13
- Admin
- configuration-tab
- Admin API
- pools
feat 10:40:17 97ebd7f9
feat(web): epoch redemption investor UX (v3-26)
5 files · +129 · -15
- Investor Web
- Route (portfolio)
- Route (portfolio-activity)
- Investor Web API
- pools
- Investor Web UI
- RedeemModal
- TransactionDetailDrawer
2026-06-20 (Sat)
🟢 ch/product
No activity
🔵 jy/product
feat 17:19:32 a4e207b9
feat(redemption): scaffold epoch redemption states (v3-26)
3 files · +17
- Admin UI
- status-badge
- Investor Web UI
- status-badge
- Other
- packages/types/src/index.ts
fix 16:49:02 0e160f76
fix(fm-onboard): handle invite accept when signed in as the wrong account
5 files · +94 · -10
- Admin
- Route (fund-invite-accept)
- client
- provider
- types
- Lambda API
- fund-invites.get.list
2026-06-18 (Thu)
🟢 ch/product
feat 18:09:26 6eef3e2e
feat(infra): add SES domain identity for transactional email
3 files · +83 · -2
- Infra
- CDK Stack (ses-stack)
- app.ts
- environment.ts
fix 18:09:26 b34b6633
fix(infra): share one Lambda execution role to stay under the 500-resource limit
1 files · +35
- Infra
- CDK Stack (api-stack)
refactor 16:51:20 dc336d0a
refactor(pools): align config sync with 08 v3-29 + drop pool_type binary
41 files · +467 · -190
- Admin
- Route (pool-detail)
- Route (pool-edit)
- Route (pools)
- Route (redemptions)
- Route (yield)
- configuration-tab
- index
- overview-tab
- payload
- permissions
- Admin API
- pools
- use-pools
- Docs
- 08-smart-contracts.md
- 11-db-schema.md
- 15-api-reference.md
- Infra
- CDK Stack (api-stack)
- DB 0018_drop_pool_investment_blocked.sql
- DB 0019_drop_pool_type.sql
- DB schema.sql
- DB seed.sql
- index.ts
- pause.ts
- resolver.ts
- Investor Web
- PoolCard
- Route (dashboard)
- Route (pool.$id)
- Route (pools)
- Route (portfolio)
- Widget (invest-sidebar)
- Investor Web API
- fund-data
- pools
- Lambda API
- deposits.post.create
- fund-data.scheduler.sync
- pools.get.list
- pools.patch.update
- pools.post.create
- pools.post.pause
- pools.scheduler.lifecycle
- yield.post.reinvest
- Other
- CLAUDE.md
- packages/types/src/index.ts
refactor 14:36:16 44f61bc6
refactor(pools): drop redundant pool columns (issuer, escrow/receipt address)
19 files · +61 · -61
- Admin
- Route (pool-create)
- Route (pool-edit)
- deploy-status-banner
- payload
- permissions
- step-basic-info
- types
- Admin API
- pools
- Docs
- 11-db-schema.md
- Infra
- DB 0016_drop_pool_issuer.sql
- DB 0017_drop_pool_escrow_receipt_address.sql
- DB schema.sql
- DB seed.sql
- Investor Web API
- pools
- Lambda API
- pools.get.list
- pools.patch.update
- pools.post.create
fix 14:36:16 c3064000
fix(admin): pin sidebar so it stays fixed on page scroll
1 files · +11 · -1
- Admin UI
- page-layout
feat 14:36:16 6189a243
feat(admin): revocable sessions + log out of all/other devices
18 files · +542 · -13
- Admin
- Route (my-settings)
- Admin API
- auth
- index
- keys
- use-auth-sessions
- Docs
- 11-db-schema.md
- 15-api-reference.md
- Infra
- CDK Stack (api-stack)
- index.ts
- jwt.ts
- middleware.ts
- sessions.ts
- Lambda API
- auth.get.admin-sessions
- auth.post.admin-2fa-verify
- auth.post.admin-logout-all
- auth.post.admin-oauth
- auth.post.admin-session-revoke
- auth.post.refresh
fix 14:36:16 bf8c009b
fix(web): reset auth + clear cache on wallet account switch
2 files · +33 · -4
- Investor Web
- provider
- use-sign-in
refactor 14:36:16 4144ae7a
refactor(pools): remove per-pool multi-sig (signing_method) selection
19 files · +27 · -107
- Admin
- Route (admin-settings)
- Route (pool-create)
- Route (yield)
- index
- operations-tab
- payload
- signing-method-badge
- step-models
- step-save-publish
- types
- Admin API
- pools
- Docs
- 04-pool-models.md
- 09-rbac.md
- 11-db-schema.md
- Infra
- DB 0015_drop_pool_signing_method.sql
- DB schema.sql
- Investor Web
- Route (help)
- Lambda API
- pools.patch.update
- pools.post.create
fix 14:36:16 59c20839
fix(admin): persist pool-edit publish, lock reserve %, validate edit inputs
6 files · +78 · -22
- Admin
- Route (pool-create)
- Route (pool-edit)
- configuration-tab
- step-financial
- step-models
- step-risk-penalty
🔵 jy/product
docs 18:23:52 0942104d
docs: v3-29/v3-30 decision + changelog updates; CLAUDE.md KYC status
6 files · +168 · -28
- Docs
- 09-rbac.md
- 09a-custody.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- Other
- CLAUDE.md
docs 18:17:29 e12f2c66
docs(kyc): note deferred status for cross-VASP entry (G2) + re-verification (G6)
1 files · +8
- Docs
- 03-kyc-identity.md
feat 17:50:45 52c38915
feat(web): KYB feature-flag gate + returning-user fast-path in KYCModal (G5, G2)
2 files · +42 · -2
- Investor Web API
- kyc
- Investor Web UI
- KYCModal
feat 17:45:10 11185abb
feat(web): pre-flight per-pool KYC eligibility warning (G3)
6 files · +128 · -3
- Infra
- CDK Stack (api-stack)
- Investor Web
- Route (pool.$id)
- Widget (invest-sidebar)
- Investor Web API
- pools
- use-pools
- Lambda API
- pools.get.eligibility
feat 17:35:03 93d74ec7
feat(admin): enforce TOTP on high-privilege OAuth logins (A1)
9 files · +343 · -282
- Admin
- Route (auth-callback)
- Route (super-login)
- auth-context
- index
- provider
- totp-step
- types
- Lambda API
- auth.post.admin-2fa-verify
- auth.post.admin-oauth
feat 17:17:06 f808d93d
feat(web): dashboard T-30 KYC expiry banner (G4)
3 files · +43 · -1
- Investor Web
- Route (dashboard)
- Investor Web API
- user-settings
- Lambda API
- kyc.get.status
fix 16:42:41 89713423
fix(admin): drop unused updateMutation in admin-settings
1 files · +1 · -2
- Admin
- Route (admin-settings)
feat 16:39:03 22b666f7
feat(admin): operator page-permission editing (PATCH /admin-users/{id}/permissions)
6 files · +155 · -10
- Admin
- Route (admin-settings)
- Admin API
- admin-users
- use-admin-users
- Infra
- CDK Stack (api-stack)
- Lambda API
- admin-users.get.list
- admin-users.patch.permissions
feat 15:45:57 dd907560
feat(admin): FM onboarding wizard with invite/accept flow
22 files · +2448 · -454
- Admin
- Route (auth-callback)
- Route (fund-detail)
- Route (fund-invite-accept)
- Route (fund-manager-detail)
- Route (fund-manager-onboard)
- Route (fund-managers)
- routes
- Admin API
- fund-invites
- index
- keys
- use-fund-invites
- Infra
- CDK Stack (api-stack)
- client.ts
- environment.ts
- index.ts
- package.json
- templates.ts
- Lambda API
- fund-invites.delete
- fund-invites.get.list
- fund-invites.post.accept
- fund-invites.post.create
- Other
- pnpm-lock.yaml
docs 12:56:11 0a2fcc8d
docs(v3-29): DB↔on-chain field sync + is_paused on-chain + deprecate investment_blocked
3 files · +50
- Docs
- 08-smart-contracts.md
- 14-decisions.md
- 17-changelog.md
2026-06-17 (Wed)
🟢 ch/product
fix 15:12:59 fa6f3023
fix(admin): feedback & deploy status for draft pool publish/save
7 files · +131 · -965
- Admin
- Route (pool-detail)
- Route (pool-edit)
- deploy-status-banner
- package
- root
- Admin API
- pools
- Other
- pnpm-lock.yaml
feat 13:54:09 930709bf
feat(admin): categorize pool-create Step 5 summary & fill missing fields
1 files · +111 · -27
- Admin
- step-save-publish
fix 13:39:45 8ab46ec6
fix(pools): validate pool-create Step 4 inputs & fix on-chain unit gaps
8 files · +195 · -41
- Admin
- step-risk-penalty
- validation
- Lambda API
- pools.patch.update
- pools.post.create
- pools.post.governance
- pools.worker.deploy
fix 11:10:56 bb6ebb59
fix(admin): validate pool-create Step 3 custom yield interval
2 files · +15 · -6
- Admin
- step-models
- validation
fix 11:10:56 8832f1cf
fix(admin): validate & format pool-create Step 2 financial inputs
5 files · +102 · -9
- Admin
- index
- number-format
- step-financial
- validation
🔵 jy/product
docs 17:52:28 50e7473f
docs(i18n): English SoT scaffold + KO locale, English-clean backend docs
33 files · +676 · -120
- Docs
- 01-overview.md
- 02-core-concepts.md
- 03-kyc-identity.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 09-rbac.md
- 09a-custody.md
- 10-status-machines.md
- 11-db-schema.md
- 12-triggers.md
- 13-operations.md
- 14-decisions.md
- 15-api-reference.md
- 16-timeline.md
- 17-changelog.md
- 18-failure-types.md
- 19-activity.md
- 20-joob-pool-config.md
- 21-holder-verification.md
- config.ts
- index.md
docs 16:33:51 a19eee15
docs(custody): consolidate custody into 09a + canonical timelock table
6 files · +122 · -2
- Docs
- 04-pool-models.md
- 08-smart-contracts.md
- 09-rbac.md
- 09a-custody.md
- 17-changelog.md
- config.ts
docs 15:24:56 4a7985c5
docs(v3-27/v3-28): non-custody key governance — money-path non-upgradeable + emergency-freeze exit-right
3 files · +56
- Docs
- 09-rbac.md
- 14-decisions.md
- 17-changelog.md
2026-06-16 (Tue)
🟢 ch/product
fix 18:01:56 6f17a783
fix(pools): repair draft pool edit → publish/save flow
8 files · +261 · -7
- Admin
- Route (pool-edit)
- index
- payload
- Infra
- CDK Stack (api-stack)
- Lambda API
- deposits.get.list
- pools.post.lifecycle
- portfolio-positions.get.list
- redemption-requests.get.list
fix 18:01:56 202a697b
fix(admin): polish pool-create Asset Type combobox
3 files · +28 · -14
- Admin
- Route (pool-create)
- category-combobox
- step-save-publish
fix 15:49:25 c53e8e34
fix(pools): seed nav_per_token on create + harden validation
6 files · +153 · -4
- Admin
- index
- step-risk-penalty
- validation
- Lambda API
- pools.post.create
feat 13:54:12 2297a966
feat(kyc): serialize SBT mint/burn/revoke through FIFO queue + recovery
16 files · +1821 · -227
- Admin
- Route (kyc)
- Admin API
- kyc
- Admin UI
- status-badge
- Docs
- 03-kyc-identity.md
- 10-status-machines.md
- 12-triggers.md
- 13-operations.md
- Infra
- CDK Stack (api-stack)
- apply-review.ts
- mint-queue.ts
- package.json
- Investor Web API
- use-user-settings
- Lambda API
- kyc.post.mint-sbt
- kyc.scheduler.reconcile-sweep
- kyc.worker.mint-sbt
- Other
- pnpm-lock.yaml
🔵 jy/product
docs 18:44:51 a27f6c45
docs: remove stale D+7 refund / Receipt NFT / Escrow leftovers (v3-03/v3-11)
5 files · +7 · -25
- Docs
- 01-overview.md
- 12-triggers.md
- 13-operations.md
- 15-api-reference.md
- 18-failure-types.md
feat 18:37:50 a6eca3aa
feat(v3-26): require fund_id on every pool (remove Aset-custody direct pools)
9 files · +127 · -23
- Admin
- step-basic-info
- validation
- Docs
- 02-core-concepts.md
- 04-pool-models.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- Lambda API
- pools.post.create
- Other
- CLAUDE.md
chore 17:43:55 b9b9efc0
chore(#13): normalize overview-tab stat cells to p-4 (card padding convention)
1 files · +2 · -2
- Investor Web
- Widget (overview-tab)
feat 17:33:17 c3753f6b
feat(#8): investor governance timelock countdown banner
4 files · +72
- Investor Web
- Route (pool.$id)
- Widget (index)
- Widget (timelock-countdown)
- Investor Web API
- pools
feat 17:10:01 83876954
feat(#18): per-pool investor risk disclosures box (overview tab)
3 files · +131
- Investor Web
- Widget (overview-tab)
- Widget (risk-disclosure)
- Investor Web API
- pools
chore 17:05:07 55c6ede2
chore(#14): drop stale pool_type residue from FE types + LIST_SELECT
3 files · +2 · -5
- Admin API
- pools
- Investor Web API
- pools
- Lambda API
- pools.get.list
docs 16:53:13 1616f998
docs(decisions): stamp every v3-NN decision with its own Date line
1 files · +39 · -1
- Docs
- 14-decisions.md
docs 16:46:22 4967636e
docs: add per-decision Date lines + resolve 2 Joob timeline contradictions
2 files · +9 · -3
- Docs
- 14-decisions.md
- 16-timeline.md
docs 16:39:45 44e80c0b
docs: pool risk-tier (v3-25), multi-stablecoin clarification, timeline reconcile
4 files · +81 · -17
- Docs
- 04-pool-models.md
- 14-decisions.md
- 16-timeline.md
- 17-changelog.md
feat 16:26:30 8b69f462
feat(web): pool risk-tier badge (Phase 1) replacing deprecated collateral_type badge
6 files · +63 · -32
- Investor Web
- PoolCard
- Widget (overview-tab)
- Investor Web API
- pools
- Investor Web UI
- index
- risk-tier-badge
- Lambda API
- pools.get.list
feat 11:24:23 4f0b7695
feat(web): surface collateral desc, KYC eligibility & PENDING_RESERVE redemption status
4 files · +49 · -2
- Investor Web
- Route (portfolio-activity)
- Widget (overview-tab)
- Investor Web API
- pools
- Lambda API
- pools.get.list
2026-06-15 (Mon)
🟢 ch/product
refactor 18:05:53 5c593b8b
refactor(infra): indexer uses read-only RPC client (drop admin-key/deploy-addr deps)
2 files · +42 · -5
- Infra
- chain-config.ts
- engine.ts
feat 18:05:53 d3b3433d
feat(infra): on-chain event indexer (PlatformPool/LP → DB mirror)
19 files · +1523 · -53
- Docs
- 11-db-schema.md
- 21-holder-verification.md
- Infra
- CDK Stack (api-stack)
- DB 0013_onchain_indexer.sql
- DB 0014_holder_verification_state_c.sql
- DB schema.sql
- chain-config.ts
- cursor.ts
- deposit.ts
- engine.ts
- events.ts
- lp-transfer.ts
- nav.ts
- pool-registry.ts
- redemption.ts
- resolve.ts
- types.ts
- yield.ts
- Lambda API
- onchain-indexer.scheduler
fix 18:05:53 4204b0f6
fix(web): prevent duplicate SIWE prompts across multiple tabs
2 files · +77 · -6
- Investor Web
- client
- provider
🔵 jy/product
docs 20:08:27 8d92ed19
docs(14-decisions): add v3-20 (yield = manual claim only) entry
1 files · +25
- Docs
- 14-decisions.md
docs 19:25:21 249a7ab2
docs: drop residual yield_trigger / AUTO references (align with v3-20 manual-only)
4 files · +11 · -23
- Docs
- 02-core-concepts.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 20-joob-pool-config.md
feat 19:25:21 6cb0d0ef
feat(admin): pool Controls tab — freeze / impairment / wind-down / governance
3 files · +253
- Admin
- Route (pool-detail)
- pool-controls
- Admin API
- pools
feat 18:53:40 ea5d5117
feat(admin): investor info sidebar, chain-aware explorer, server-side FM PII, PII-access audit
22 files · +507 · -64
- Admin
- Route (audit-log)
- Route (deposits)
- Route (kyc)
- Route (redemptions)
- chain-explorer
- investor-sidebar
- Admin API
- activity-events
- dashboard
- deposits
- kyc
- portfolio-positions
- redemption-requests
- use-dashboard
- use-portfolio-positions
- Admin UI
- explorer-link
- Infra
- CDK Stack (api-stack)
- Lambda API
- activity-events.get.list
- activity-events.post.create
- deposits.get.list
- portfolio-positions.get.list
- redemption-requests.get.list
- users.get.list
docs 18:53:40 c4a9ecc5
docs(09-rbac): Investor Info Display — role-based fields, chain-aware explorer, PII-access audit
1 files · +37
- Docs
- 09-rbac.md
docs 13:39:15 8c2a5c47
docs: cold/hot key custody (09-rbac) + drop investor FX disclosure (v3-24)
3 files · +50 · -20
- Docs
- 04-pool-models.md
- 09-rbac.md
- 17-changelog.md
refactor 12:42:14 343a7d21
refactor(deposits): drop v2.x Receipt-NFT / FM-notify remnants
4 files · +14 · -80
- Admin
- Route (dashboard)
- Route (deposits)
- Admin API
- deposits
- use-deposits
refactor 12:35:18 c76ff592
refactor(redemption+yield): drop v2.x FM_ACCEPTED 2-step; yield edit = role-based
3 files · +21 · -52
- Admin
- Route (pool-detail)
- Route (redemptions)
- yield-settings-tab
refactor 11:56:35 737fca5f
refactor(wo-3c): drop deprecated pool_type; branch on fund_id presence
14 files · +24 · -60
- Admin
- Route (deposits)
- Route (pool-detail)
- Route (pools)
- Route (redemptions)
- Route (yield)
- configuration-tab
- overview-tab
- types
- yield-settings-tab
- Admin API
- deposits
- pools
- Investor Web
- use-invest-flow
- Investor Web API
- pools
- Investor Web UI
- status-badge
2026-06-12 (Fri)
🟢 ch/product
feat 18:50:37 0d08cc93
feat(infra): read-layer authz + yield-due read model + WO-6 pool updates backend
38 files · +2085 · -96
- Docs
- 11-db-schema.md
- Infra
- CDK Stack (api-stack)
- DB 0011_custom_yield_interval.sql
- DB 0012_pool_updates.sql
- DB schema.sql
- admin-roles.ts
- create-system-update.ts
- fund-scoping.ts
- index.ts
- middleware.ts
- read-scope.ts
- yield-schedule.ts
- Lambda API
- activity-events.get.list
- admin-users.get.list
- dashboard.get.stats
- deposits.get.list
- fund-members.get.list
- funds.get.list
- kyc-logs.get.list
- nav-changes.get.list
- nav-changes.post.activate
- notification-logs.get.list
- pool-updates.delete
- pool-updates.get.list
- pool-updates.patch.update
- pool-updates.post.create
- pools.get.list
- pools.patch.update
- pools.post.create
- pools.post.impairment
- pools.post.wind-down
- pools.scheduler.yield-due
- portfolio-positions.get.list
- redemption-requests.get.list
- users.get.list
- wallets.get.list
- yield-distributions.get.list
- yield-distributions.post.create
docs 14:41:54 8f0851a8
docs(db-schema): document admin_users TOTP 2FA columns (0009_admin_totp)
2 files · +13 · -1
- Docs
- 11-db-schema.md
- Other
- CLAUDE.md
feat 14:27:51 dba1e58a
feat(auth): require TOTP 2FA on the super admin password login
16 files · +742 · -95
- Admin
- Route (super-login)
- auth-context
- index
- package
- provider
- types
- Infra
- CDK Stack (api-stack)
- DB 0009_admin_totp.sql
- DB schema.sql
- index.ts
- jwt.ts
- package.json
- totp.ts
- Lambda API
- auth.post.admin-2fa-verify
- auth.post.admin-login
- Other
- pnpm-lock.yaml
🔵 jy/product
feat 17:19:28 3e5c1125
feat(wo-6): Pool Updates / Announcements feed (FE — admin + investor)
12 files · +404 · -1
- Admin
- Route (pool-detail)
- index
- updates-tab
- Admin API
- index
- keys
- pool-updates
- use-pool-updates
- Investor Web
- Route (pool.$id)
- Widget (index)
- Widget (updates-tab)
- Investor Web API
- pool-updates
- use-pool-updates
docs 16:58:44 f142784d
docs: WO-4 FM scoping, read-authz split, PII policy (09-rbac + changelog)
2 files · +16 · -2
- Docs
- 09-rbac.md
- 17-changelog.md
feat 16:58:44 9495c9f0
feat(admin): WO-4 FM panel — route guards, read-only UI, PII, logout redirect
12 files · +183 · -47
- Admin
- Route (dashboard)
- Route (deposits)
- Route (fund-detail)
- Route (fund-managers)
- Route (funds)
- Route (pool-detail)
- Route (pools)
- Route (protected-layout)
- Route (redemptions)
- provider
- route-permissions
- types
feat 16:58:44 98e34c8b
feat(infra): WO-4 FM write-scoping + email-keyed membership hardening
7 files · +96 · -5
- Infra
- email.ts
- fund-scoping.ts
- Lambda API
- admin-users.delete
- admin-users.patch.update
- admin-users.post.create
- fund-members.post.create
- pools.patch.update
fix 16:29:07 97d6b0ef
fix(admin): super-login Sign In keeps full brand color when disabled
1 files · +1 · -1
- Admin
- Route (super-login)
docs 16:29:07 06e609d3
docs: yield v3-20/Pool-Updates v3-22 + FM scoping v3-19/v3-21 (batch)
2 files · +52 · -4
- Docs
- 09-rbac.md
- 17-changelog.md
fix 15:56:47 ce4e64c2
fix(admin): drop wrong start_date yield estimate; keep D-n threshold only
5 files · +14 · -55
- Admin
- Route (pools)
- dday
- yield-settings-tab
- Docs
- 11-db-schema.md
- 17-changelog.md
feat 15:52:18 e48908c6
feat(admin): yield-due display — D-n ≤30d / date >30d, estimated vs confirmed
6 files · +116 · -21
- Admin
- Route (pools)
- dday
- yield-settings-tab
- Admin UI
- dday-badge
- Docs
- 11-db-schema.md
- 17-changelog.md
chore 15:12:23 4597b091
chore(db): drop pools.yield_trigger (claim-based / manual only, v3-20)
6 files · +23 · -7
- Docs
- 11-db-schema.md
- 17-changelog.md
- Infra
- DB 0010_drop_yield_trigger.sql
- DB schema.sql
- Lambda API
- pools.patch.update
- pools.post.create
docs 15:06:47 ae654105
docs(rbac): FM panel = role-scoped spec + yield manual-only (v3-19, v3-20)
3 files · +109 · -4
- Docs
- 09-rbac.md
- 11-db-schema.md
- 17-changelog.md
feat 15:06:41 daea369f
feat(admin): remove stale yield AUTO trigger; show distribution date as D-n
20 files · +85 · -90
- Admin
- Route (pool-create)
- Route (pool-detail)
- Route (pools)
- Route (yield)
- configuration-tab
- dday
- index
- payload
- permissions
- step-models
- step-save
- step-save-publish
- types
- yield-settings-tab
- Admin API
- pools
- Admin UI
- dday-badge
- index
2026-06-11 (Thu)
🟢 ch/product
chore 16:37:49 65f3676a
chore: sync supabase db and docs db schema
1 files · +158 · -94
- Docs
- 11-db-schema.md
fix 14:41:07 2168c8a9
fix(kyc): close SumSub integration gaps — async SBT mint, webhook-loss reconciliation
12 files · +843 · -402
- Infra
- CDK Stack (api-stack)
- apply-review.ts
- client.ts
- country.ts
- final-rejection.ts
- index.ts
- Lambda API
- kyc.post.access-token
- kyc.post.mint-sbt
- kyc.post.reuse
- kyc.post.webhook
- kyc.scheduler.reconcile-sweep
- kyc.worker.apply-review
feat 14:05:02 a24d62f3
feat(auth): Google OAuth login for admin via Supabase Auth
15 files · +405 · -1002
- Admin
- .env
- Route (auth-callback)
- Route (login)
- auth-context
- env
- package
- provider
- routes
- supabase
- types
- Infra
- CDK Stack (api-stack)
- Lambda API
- auth.post.admin-oauth
- Other
- pnpm-lock.yaml
🔵 jy/product
perf 17:53:00 574ab043
perf(admin): snappier category delete (cache update + per-row spinner)
2 files · +15 · -5
- Admin
- category-combobox
- Admin API
- use-pool-categories
fix 17:38:18 9a9a7e7b
fix(admin): surface category-delete errors inline (e.g. 409 in-use)
4 files · +17 · -7
- Admin
- Route (pool-create)
- Route (pool-edit)
- category-combobox
- step-basic-info
feat 17:24:34 961854dd
feat(admin): allow clearing the selected fund (unselect → platform pool)
3 files · +25
- Admin
- fund-select
- step-basic-info
fix 17:17:54 65418b93
fix(admin): keep category combobox open while creating (blur no longer closes the text box)
1 files · +2 · -1
- Admin
- category-combobox
feat 17:12:22 6e6adf3a
feat(admin): pool category management — delete + explicit 'create new' text box
9 files · +192 · -28
- Admin
- Route (pool-create)
- Route (pool-edit)
- category-combobox
- step-basic-info
- Admin API
- pools
- use-pool-categories
- Infra
- CDK Stack (api-stack)
- Lambda API
- pool-categories.delete
feat 16:43:48 5a49e81e
feat(admin): move super admin login to unlisted /super route
3 files · +107 · -79
- Admin
- Route (login)
- Route (super-login)
- routes
docs 16:38:01 56513e5c
docs(rbac): super admin logs in via unlisted /super route (break-glass)
1 files · +1
- Docs
- 09-rbac.md
docs 16:38:01 043430ed
docs: slim README to a v3 entry point + point to docs site as SoT
1 files · +55 · -1391
- Other
- README.md
refactor 16:03:56 6d8874d6
refactor(admin): remove pool_type from pool create/edit (WO-3 3b)
16 files · +82 · -190
- Admin
- Route (pool-create)
- Route (pool-edit)
- index
- payload
- permissions
- step-basic-info
- step-models
- step-pool-type
- step-save
- step-save-publish
- types
- validation
refactor 15:37:52 4e96525b
refactor(investor): remove v2.x display remnants (WO-3 3a)
3 files · +2 · -16
- Investor Web
- Route (portfolio-activity)
- Widget (overview-tab)
- Investor Web UI
- status-badge
fix 15:20:27 cc02a4b3
fix(investor): header KYC chip reads live status instead of stale JWT
1 files · +22 · -4
- Investor Web
- auth-button
feat 13:28:07 0f3377c7
feat(investor): redemption penalty estimate fix + now-vs-maturity + PENDING_RESERVE display
4 files · +66 · -26
- Investor Web
- Route (pool.$id)
- Investor Web UI
- RedeemModal
- TransactionDetailDrawer
- status-badge
docs 12:56:30 ded9b547
docs(claude): align pool lifecycle rules to v3 (IMPAIRED/WIND_DOWN, pool_type removed)
1 files · +34 · -26
- Other
- CLAUDE.md
feat 12:56:30 3d483d57
feat(investor): surface IMPAIRED/WIND_DOWN/frozen states + fix deposit gating
6 files · +95 · -21
- Investor Web
- Route (pool.$id)
- Widget (invest-sidebar)
- Widget (pool-header-card)
- Investor Web API
- pools
- Investor Web UI
- PoolStatusAlert
- status-badge
2026-06-10 (Wed)
🟢 ch/product
feat 16:51:05 0692651d
feat(multichain): per-chain env config + explicit chainId on all on-chain calls
58 files · +545 · -218
- Admin
- Route (pool-create)
- payload
- step-basic-info
- types
- validation
- Admin API
- config
- index
- keys
- pools
- use-config
- Infra
- .env.example
- CDK Stack (api-stack)
- DB 0008_chain_sot_consolidation.sql
- approve-redemption.ts
- chain-config.ts
- chain.ts
- client.ts
- create-pool.ts
- environment.ts
- freeze.ts
- governance.ts
- index.ts
- kyc-sbt.ts
- lifecycle.ts
- nav.ts
- reinvest.ts
- siwe.ts
- yield-distribution.ts
- Investor Web
- Route (portfolio)
- Investor Web API
- keys
- pools
- use-wallets
- wallets
- Investor Web UI
- YieldClaimDialog
- Lambda API
- auth.post.verify
- config.get.chains
- deposits.post.create
- kyc.get.status
- kyc.post.mint-sbt
- kyc.post.webhook
- nav-changes.post.activate
- nav-changes.post.cancel
- nav-changes.post.propose
- pools.patch.update
- pools.post.create
- pools.post.freeze
- pools.post.governance
- pools.post.impairment
- pools.post.wind-down
- pools.worker.deploy
- redemption-requests.post.approve
- redemption-requests.post.create
- redemption-requests.post.fund
- redemption-requests.post.reject
- wallets.get.list
- yield-distributions.post.create
- yield.post.reinvest
- Smart Contract
- chains.ts
fix 15:25:38 9f483d60
fix(security): harden contract guards + admin auth, split oversized routes
66 files · +4133 · -2923
- Admin
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (protected-layout)
- Route (redemptions)
- Route (yield)
- auth-context
- category-combobox
- configuration-tab
- constants
- delete-pool-section
- deploy-status-banner
- disabled-tooltip
- fund-select
- index
- info-callout
- investors-tab
- label
- operations-tab
- overdue-badge
- overview-tab
- payload
- permissions
- provider
- routes
- signing-method-badge
- step-basic-info
- step-financial
- step-indicator
- step-models
- step-pool-type
- step-risk-penalty
- step-save
- step-save-publish
- transactions-tab
- types
- validation
- yield-settings-tab
- Admin UI
- count-badge
- index
- Contract Test
- PlatformPool.t
- Investor Web
- Route (pool.$id)
- Widget (index)
- Widget (invest-sidebar)
- Widget (pool-header-card)
- Widget (position-card)
- Widget (reinvest-confirm-dialog)
- index
- use-invest-flow
- use-redeem-flow
- use-reinvest-flow
- Investor Web UI
- KYCModal
- Smart Contract
- PlatformPool
fix 11:20:52 33b81f9a
fix(auth): source admin identity from JWT + add token refresh flow
16 files · +304 · -40
- Admin
- client
- index
- provider
- types
- Infra
- CDK Stack (api-stack)
- index.ts
- Investor Web
- Route (pool.$id)
- Route (portfolio)
- client
- provider
- use-sign-in
- Investor Web API
- redeposit
- Lambda API
- auth.post.refresh
- nav-changes.post.propose
- redemption-requests.post.reject
- yield-distributions.post.create
refactor 11:00:20 68e870c6
refactor(infra): extract fetch-or-404 into requireRow helper
12 files · +330 · -133
- Infra
- fetch.ts
- Lambda API
- deposits.post.create
- kyc.get.status
- kyc.post.access-token
- kyc.post.mint-sbt
- kyc.post.reuse
- redemption-requests.post.approve
- redemption-requests.post.create
- redemption-requests.post.fund
- redemption-requests.post.reject
- yield-claims.post.create
- Smart Contract
- PlatformPool.abi.json
🔵 jy/product
No activity
2026-06-09 (Tue)
🟢 ch/product
feat 17:10:11 72589a95
feat(rbac): two-layer RBAC enforcement (on-chain 4 roles + off-chain withRole)
45 files · +645 · -202
- Contract Deploy
- DeployV3Sepolia.s
- Contract Test
- PlatformPool.t
- PlatformPoolFlows.t
- SequenceDiagramVerification.t
- Infra
- fund-scoping.ts
- index.ts
- jwt.ts
- middleware.ts
- page-permissions.ts
- Lambda API
- admin-users.delete
- admin-users.post.create
- fund-members.delete
- fund-members.patch.update
- fund-members.post.create
- funds.delete
- funds.patch.update
- funds.post.create
- kyc.get.status
- kyc.post.access-token
- kyc.post.mint-sbt
- kyc.post.reuse
- nav-changes.post.activate
- nav-changes.post.cancel
- nav-changes.post.propose
- notification-logs.post.escalate
- notification-logs.post.resend
- pool-categories.post.create
- pools.delete
- pools.patch.update
- pools.post.create
- pools.post.freeze
- pools.post.governance
- pools.post.impairment
- pools.post.wind-down
- redemption-requests.post.approve
- redemption-requests.post.create
- redemption-requests.post.fund
- redemption-requests.post.reject
- yield-claims.get.list
- yield-claims.post.create
- yield-distributions.get.me
- yield-distributions.post.create
- yield.post.reinvest
- Smart Contract
- .env.example
- PlatformPool
feat 12:28:01 ae08ad37
feat(kyc): v3-17 cross-VASP reuse + v3-19 expiry/revocation, impairment timelock
33 files · +1215 · -428
- Admin
- index
- pool-form
- Admin API
- deposits
- Contract Test
- PlatformKYCSoulbound.t
- PlatformPool.t
- Docs
- 14-decisions.md
- Infra
- CDK Stack (api-stack)
- DB 0007_sbt_expiry.sql
- DB schema.sql
- client.ts
- index.ts
- kyc-sbt.ts
- sumsub.ts
- Investor Web
- Route (pool.$id)
- Route (portfolio)
- Widget (performance-tab)
- contracts
- Investor Web API
- pools
- user-settings
- Investor Web UI
- KYCStatusCard
- YieldClaimDialog
- status-badge
- Lambda API
- kyc.get.status
- kyc.post.access-token
- kyc.post.mint-sbt
- kyc.post.reuse
- kyc.post.webhook
- kyc.scheduler.reverify-sweep
- Other
- CLAUDE.md
- Smart Contract
- PlatformKYCSoulbound
- PlatformKYCSoulbound.abi.json
- PlatformPool
- PlatformPool.abi.json
🔵 jy/product
docs 15:19:45 b02c70dd
docs(decisions): resolve leftover merge conflict marker in 14-decisions (PD5)
1 files · +1 · -6
- Docs
- 14-decisions.md
docs 15:15:51 e5c137be
docs(rbac): v3 RBAC realignment — 4-role on-chain model + non-custodial
3 files · +150 · -97
- Docs
- 08-smart-contracts.md
- 09-rbac.md
- 21-holder-verification.md
docs 12:07:18 5d8f52e7
docs(lifecycle): explain yield settlement on LP transfer (settleYield)
2 files · +18 · -1
- Docs
- 05-investment-lifecycle.md
- 08-smart-contracts.md
2026-06-08 (Mon)
🟢 ch/product
fix 17:05:32 88d45efe
fix(infra): include external_provider in pools list response
1 files · +1 · -1
- Lambda API
- pools.get.list
perf 16:56:51 b5d8db03
perf(infra,web): serve fund-data from cache and batch DPD requests
7 files · +67 · -43
- Infra
- CDK Stack (api-stack)
- cache.ts
- Investor Web
- Widget (fund-data-tab)
- Investor Web API
- fund-data
- keys
- use-fund-data
- Lambda API
- pools.get.fund-data-dpd
refactor 16:56:51 9998d561
refactor(infra,web): redemption penalty/payout from on-chain SoT
5 files · +195 · -279
- Infra
- penalty-calculator.ts
- Investor Web
- Route (pool.$id)
- Route (portfolio)
- Investor Web API
- redemption-requests
- Lambda API
- redemption-requests.post.create
chore 16:56:51 d0bb0569
chore(contract): split deployment into per-contract scripts + KYC mint
7 files · +338 · -1
- Contract Deploy
- CreatePool.s
- DeployFactory.s
- DeployLPImplementation.s
- DeployPoolImplementation.s
- DeployV3Sepolia.s
- MintKYC.s
- Smart Contract
- sepolia.md
fix 16:05:13 63a3b34d
fix(contract): YIELD_BASED penalty applies bps rate instead of forfeiting all yield
6 files · +90 · -13
- Contract Test
- PlatformPool.t
- PlatformPoolFlows.t
- Docs
- 08-smart-contracts.md
- 14-decisions.md
- 17-changelog.md
- Smart Contract
- PlatformPool
feat 16:05:13 c91f93cd
feat(qa-agent): add doc-driven QA agent with incremental diff generation
21 files · +2133 · -1
- Other
- package.json
- pnpm-lock.yaml
- qa-agent/.env.example
- qa-agent/.gitignore
- qa-agent/README.md
- qa-agent/package.json
- qa-agent/playwright.config.ts
- qa-agent/src/cli.ts
- qa-agent/src/config.ts
- qa-agent/src/context/collect.ts
- qa-agent/src/context/diff.ts
- qa-agent/src/context/rules.ts
- qa-agent/src/e2e/generate-spec.ts
- qa-agent/src/e2e/mock.ts
- qa-agent/src/e2e/runner.ts
- qa-agent/src/generate/schema.ts
- qa-agent/src/generate/tickets.ts
- qa-agent/src/linear/client.ts
- qa-agent/src/openrouter/client.ts
- qa-agent/src/report/linear.ts
- qa-agent/tsconfig.json
🔵 jy/product
docs 16:57:34 8c7f9e8b
docs(decisions): PD5 NAV timelock Resolved — 24h decrease confirmed via full timelock sign-off
1 files · +10 · -9
- Docs
- 14-decisions.md
docs 16:52:35 6481fd33
docs(nav): use canonical 2-arg updateNAV(newNav, reserveConsumed) in joob-dpd-sync step
1 files · +1 · -1
- Docs
- 06-writedown-nav.md
docs 16:38:48 95f91b89
docs(sc): complete timelock config table — add kyc_jurisdiction_whitelist + impairment execution (both 7d)
1 files · +2
- Docs
- 08-smart-contracts.md
docs 16:22:33 f92ad4bc
docs(v3): v3-19 — KYC validity/expiry policy (expiry blocks deposit, not redemption)
1 files · +24
- Docs
- 14-decisions.md
docs 11:35:09 cdfae71e
docs(pool-models): align 04-pool-models with implemented v3.0 contracts
1 files · +37 · -17
- Docs
- 04-pool-models.md
2026-06-05 (Fri)
🟢 ch/product
refactor 16:37:36 b065df15
refactor(web): remove unused ERC721_TRANSFER_EVENT dead export
1 files · -13
- Investor Web
- contracts
fix 16:34:02 d7ffd751
fix(auth): robust wallet sign-in — abort on failure, auto-switch network, relax SIWE domain in dev
3 files · +70 · -16
- Infra
- siwe.ts
- Investor Web
- provider
- use-sign-in
fix 16:05:53 b830e977
fix(web,admin-web): force light mode by making dark: variant class-based
2 files · +12 · -1
- Admin
- global
- Investor Web
- global
refactor 15:30:16 9912d64c
refactor: extract shared @aset/types + chain/stablecoin registry
14 files · +1244 · -304
- Admin
- package
- stablecoins
- Admin API
- redemption-requests
- Infra
- package.json
- statuses.ts
- Investor Web
- contracts
- package
- Investor Web API
- deposits
- redemption-requests
- Other
- packages/types/package.json
- packages/types/src/index.ts
- pnpm-lock.yaml
- Smart Contract
- chains.ts
- package.json
feat 15:09:06 cf59050c
feat(web,admin-web): v3 API/contract alignment + data-layer perf
26 files · +339 · -379
- Admin
- Route (dashboard)
- Route (deposits)
- Route (kyc)
- Route (pools)
- Route (redemptions)
- Route (yield)
- create-distribution-form
- Admin API
- deposits
- nav-changes
- pools
- redemption-requests
- use-deposits
- use-pools
- use-redemption-requests
- yield-distributions
- Investor Web
- PoolCard
- Route (pool.$id)
- Route (portfolio)
- Route (transactions)
- contracts
- index
- Investor Web API
- deposits
- pools
- redemption-requests
- use-deposits
- use-pools
feat 14:24:55 3c1e8d92
feat(infra): per-pool KYC gating at deposit (v3-10)
3 files · +111 · -2
- Infra
- kyc-gating.ts
- Lambda API
- deposits.post.create
- kyc.post.mint-sbt
feat 14:05:58 ca1088f0
feat(infra): v3.0 backend migration + security & perf hardening
82 files · +7790 · -7125
- Infra
- .env.example
- CDK Stack (api-stack)
- DB 0002_v3_migration.sql
- DB 0003_yield_fee_config.sql
- DB 0004_security_hardening.sql
- DB 0005_reinvest_revert.sql
- DB 0006_enable_rls_and_invoker_views.sql
- DB schema.sql
- approve-redemption.ts
- client.ts
- create-pool.ts
- deploy-pool.ts
- enums.ts
- environment.ts
- freeze.ts
- governance.ts
- index.ts
- jwt.ts
- kyc-sbt.ts
- lifecycle.ts
- nav.ts
- reinvest.ts
- release-to-fund.ts
- siwe.ts
- statuses.ts
- transfer-to-operator.ts
- validate-amount.ts
- viem-clients.ts
- yield-distribution.ts
- Lambda API
- activity-events.get.list
- admin-users.post.create
- auth.post.verify
- deposits.post.create
- deposits.post.match
- deposits.post.refund
- deposits.scheduler.auto-refund
- funds.patch.update
- funds.post.create
- kyc.post.mint-sbt
- kyc.post.webhook
- nav-changes.post.activate
- nav-changes.post.cancel
- nav-changes.post.propose
- notification-logs.post.escalate
- notification-logs.post.resend
- pools.delete
- pools.patch.update
- pools.post.burn-receipt
- pools.post.create
- pools.post.freeze
- pools.post.governance
- pools.post.impairment
- pools.post.transfer-lp
- pools.post.wind-down
- pools.scheduler.lifecycle
- pools.worker.deploy
- redemption-requests.post.approve
- redemption-requests.post.complete
- redemption-requests.post.cosign
- redemption-requests.post.create
- redemption-requests.post.execute-transfer
- redemption-requests.post.fm-accept
- redemption-requests.post.fund
- redemption-requests.post.reject
- redemption-requests.post.request-approval
- yield-claims.get.list
- yield-claims.post.create
- yield-distributions.get.me
- yield-distributions.post.create
- yield.post.reinvest
- Smart Contract
- PlatformEscrow.abi.json
- PlatformEscrow.bytecode.d.ts
- PlatformEscrow.bytecode.js
- PlatformKYCSoulbound.abi.json
- PlatformLPToken.abi.json
- PlatformLPToken.bytecode.js
- PlatformPool.abi.json
- PlatformPool.bytecode.js
- PlatformPoolFactory.abi.json
- PlatformReceiptNFT.abi.json
- PlatformReceiptNFT.bytecode.d.ts
- PlatformReceiptNFT.bytecode.js
🔵 jy/product
No activity
2026-06-04 (Thu)
🟢 ch/product
feat 18:29:26 a3ff640f
feat(contract): v3.0 migration — Clones factory + security hardening
20 files · +2084 · -3267
- Contract Deploy
- DeployPlatformEscrow.s
- DeployPlatformLPToken.s
- DeployPlatformPool.s
- DeployPlatformPoolFactory.s
- DeployPlatformReceiptNFT.s
- DeployV3Sepolia.s
- Contract Test
- PlatformEscrow.t
- PlatformLPToken.t
- PlatformPool.t
- PlatformPoolFactory.t
- PlatformPoolFlows.t
- PlatformReceiptNFT.t
- SequenceDiagramVerification.t
- Smart Contract
- .env.example
- PlatformEscrow
- PlatformKYCSoulbound
- PlatformLPToken
- PlatformPool
- PlatformPoolFactory
- PlatformReceiptNFT
feat 14:24:34 78523db8
feat:(web): change EFIDR to USD
1 files · +40 · -18
- Investor Web
- Widget (fund-data-tab)
🔵 jy/product
No activity
2026-06-02 (Tue)
🟢 ch/product
No activity
🔵 jy/product
docs 16:54:54 50ba8e83
docs(joob-config): correct target_size to USD 500K (ShardLab 250K + Hashed 250K confirmed)
1 files · +4 · -3
- Docs
- 20-joob-pool-config.md
docs 16:50:47 79377251
docs(v3): audit gaps — IMPAIRED lifecycle, loan_writeoffs table, reserve_consumed in nav_history
3 files · +51 · -16
- Docs
- 04-pool-models.md
- 05-investment-lifecycle.md
- 11-db-schema.md
docs 16:46:53 fa3c335b
docs(08-smart-contracts): add 'On-chain vs DB Boundary' section (v3-18)
1 files · +78
- Docs
- 08-smart-contracts.md
docs 16:41:23 f516e858
docs(changelog): split into chronological entries — June 1-2 (v3-11~18) vs May 29 (v3-01~10)
1 files · +29 · -12
- Docs
- 17-changelog.md
docs 16:35:40 5d55d856
docs(v3): sweep stale tranche_structure / JUNIOR_SENIOR / claimWindDown refs
5 files · +18 · -17
- Docs
- 01-overview.md
- 02-core-concepts.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 07-redemption.md
docs 16:30:02 cd3bb01a
docs(v3): v3-18 — minimum on-chain config + KYC compliance enforced on-chain
3 files · +56
- Docs
- 01-overview.md
- 14-decisions.md
- 17-changelog.md
docs 16:12:08 580ed84d
docs(v3): v3-16 — reserve consumption integrated into updateNAV (atomic loss absorption)
5 files · +101 · -2
- Docs
- 01-overview.md
- 06-writedown-nav.md
- 08-smart-contracts.md
- 14-decisions.md
- 17-changelog.md
docs 16:04:51 1d3146bb
docs(v3): v3-17 cross-VASP KYC strategy (SumSub Reusable + fast re-KYC fallback)
4 files · +140
- Docs
- 01-overview.md
- 03-kyc-identity.md
- 14-decisions.md
- 17-changelog.md
docs 14:11:12 22615cc2
docs(v3): v3-14 (tranche via linked pools) + v3-15 (drop PARTNER_REPORTED NAV)
9 files · +238 · -148
- Docs
- 01-overview.md
- 02-core-concepts.md
- 04-pool-models.md
- 06-writedown-nav.md
- 08-smart-contracts.md
- 11-db-schema.md
- 14-decisions.md
- 17-changelog.md
- 20-joob-pool-config.md
fix 11:37:57 56efac44
fix(admin-web): remove duplicate issuer field from PoolRow + docs(v3): IMPAIRED/DPD batch
7 files · +71 · -72
- Admin API
- pools
- Docs
- 01-overview.md
- 06-writedown-nav.md
- 08-smart-contracts.md
- 10-status-machines.md
- 14-decisions.md
- 17-changelog.md
2026-06-01 (Mon)
🟢 ch/product
feat 12:08:12 d3892cd2
feat: drive performance tab charts from fund-data history API
1 files · +38 · -6
- Investor Web
- Widget (performance-tab)
feat 11:28:38 f3de5035
feat: integrate external fund-data provider (JOOB) for pool detail
31 files · +1328 · -7
- CI/CD
- deploy-admin-web.yml
- deploy-docs.yml
- deploy-web.yml
- Infra
- .env.example
- CDK Stack (api-stack)
- DB 0001_fund_external_data.sql
- DB schema.sql
- cache.ts
- client.ts
- environment.ts
- index.ts
- mapper.ts
- provider.ts
- resolver.ts
- sync.ts
- types.ts
- Investor Web
- Route (pool.$id)
- Widget (fund-data-tab)
- Widget (index)
- Investor Web API
- fund-data
- index
- keys
- pools
- use-fund-data
- Lambda API
- fund-data.scheduler.sync
- pools.get.fund-data-dpd
- pools.get.fund-data-history
- pools.get.fund-data-summary
chore 11:27:14 bdd09c20
chore: switch deployment to shardlab org profile and domain
14 files · +3819 · -57
- Admin
- .env
- CI/CD
- deploy-admin-web.yml
- deploy-docs.yml
- deploy-web.yml
- Docs
- README.md
- package-lock.json
- Infra
- CDK Stack (docs-stack)
- cdk.context.json
- docs.ts
- environment.ts
- package.json
- Investor Web
- .env
refactor 11:27:14 d5299d60
refactor: update chain_id handling and improve code formatting
3 files · +32 · -15
- Infra
- siwe.ts
- Investor Web
- wagmi
- Lambda API
- auth.post.verify
feat 11:27:14 e8036a41
feat: add kaia in siwe
3 files · +17 · -5
- Infra
- chain.ts
- siwe.ts
- Other
- .cursor/mcp.json
refactor 11:27:14 a44d7dfa
refactor: clean up frontend code, connect missing APIs, and extract shared utilities
127 files · +1880 · -1681
- Admin
- Route (admin-settings)
- Route (deposits)
- Route (login)
- Route (my-settings)
- Route (pool-create)
- Route (pool-detail)
- Route (redemptions)
- Route (yield)
- auth-context
- collateral-badge
- create-distribution-form
- deposit-timeline
- escrow-badge
- index
- provider
- status-utils
- types
- Admin API
- admin-users
- deposits
- funds
- pools
- use-admin-users
- use-deposits
- yield-distributions
- Admin UI
- index
- radio-card
- Infra
- DB schema.sql
- admin-roles.ts
- index.ts
- pagination.ts
- penalty-calculator.ts
- portfolio-positions.ts
- statuses.ts
- token-calculations.ts
- validate-request.ts
- viem-clients.ts
- Investor Web
- Route (pool.$id)
- Route (portfolio)
- Widget (PCWidgets)
- Widget (PortfolioHero)
- Widget (asset-details-tab)
- Widget (documents-tab)
- Widget (issuer-tab)
- Widget (risk-profile-card)
- Widget (risk-terms-tab)
- Widget (yield-schedule-card)
- contracts
- env.d
- portfolio-stats
- Investor Web API
- use-deposits
- use-kyc
- use-redemption-requests
- use-redeposit
- use-user-settings
- use-yield-claims
- Lambda API
- activity-events.get.list
- admin-users.get.list
- admin-users.patch.update
- admin-users.post.create
- admin-users.post.invite
- auth.post.verify
- deposits.get.list
- deposits.post.create
- deposits.post.match
- deposits.post.refund
- deposits.scheduler.auto-refund
- fund-members.get.list
- fund-members.post.create
- funds.get.list
- funds.post.create
- kyc-logs.get.list
- kyc.get.status
- kyc.post.access-token
- kyc.post.mint-sbt
- kyc.post.webhook
- nav-changes.get.list
- nav-changes.post.activate
- nav-changes.post.cancel
- nav-changes.post.propose
- notification-logs.get.list
- pool-categories.get.list
- pool-categories.post.create
- pool-compositions.get.list
- pool-documents.get.list
- pool-tvl-history.get.list
- pools.delete
- pools.get.list
- pools.patch.update
- pools.post.burn-receipt
- pools.post.create
- pools.post.transfer-lp
- pools.scheduler.lifecycle
- pools.worker.deploy
- portfolio-positions.get.list
- redemption-requests.get.list
- redemption-requests.post.approve
- redemption-requests.post.complete
- redemption-requests.post.cosign
- redemption-requests.post.create
- redemption-requests.post.execute-transfer
- redemption-requests.post.fm-accept
- redemption-requests.post.reject
- redemption-requests.post.request-approval
- underlying-assets.get.list
- users.get.list
- wallets.get.list
- yield-claims.get.list
- yield-claims.post.create
- yield-distributions.get.list
- yield-distributions.get.me
- yield-distributions.post.create
- yield.post.reinvest
- Smart Contract
- PlatformEscrow.bytecode.d.ts
- PlatformEscrow.bytecode.js
- PlatformEscrow.bytecode.ts
- PlatformLPToken.bytecode.d.ts
- PlatformLPToken.bytecode.js
- PlatformLPToken.bytecode.ts
- PlatformPool.bytecode.d.ts
- PlatformPool.bytecode.js
- PlatformPool.bytecode.ts
- PlatformReceiptNFT.bytecode.d.ts
- PlatformReceiptNFT.bytecode.js
- PlatformReceiptNFT.bytecode.ts
- package.json
refactor 11:27:12 a5e3ecd8
refactor: align DB schema, lambda handlers, and frontend types with finalized spec
65 files · +1591 · -1414
- Admin
- Route (deposits)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (pools)
- Route (redemptions)
- pool-form
- Admin API
- admin-users
- deposits
- funds
- kyc
- pools
- redemption-requests
- Docs
- 11-db-schema.md
- 12-triggers.md
- 13-operations.md
- 15-api-reference.md
- 17-changelog.md
- Infra
- DB schema.sql
- DB seed.sql
- middleware.ts
- Investor Web
- PoolCard
- Route (dashboard)
- Route (pool.$id)
- Route (pools)
- Route (portfolio)
- Route (portfolio-activity)
- Widget (HoldingCard)
- Widget (PCWidgets)
- Widget (PortfolioHero)
- Widget (overview-tab)
- Widget (risk-profile-card)
- Investor Web API
- deposits
- kyc
- kyc-logs
- notifications
- pools
- redemption-requests
- use-kyc
- yield-distributions
- Investor Web UI
- InvestModal
- KYCModal
- TransactionDetailDrawer
- status-badge
- Lambda API
- admin-users.get.list
- admin-users.patch.update
- admin-users.post.create
- admin-users.post.invite
- auth.post.verify
- deposits.post.refund
- deposits.scheduler.auto-refund
- funds.patch.update
- funds.post.create
- kyc.post.access-token
- kyc.post.mint-sbt
- kyc.post.webhook
- notification-logs.post.escalate
- notification-logs.post.resend
- pools.get.list
- pools.patch.update
- pools.post.create
- redemption-requests.post.reject
- redemption-requests.post.request-approval
- yield-distributions.post.create
- Other
- README.md
refactor 11:25:27 e56e4717
refactor: use finance-dashboard-kit style tokens and theme overrides
4 files · +2228 · -3429
- Admin
- global
- package
- Admin UI
- alert-card
- Other
- pnpm-lock.yaml
chore 11:25:27 0d27abda
chore: use PAT for GitHub Packages auth in deploy workflow
2 files · +2 · -2
Admin
- CI/CD
- deploy-admin-web.yml
fix 11:25:27 5903c0d4
fix: resolve PageKey type mismatch in sidebar hasPermission
1 files · +2 · -1
- Admin
- sidebar
refactor 11:25:27 8024d00d
refactor: replace local shadcn/UI components with @shard-lab/finance-dashboard-kit package
69 files · +690 · -4308
- Admin
- Route (admin-settings)
- Route (audit-log)
- Route (dashboard)
- Route (deposits)
- Route (fund-detail)
- Route (fund-manager-detail)
- Route (fund-managers)
- Route (funds)
- Route (kyc)
- Route (login)
- Route (my-settings)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (pools)
- Route (redemptions)
- Route (yield)
- client
- create-distribution-form
- csv-export
- formatters
- global
- header
- index
- methods
- package
- pool-form
- query-client
- sidebar
- utils
- vite.config
- Admin UI
- AutoExpandTextarea
- alert-card
- badge
- button
- cancellation-timer
- card
- confirm-dialog
- data-table
- detail-drawer
- dialog
- dropdown-menu
- empty-state
- explorer-link
- index
- input
- label
- metric-card
- notification-log
- page-header
- page-layout
- permission-guard
- refresh-indicator
- select
- separator
- skeleton
- stat-card
- status-badge
- sub-status-indicator
- switch
- table
- tabs
- textarea
- tooltip
- Investor Web UI
- Footer
- Other
- .npmrc
- pnpm-lock.yaml
🔵 jy/product
docs 17:57:30 10eeaf56
docs(v3.0): D-v3-12 (wind-down NAV unify + IMPAIRED state) + D-v3-13 (DPD auto-writeoff via OJK schedule)
6 files · +127 · -11
- Docs
- 01-overview.md
- 06-writedown-nav.md
- 08-smart-contracts.md
- 10-status-machines.md
- 14-decisions.md
- 17-changelog.md
docs 17:17:20 0b69e859
docs(v3.0): D-v3-11 — absorb PlatformEscrow into PlatformPool (5→4 contracts)
4 files · +36 · -16
- Docs
- 01-overview.md
- 08-smart-contracts.md
- 14-decisions.md
- 17-changelog.md
docs 15:52:36 70e432f2
docs(v3.0,phase2.5): add overview highlights, changelog entries, 5-state holder page
4 files · +318 · -1
- Docs
- 01-overview.md
- 17-changelog.md
- 21-holder-verification.md
- config.ts
fix 13:52:12 f9d3210d
fix(pools): fallback to pool.issuer when funds JOIN is null
2 files · +4 · -2
- Admin API
- pools
- Investor Web API
- pools
2026-05-30 (Sat)
🟢 ch/product
No activity
🔵 jy/product
docs 01:14:02 d73f4d8d
docs(pool-models): fix dead link breaking VitePress build
1 files · +1 · -1
- Docs
- 04-pool-models.md
2026-05-29 (Fri)
🟢 ch/product
No activity
🔵 jy/product
docs 23:54:56 e474eea0
docs(decisions,joob-config): update for v3.0
2 files · +250 · -88
- Docs
- 14-decisions.md
- 20-joob-pool-config.md
docs 23:46:12 ff973fe0
docs(core-concepts,kyc): update for v3.0
2 files · +94 · -59
- Docs
- 02-core-concepts.md
- 03-kyc-identity.md
docs 23:41:53 c424ed1a
docs(db-schema): add v3.0 dimension columns + deprecated markers
1 files · +102 · -12
- Docs
- 11-db-schema.md
docs 23:30:10 c275c53e
docs(status-machines): update for v3.0
1 files · +90 · -101
- Docs
- 10-status-machines.md
docs 23:25:58 8697799d
docs(writedown-nav): update for v3.0
1 files · +77 · -34
- Docs
- 06-writedown-nav.md
docs 22:49:11 d99780bf
docs(investment-lifecycle): rewrite for v3.0
1 files · +213 · -52
- Docs
- 05-investment-lifecycle.md
docs 22:45:59 820d53fd
docs(smart-contracts): rewrite for v3.0 dimension model
1 files · +328 · -341
- Docs
- 08-smart-contracts.md
docs 17:55:20 c4684c81
docs(pool-models): complete v3.0 dimension model
1 files · +260 · -15
- Docs
- 04-pool-models.md
docs 16:34:22 1c343e78
docs(pool-models): start v3.0 dimension model rewrite
1 files · +103 · -84
- Docs
- 04-pool-models.md
docs 16:06:57 ab63a0c5
docs: preserve in-progress timeline + joob pool config
2 files · +159 · -1
- Docs
- 16-timeline.md
- 20-joob-pool-config.md
2026-03-20 (Fri)
🟢 ch/product
chore 17:55:48 91117e7c
chore: add deleted_at column at pool update
1 files · +21 · -5
- Lambda API
- pools.patch.update
feat 17:55:48 976e778f
feat: add stablecoin registry API + DAI currency support + ACTIVE pool currency edit
5 files · +63 · -3
- Infra
- CDK Stack (api-stack)
- DB schema.sql
- DB seed.sql
- Lambda API
- config.get.stablecoins
- pools.patch.update
feat 17:55:48 c1eae2dc
feat: R8 — per-pool stablecoin config, deposit currency validation, multichain schema sync
3 files · +84 · -1
- Infra
- DB schema.sql
- Lambda API
- deposits.post.create
- pools.patch.update
🔵 jy/product
feat 17:42:55 34f47813
feat: R9 — operating_currency/fx_rate + hide Archive button for archived pools
2 files · +84 · -58
- Admin
- Route (pool-detail)
- Admin API
- pools
fix 17:16:05 76d6c7bd
fix: R9 — fetchPools include_archived=true + archived count link
2 files · +17 · -1
- Admin
- Route (pools)
- Admin API
- pools
feat 17:01:33 cc0bab50
feat: R9 — pool detail enhancements + archived pool restore
4 files · +99 · -8
- Admin
- Route (pool-detail)
- Admin API
- pools
- use-pools
- Admin UI
- notification-log
fix 16:33:20 e78abf0c
fix(pool-detail): currency changes now save via Save Changes button
2 files · +43 · -12
- Admin
- Route (pool-detail)
- Admin API
- use-pools
fix 16:04:34 1e0f195a
fix: R8 gaps — editable currencies in pool-detail + deposit currency field
3 files · +43 · -10
- Admin
- Route (pool-detail)
- Admin API
- pools
- Investor Web
- Route (pool.$id)
fix 15:54:23 9e135a72
fix(pool-detail): R8 update — accepted currencies editable when ACTIVE
3 files · +4 · -4
- Admin
- Route (pool-detail)
- Docs
- 04-pool-models.md
- 11-db-schema.md
feat 15:46:38 3031e421
feat: R8 — per-pool stablecoin selection + multichain support
12 files · +234 · -48
- Admin
- Route (admin-settings)
- Route (pool-create)
- Route (pool-detail)
- stablecoins
- Docs
- 04-pool-models.md
- 05-investment-lifecycle.md
- 08-smart-contracts.md
- 11-db-schema.md
- 17-changelog.md
- Investor Web
- PoolCard
- Route (pool.$id)
- contracts
2026-03-19 (Thu)
🟢 ch/product
chore 18:34:09 21fbf56c
chore: remove contract broadcast artifacts from tracking
9 files · +3 · -640
- Other
- .gitignore
- Smart Contract
- run-1772160048858.json
- run-1772160181071.json
- run-1773130549287.json
- run-1773130633482.json
- run-latest.json
feat 17:21:41 607d7439
feat: implement backend handoff Mar19 — Super Admin auth, invite, pool filters, audit log JOIN, reinvest min amount, multi-chain explorer, multi-sig, security fixes
12 files · +2452 · -946
- Infra
- CDK Stack (api-stack)
- DB schema.sql
- DB seed.sql
- package.json
- Lambda API
- activity-events.get.list
- admin-users.post.invite
- auth.post.admin-login
- pools.get.list
- pools.worker.deploy
- yield.post.reinvest
- Other
- README.md
- pnpm-lock.yaml
refactor 15:25:18 5f0bf35f
refactor: detach fund_members from admin_users FK and remove auth middleware for dev
48 files · +251 · -228
- Admin
- Route (fund-detail)
- Route (fund-manager-detail)
- Route (pool-detail)
- Admin API
- fund-members
- funds
- keys
- pools
- use-fund-members
- use-funds
- use-pools
- Infra
- DB schema.sql
- DB seed.sql
- Investor Web
- Route (portfolio)
- Investor Web API
- index
- keys
- redeposit
- use-redeposit
- use-users
- users
- Lambda API
- admin-users.delete
- admin-users.patch.update
- deposits.post.create
- deposits.post.refund
- fund-members.delete
- fund-members.get.list
- fund-members.patch.update
- fund-members.post.create
- funds.delete
- funds.patch.update
- kyc-logs.get.list
- kyc.get.status
- kyc.post.access-token
- pool-compositions.get.list
- pool-documents.get.list
- pool-tvl-history.get.list
- pools.delete
- portfolio-positions.get.list
- redemption-requests.post.cosign
- redemption-requests.post.create
- redemption-requests.post.execute-transfer
- redemption-requests.post.request-approval
- underlying-assets.get.list
- wallets.get.list
- yield-claims.get.list
- yield-claims.post.create
- yield-distributions.get.me
- yield.post.reinvest
refactor 14:04:41 77d0e4be
refactor: remove Backend-Markdown section & sidebar
1 files · +37 · -60
- Docs
- config.ts
chore 13:59:00 ebe0177a
chore: rename wrong file name
2 files · +261 · -261
- Docs
- generate-dashboard-vitepress.sh
- generate-dashboard-vitepresssh
refactor 13:57:18 69a064ad
refactor: remove html docs
42 files · +7272 · -18227
- CI/CD
- deploy-docs.yml
- Docs
- 01-overview.md
- 02-core-concepts.md
- 03-kyc-identity.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 09-rbac.md
- 10-status-machines.md
- 11-db-schema.md
- 12-triggers.md
- 13-operations.md
- 14-decisions.md
- 15-api-reference.md
- 16-timeline.md
- 17-changelog.md
- 18-failure-types.md
- 19-activity.md
- generate-dashboard-markdown.sh
- generate-dashboard-vitepress.sh
- generate-dashboard-vitepresssh
🔵 jy/product
fix 18:20:38 dd61cbed
fix(pool-detail): archive pool button invisible — warning-600 too light for white text
1 files · +1 · -1
- Admin
- Route (pool-detail)
feat 18:11:33 94334bc2
feat(admin-settings): R7-5 — role-based Admin Users actions
2 files · +67 · -38
- Admin
- Route (admin-settings)
- Admin API
- admin-users
feat 16:26:23 2cf8b4ae
feat(admin-web): R7-4 — Super Admin login page with email+password form
3 files · +84 · -4
- Admin
- Route (login)
- provider
- types
feat 16:16:54 06265f02
feat(pool-create): R7-5 — auto-calculate End Date from Start Date + Maturity Days
2 files · +114 · -61
- Admin
- Route (pool-create)
- Docs
- 09-rbac.md
feat 16:00:46 bc8f4713
feat(admin-web): Round 7 — retry deploy, multi-sig UI, Korean→English
16 files · +396 · -69
- Admin
- Route (admin-settings)
- Route (audit-log)
- Route (kyc)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (redemptions)
- Route (yield)
- Admin API
- dashboard
- pools
- redemption-requests
- use-pools
- Admin UI
- data-table
- status-badge
- Infra
- DB seed.sql
- Other
- CLAUDE.md
docs 11:51:36 be95efa2
docs: VitePress update — Reinvest V1 policy, core-concepts link, RBAC restructure
6 files · +206 · -137
- Docs
- 02-core-concepts.md
- 05-investment-lifecycle.md
- 09-rbac.md
2026-03-18 (Wed)
🟢 ch/product
fix 19:55:12 fd10966e
fix: align Lambda and frontend with current DB schema — remove stale columns and enum values
8 files · +13 · -104
- Admin API
- pools
- Investor Web
- Widget (issuer-tab)
- Widget (overview-tab)
- Investor Web API
- pools
- Lambda API
- funds.patch.update
- funds.post.create
- pools.get.list
- yield.post.reinvest
feat 17:56:09 714b3d83
feat: improve mermaid charts — light-mode palette, edge label fix, click-to-zoom
5 files · +139 · -42
- Docs
- 04-pool-models.md
- 08-smart-contracts.md
- config.ts
- custom.css
- index.ts
fix 17:08:41 00d0eb73
fix: remove package-lock.json to let CI npm install resolve cleanly, use local vitepress binary
2 files · +1 · -261
- CI/CD
- deploy-docs.yml
- Docs
- package-lock.json
fix 17:05:41 651d56f9
fix: use npm run build instead of npx vitepress in CI, add markdown dashboard generation
1 files · +4 · -2
- CI/CD
- deploy-docs.yml
docs 17:03:06 005b7ce5
docs: add pure Markdown backend-markdown docs with custom containers, role badges, and interactive decisions
27 files · +8753 · -51
- Docs
- 01-overview.md
- 02-core-concepts.md
- 03-kyc-identity.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 09-rbac.md
- 10-status-machines.md
- 11-db-schema.md
- 12-triggers.md
- 13-operations.md
- 14-decisions.md
- 15-api-reference.md
- 16-timeline.md
- 17-changelog.md
- 18-failure-types.md
- 19-activity.md
- CBadge.vue
- DecisionManagerMd.vue
- config.ts
- custom.css
- generate-dashboard-markdown.sh
- index.ts
- package-lock.json
- package.json
feat 13:39:22 8455ed24
feat: add pool delete API, update fund delete logic, and filter investor pool list
5 files · +149 · -7
- Infra
- CDK Stack (api-stack)
- DB schema.sql
- Lambda API
- funds.delete
- pools.delete
- pools.get.list
refactor 13:33:49 72a27b9b
refactor: promote VitePress as main docs, remove legacy HTML
67 files · +13728 · -33843
- CI/CD
- deploy-docs.yml
- Docs
- .ci-trigger
- 01-overview.md
- 02-core-concepts.md
- 03-kyc-identity.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 09-rbac.md
- 10-status-machines.md
- 11-db-schema.md
- 12-triggers.md
- 13-operations.md
- 14-decisions.md
- 15-api-reference.md
- 16-timeline.md
- 17-changelog.md
- 18-failure-types.md
- 19-activity.md
- ActivityFilter.vue
- DecisionManager.vue
- README.md
- README.txt
- SchemaFilter.vue
- backend-logic-map.html
- backend-logic-map.html.bak
- config.ts
- custom.css
- generate-dashboard-vitepress.sh
- generate-dashboard.sh
- index.md
- index.ts
- logo.svg
- package.json
- project.json
- smart-contract-architecture.html
- Infra
- CDK Stack (docs-stack)
- package.json
fix 11:37:52 a207a1ff
fix: use npm/npx instead of pnpm for standalone vitepress package in CI
1 files · +2 · -2
- CI/CD
- deploy-docs.yml
fix 11:36:17 4b429957
fix: use working-directory and pnpm exec for vitepress build in CI
1 files · +4 · -2
- CI/CD
- deploy-docs.yml
fix 11:34:38 fc2989f4
fix: remove --frozen-lockfile for standalone vitepress package
1 files · +1 · -1
- CI/CD
- deploy-docs.yml
fix 11:32:22 6027ea2a
fix: remove pnpm version conflict in deploy-docs workflow
1 files · -2
- CI/CD
- deploy-docs.yml
feat 11:28:27 8364de01
feat: convert backend-logic-map.html to VitePress documentation site
29 files · +13554 · -2
- CI/CD
- deploy-docs.yml
- Docs
- 01-overview.md
- 02-core-concepts.md
- 03-kyc-identity.md
- 04-pool-models.md
- 05-investment-lifecycle.md
- 06-writedown-nav.md
- 07-redemption.md
- 08-smart-contracts.md
- 09-rbac.md
- 10-status-machines.md
- 11-db-schema.md
- 12-triggers.md
- 13-operations.md
- 14-decisions.md
- 15-api-reference.md
- 16-timeline.md
- 17-changelog.md
- 18-failure-types.md
- 19-activity.md
- ActivityFilter.vue
- SchemaFilter.vue
- config.ts
- custom.css
- generate-dashboard-vitepress.sh
- index.md
- index.ts
- logo.svg
- package.json
🔵 jy/product
fix 17:20:49 aaa4b516
fix: 8 code scan findings from Round 5 handoff
8 files · +18 · -18
- Admin
- Route (deposits)
- Route (kyc)
- Route (pool-create)
- Admin API
- deposits
- Investor Web
- Route (help)
- Route (pool.$id)
- Route (pools)
- Investor Web API
- pools
fix 16:39:00 a3e89743
fix: A-5 auto-pause banner border unified (border-2 error-300 → border error-200)
1 files · +1 · -1
- Admin
- Route (pool-detail)
fix 16:29:01 9e1bdfa3
fix: A-2/A-4/I-5/I-6 — badge style unification across both apps
2 files · +11 · -11
- Admin UI
- status-badge
- Investor Web UI
- status-badge
2026-03-17 (Tue)
🟢 ch/product
feat 14:53:20 5334a65d
feat: backend handoff Mar17 — reinvest API, multi-sig endpoints, PATCH method fix
22 files · +881 · -597
- Admin API
- admin-users
- fund-members
- funds
- pools
- Infra
- CDK Stack (api-stack)
- DB schema.sql
- Investor Web
- vite.config
- Investor Web UI
- label
- Lambda API
- admin-users.patch.update
- admin-users.put.update
- fund-members.patch.update
- fund-members.put.update
- funds.patch.update
- funds.put.update
- pools.patch.update
- pools.put.update
- redemption-requests.post.cosign
- redemption-requests.post.execute-transfer
- redemption-requests.post.request-approval
- redeposit.post.create
- yield.post.reinvest
- Other
- README.md
chore 11:12:12 ba8be0d6
chore: revise wrong time error at activity dashboard
2 files · +9 · -15
- Docs
- generate-dashboard.sh
- Other
- .mcp.json
🔵 jy/product
feat 18:03:26 34e32f1f
feat: AF-9 Archived pool frontend prep
3 files · +14 · -1
- Admin
- Route (pools)
- Admin API
- pools
- Admin UI
- status-badge
fix 17:41:17 08eb496d
fix: AF-13 deployStatus type error — web PoolView lacks field
1 files · +1 · -1
- Investor Web
- Route (pools)
feat 17:38:43 c6ece522
feat: AF-14/AF-9/AF-13 — error truncate, delete bottom, hide FAILED
2 files · +52 · -34
- Admin
- Route (pool-detail)
- Investor Web
- Route (pools)
fix 17:29:13 d90ccaf0
fix: AF-9 visually distinct Delete (red) vs Archive (amber) buttons
1 files · +20 · -10
- Admin
- Route (pool-detail)
fix 17:28:07 b65b034f
fix: AF-9 Delete/Archive button visible on all pool statuses
1 files · +26 · -18
- Admin
- Route (pool-detail)
feat 16:14:46 ac81c840
feat: Round 5 batch 2 — AF-1/3/4
3 files · +10 · -3
- Admin
- Route (dashboard)
- Route (pool-create)
- Route (pool-detail)
feat 16:09:50 3fe5435c
feat: Round 5 handoff — AF-10/7/12/8/9/11, IF-6/7
25 files · +271 · -85
- Admin
- Route (fund-detail)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (redemptions)
- Admin UI
- AutoExpandTextarea
- metric-card
- Investor Web
- Route ($)
- Route (bridge)
- Route (dashboard)
- Route (help)
- Route (notifications)
- Route (pools)
- Route (portfolio-activity)
- Route (transactions)
- Widget (HoldingCard)
- Widget (PCWidgets)
- Widget (documents-tab)
- Widget (overview-tab)
- root
- Investor Web UI
- KYCStatusCard
- OnboardingModal
- RedeemModal
- TransactionDetailDrawer
- status-badge
feat 12:37:52 5de6014e
feat: IF-1 in-place Claim/Redeem modals, IF-2 Reinvest CTA, IF-5 chart empty state, IF-6 emoji→lucide icons, AF-1 description textarea, AF-3~6 quick wins
12 files · +217 · -71
- Admin
- Route (dashboard)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (pools)
- Admin UI
- sub-status-indicator
- Investor Web
- Route (dashboard)
- Route (pool.$id)
- Route (portfolio)
- Route (settings)
- Widget (performance-tab)
- Investor Web UI
- PoolStatusAlert
fix 10:40:49 bee43cb7
fix: dashboard TS2367 — PENDING → REQUESTED for RedemptionStatus
5 files · +329 · -100
- Admin
- Route (dashboard)
- Route (pool-detail)
- Admin UI
- notification-log
- Investor Web
- Route (pool.$id)
- Widget (PCWidgets)
2026-03-16 (Mon)
🟢 ch/product
fix 03:49:40 6ec1f2ea
fix: remove unused ExternalLink import breaking CI build
1 files · +1 · -1
- Admin
- Route (pool-detail)
feat 03:45:48 a38baeb2
feat: async pool deploy, pool update API, auth token fix, and invest flow improvements
56 files · +2191 · -1460
- Admin
- Route (fund-detail)
- Route (pool-create)
- Route (pool-detail)
- Route (pools)
- Route (redemptions)
- Route (yield)
- Admin API
- pools
- use-pools
- Infra
- .env.example
- CDK Stack (api-stack)
- DB schema.sql
- deploy-pool.ts
- package.json
- Investor Web
- Route (pool.$id)
- client
- contracts
- use-sign-in
- Investor Web API
- auth
- use-user-settings
- Lambda API
- activity-events.get.list
- admin-users.get.list
- admin-users.post.create
- dashboard.get.stats
- deposits.get.list
- deposits.post.create
- deposits.post.match
- fund-members.get.list
- fund-members.post.create
- funds.get.list
- funds.post.create
- kyc.post.mint-sbt
- nav-changes.get.list
- nav-changes.post.activate
- nav-changes.post.cancel
- nav-changes.post.propose
- notification-logs.get.list
- notification-logs.post.escalate
- notification-logs.post.resend
- pools.post.burn-receipt
- pools.post.create
- pools.post.deploy
- pools.post.transfer-lp
- pools.put.update
- pools.worker.deploy
- redemption-requests.get.list
- redemption-requests.post.approve
- redemption-requests.post.complete
- redemption-requests.post.fm-accept
- redemption-requests.post.reject
- users.get.list
- yield-distributions.get.list
- yield-distributions.post.create
- Other
- pnpm-lock.yaml
- Smart Contract
- PlatformEscrow.bytecode.ts
- PlatformReceiptNFT.bytecode.ts
- foundry.toml
🔵 jy/product
feat 18:29:57 37979539
feat: UI/UX complex fixes — I-7/I-7b/I-8/I-10/I-11/I-12
2 files · +132 · -45
- Investor Web
- Route (pool.$id)
- Widget (PCWidgets)
fix 18:17:39 7915a87c
fix: UI/UX quick fixes — 12 items across admin and investor
8 files · +39 · -40
- Admin
- Route (dashboard)
- Route (pool-detail)
- Admin UI
- data-table
- funding-badge
- Investor Web
- Widget (header)
- formatters
- provider
- Investor Web UI
- status-badge
feat 13:57:31 5eb7505b
feat: implement Round 4 QA spec (10 items)
6 files · +256 · -22
- Admin
- Route (fund-detail)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Admin API
- pools
- Investor Web
- auth-button
2026-03-15 (Sun)
🟢 ch/product
fix 21:56:10 0f99a2b8
fix: resolve frontend build errors from cross-layer field consistency changes
6 files · +9 · -11
- Admin
- Route (deposits)
- Route (redemption-funding)
- Route (redemptions)
- Investor Web
- Route (pool.$id)
- Route (portfolio)
- Investor Web API
- deposits
refactor 21:51:42 113d01e7
refactor: align backend Lambda handlers with sequence diagrams and fix cross-layer field consistency
49 files · +1730 · -583
- Admin
- Route (deposits)
- Route (pool-detail)
- Route (redemptions)
- Admin API
- deposits
- pools
- redemption-requests
- Admin UI
- status-badge
- Contract Test
- PlatformPool.t
- PlatformPoolFlows.t
- SequenceDiagramVerification.t
- Docs
- backend-logic-map.html
- Infra
- DB schema.sql
- approve-redemption.ts
- deploy-pool.ts
- index.ts
- release-to-fund.ts
- transfer-to-operator.ts
- yield-distribution.ts
- Investor Web
- Route (dashboard)
- Route (pool.$id)
- Route (portfolio)
- Route (portfolio-activity)
- contracts
- Investor Web API
- deposits
- redemption-requests
- redeposit
- underlying-assets
- use-deposits
- yield-claims
- Investor Web UI
- RedeemModal
- YieldClaimDialog
- status-badge
- Lambda API
- deposits.post.create
- deposits.post.match
- deposits.post.refund
- deposits.scheduler.auto-refund
- pools.post.create
- pools.post.deploy
- pools.scheduler.lifecycle
- redemption-requests.post.approve
- redemption-requests.post.complete
- redemption-requests.post.create
- redemption-requests.post.reject
- redeposit.post.create
- yield-claims.post.create
- yield-distributions.post.create
- Other
- CLAUDE.md
- Smart Contract
- PlatformEscrow
- PlatformPool
chore 15:44:51 65197f63
chore: remove code-vs-doc-diff.md from tracking
1 files · -154
- Docs
- code-vs-doc-diff.md
refactor 15:44:51 142209af
refactor: simplify redemption to single-stage approval — remove recommend/complete, merge into approveRedemption
7 files · +2199 · -2428
- Contract Test
- PlatformPool.t
- PlatformPoolFlows.t
- SequenceDiagramVerification.t
- Docs
- backend-logic-map.html
- smart-contract-architecture.html
- Smart Contract
- PlatformPool
- PlatformPool.abi.json
feat 15:44:51 f02b5883
feat: add PlatformEscrow & PlatformPoolFactory contracts, update architecture docs
19 files · +4464 · -1146
- Contract Deploy
- DeployPlatformEscrow.s
- DeployPlatformPoolFactory.s
- Contract Test
- PlatformEscrow.t
- PlatformPool.t
- PlatformPoolFactory.t
- PlatformPoolFlows.t
- SequenceDiagramVerification.t
- Docs
- backend-logic-map.html
- smart-contract-architecture.html
- Investor Web
- contracts
- Other
- CLAUDE.md
- README.md
- Smart Contract
- Makefile
- PlatformEscrow
- PlatformEscrow.abi.json
- PlatformPool
- PlatformPool.abi.json
- PlatformPoolFactory
- PlatformPoolFactory.abi.json
fix 15:39:19 27711f97
fix: replace removed Escrow ABI/address references with PlatformPool in web invest flow
2 files · +7 · -9
- Investor Web
- Route (pool.$id)
- contracts
refactor 15:39:19 6c55bd02
refactor: consolidate architecture — merge Escrow into PlatformPool, add yield claim flow, clean up legacy code
74 files · +7338 · -39063
- Admin API
- redemption-requests
- Contract Deploy
- CreateEscrowViaFactory.s
- DeployDepositReceipt.s
- DeployPlatformEscrow.s
- DeployPlatformEscrowFactory.s
- DeployPlatformReceiptNFT.s
- Contract Test
- DepositReceipt.t
- PlatformEscrow.t
- PlatformEscrowFactory.t
- PlatformPool.t
- PlatformPoolFlows.t
- PlatformReceiptNFT.t
- Docs
- code-vs-doc-diff.md
- smart-contract-architecture.html
- Infra
- .env.example
- CDK Stack (api-stack)
- deploy-pool.ts
- environment.ts
- index.ts
- jwt.ts
- middleware.ts
- yield-distribution.ts
- Investor Web
- contracts
- Lambda API
- auth.post.nonce
- auth.post.verify
- deposits.post.create
- deposits.post.match
- deposits.scheduler.auto-refund
- kyc.get.status
- kyc.post.access-token
- kyc.post.mint-sbt
- kyc.post.webhook
- nav-changes.post.activate
- nav-changes.post.cancel
- nav-changes.post.propose
- pools.post.burn-receipt
- pools.post.create
- pools.post.create-escrow
- pools.post.transfer-lp
- pools.scheduler.lifecycle
- redemption-requests.post.approve
- redemption-requests.post.complete
- redemption-requests.post.create
- redemption-requests.post.fm-accept
- redemption-requests.post.recommend
- redemption-requests.post.reject
- redeposit.post.create
- yield-claims.get.list
- yield-claims.post.create
- yield-distributions.get.me
- yield-distributions.post.create
- Other
- CLAUDE.md
- README.md
- Smart Contract
- .env.example
- DepositReceipt
- DepositReceipt.abi.json
- Makefile
- PlatformEscrow
- PlatformEscrow.abi.json
- PlatformEscrowFactory
- PlatformEscrowFactory.abi.json
- PlatformPool
- PlatformPool.abi.json
- PlatformReceiptNFT
- PlatformReceiptNFT.abi.json
- run-1772160048858.json
- run-1772160181071.json
- run-1773130549287.json
- run-1773130633482.json
- run-latest.json
🔵 jy/product
fix 02:48:06 e31c1d29
fix: resolve CI build errors - severity type, unused vars
3 files · +11 · -24
- Admin
- Route (dashboard)
- Route (pool-detail)
- sidebar
other 02:39:31 32d1ea9a
Admin Round 3: Row color accent, side panel CTAs, yield rebuild, auto-pause, activity pagination
50 files · +3619 · -1286
- Admin
- Route (admin-settings)
- Route (audit-log)
- Route (dashboard)
- Route (deposits)
- Route (fund-detail)
- Route (fund-managers)
- Route (kyc)
- Route (my-settings)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (pools)
- Route (redemption-funding)
- Route (redemptions)
- Route (yield)
- csv-export
- formatters
- header
- pool-form
- routes
- sidebar
- Admin API
- dashboard
- deposits
- pools
- use-deposits
- use-notification-logs
- use-pools
- yield-distributions
- Admin UI
- confirm-dialog
- data-table
- detail-drawer
- funding-badge
- index
- notification-log
- page-layout
- stat-card
- status-badge
- Docs
- backend-logic-map.html
- Investor Web
- PoolCard
- Route (pools)
- Route (portfolio)
- Route (portfolio-activity)
- Widget (PortfolioHero)
- Widget (header)
- pools-bg
- Investor Web API
- index
- support-request
- use-support-request
- Investor Web UI
- Footer
- Other
- CLAUDE.md
2026-03-14 (Sat)
🟢 ch/product
No activity
🔵 jy/product
feat 19:56:22 6c6bf66d
feat: pool detail + portfolio refinements, pool status alerts, seed data updates
21 files · +1455 · -391
- Admin
- Route (fund-detail)
- Route (pool-create)
- Admin API
- funds
- pools
- Admin UI
- status-badge
- Docs
- backend-logic-map.html
- Infra
- DB seed.sql
- Investor Web
- PoolCard
- Route (pool.$id)
- Route (pools)
- Route (portfolio)
- Widget (HoldingCard)
- Widget (PCWidgets)
- Widget (PortfolioHero)
- Widget (overview-tab)
- index
- Investor Web API
- pools
- Investor Web UI
- InvestModal
- PoolStatusAlert
- status-badge
- Other
- CLAUDE.md
fix 02:24:59 dd766615
fix: remove 3 unused functions (formatAddress, penaltyLabel, triggerLabel) — build clean
3 files · -12
- Investor Web
- Widget (overview-tab)
- Widget (yield-schedule-card)
- auth-button
feat 02:18:59 b305a212
feat: pool detail modernization + design brief fixes + green color alignment
41 files · +2864 · -2433
- Admin
- Route (kyc)
- Route (pool-create)
- Admin API
- index
- keys
- kyc
- pools
- use-pool-categories
- Docs
- backend-logic-map.html
- smart-contract-architecture.html
- Infra
- DB schema.sql
- DB seed.sql
- Investor Web
- Route (pool.$id)
- Route (pools)
- Route (portfolio)
- Route (portfolio-activity)
- Widget (HoldingCard)
- Widget (PCWidgets)
- Widget (PortfolioHero)
- Widget (QuickActions)
- Widget (header)
- Widget (index)
- Widget (overview-tab)
- Widget (performance-tab)
- Widget (risk-profile-card)
- Widget (risk-terms-tab)
- Widget (yield-schedule-card)
- aset-logo
- aset-logo-white
- auth-button
- global
- redemption-state
- routes
- Investor Web API
- pools
- Investor Web UI
- InvestModal
- MobileBottomNav
- logo
- select
- Lambda API
- pool-categories.get.list
- pool-categories.post.create
- pools.post.create
- Other
- README.md
2026-03-13 (Fri)
🟢 ch/product
No activity
🔵 jy/product
docs 18:10:17 b90c971f
docs: update backend-logic-map smart contracts section — mermaid rendering fixes
1 files · +57 · -41
- Docs
- backend-logic-map.html
feat 17:56:28 69166922
feat: Admin gap spec implementation (§1-§8)
10 files · +2341 · -170
- Admin
- Route (audit-log)
- Route (fund-detail)
- Route (funds)
- Route (pool-detail)
- Route (pools)
- Route (redemption-funding)
- routes
- sidebar
- Docs
- backend-logic-map.html
- smart-contract-architecture.html
feat 14:36:35 2f6acafe
feat: Yield History tab in portfolio page (QA #4)
1 files · +176
- Investor Web
- Route (portfolio)
fix 14:15:17 8d511ea2
fix: QA report — 8 fixes across pool list, pool detail, portfolio
6 files · +31 · -19
- Investor Web
- PoolCard
- Route (portfolio)
- Widget (header)
- Widget (risk-profile-card)
- Investor Web API
- pools
- Investor Web UI
- status-badge
feat 13:32:02 f2d8755b
feat: KYC status page + notification preferences restructure
4 files · +314 · -170
- Investor Web
- Route (kyc)
- Route (settings)
- routes
- Investor Web UI
- KYCStatusCard
2026-03-12 (Thu)
🟢 ch/product
No activity
🔵 jy/product
fix 18:15:58 4461cbe5
fix: portfolio — investor-friendly redemption labels, duplicate yield fix
1 files · +30 · -13
- Investor Web
- Route (portfolio)
feat 18:14:24 a656d6e6
feat: pool detail — Risk Profile card, Yield Schedule, Fully Subscribed banner
5 files · +270 · -5
- Investor Web
- Route (pool.$id)
- Widget (index)
- Widget (risk-profile-card)
- Widget (yield-schedule-card)
- Investor Web API
- pools
chore 18:08:38 367f39e4
chore: sync schema.sql with latest Supabase DB changes
1 files · +443 · -540
- Infra
- DB schema.sql
feat 18:03:09 ad5b7b72
feat: investor pool list — collateral badge, escrow icon, Fully Subscribed state
5 files · +135 · -48
- Investor Web
- PoolCard
- Route (pools)
- Widget (overview-tab)
- Investor Web API
- pools
- Investor Web UI
- status-badge
fix 16:53:07 352644cc
fix: replace all EMERGEFI_ISSUED with PLATFORM_ISSUED — fixes build
3 files · +7 · -7
- Admin
- Route (pools)
- pool-form
- Admin API
- deposits
fix 16:48:41 2ba618be
fix: YIELD_BASED label — forfeits % of accrued yield (configurable)
1 files · +2 · -2
- Admin
- Route (pool-create)
feat 16:42:20 616534b6
feat: Phase 2 admin updates + wizard spec fixes
11 files · +1809 · -718
- Admin
- Route (pool-create)
- Route (pool-detail)
- Route (redemptions)
- Route (yield)
- Admin API
- pools
- Docs
- backend-logic-map.html
- Investor Web
- Route (landing)
- Route (portfolio)
- auth-button
- Investor Web UI
- tooltip
- Other
- .mcp.json
2026-03-11 (Wed)
🟢 ch/product
refactor 18:17:40 e5cb3e5a
refactor: rename Aset* contracts to Platform*/DepositReceipt, align roles with HTML spec, sync API endpoints
66 files · +45504 · -45433
- Contract Deploy
- BurnKYCSoulbound.s
- CreateEscrowViaFactory.s
- DeployAsetEscrow.s
- DeployAsetEscrowFactory.s
- DeployAsetKYCSoulbound.s
- DeployAsetLPToken.s
- DeployAsetPool.s
- DeployAsetReceipt.s
- DeployDepositReceipt.s
- DeployPlatformEscrow.s
- DeployPlatformEscrowFactory.s
- DeployPlatformKYCSoulbound.s
- DeployPlatformLPToken.s
- DeployPlatformPool.s
- GrantKYCRoles.s
- Contract Test
- AsetEscrow.t
- AsetEscrowFactory.t
- AsetKYCSoulbound.t
- AsetLPToken.t
- AsetPool.t
- AsetPoolFlows.t
- AsetReceipt.t
- DepositReceipt.t
- PlatformEscrow.t
- PlatformEscrowFactory.t
- PlatformKYCSoulbound.t
- PlatformLPToken.t
- PlatformPool.t
- PlatformPoolFlows.t
- Docs
- backend-logic-map.html
- Infra
- deploy-pool.ts
- kyc-sbt.ts
- Investor Web
- contracts
- Lambda API
- pools.post.burn-receipt
- pools.post.transfer-lp
- Other
- CLAUDE.md
- Smart Contract
- .env.example
- AsetEscrow
- AsetEscrow.abi.json
- AsetEscrowFactory
- AsetEscrowFactory.abi.json
- AsetKYCSoulbound
- AsetKYCSoulbound.abi.json
- AsetLPToken
- AsetLPToken.abi.json
- AsetLPToken.bytecode.ts
- AsetPool
- AsetPool.abi.json
- AsetPool.bytecode.ts
- AsetReceipt
- AsetReceipt.abi.json
- DepositReceipt
- DepositReceipt.abi.json
- Makefile
- PlatformEscrow
- PlatformEscrow.abi.json
- PlatformEscrowFactory
- PlatformEscrowFactory.abi.json
- PlatformKYCSoulbound
- PlatformKYCSoulbound.abi.json
- PlatformLPToken
- PlatformLPToken.abi.json
- PlatformLPToken.bytecode.ts
- PlatformPool
- PlatformPool.abi.json
- PlatformPool.bytecode.ts
docs 17:29:20 8c7eafd1
docs: add activity dashboard — auto-generated commit history by author in backend-logic-map
3 files · +5169 · -3
- CI/CD
- deploy-docs.yml
- Docs
- backend-logic-map.html
- generate-dashboard.sh
feat 16:06:03 69f527e3
feat: KYC flow improvements — SumSub integration, SBT re-certification, toast notifications
33 files · +1431 · -384
- Admin
- Route (kyc)
- eslint.config
- Admin API
- kyc
- CI/CD
- slack-push-notify.yml
- Contract Deploy
- BurnKYCSoulbound.s
- DeployAsetKYCSoulbound.s
- Infra
- .env.example
- CDK Stack (api-stack)
- DB schema.sql
- DB seed.sql
- client.ts
- environment.ts
- index.ts
- kyc-sbt.ts
- Investor Web
- eslint.config
- package
- provider
- types
- use-sign-in
- Investor Web API
- auth
- index
- kyc
- use-kyc
- use-user-settings
- Investor Web UI
- KYCModal
- Lambda API
- auth.post.verify
- kyc.get.status
- kyc.post.access-token
- kyc.post.mint-sbt
- kyc.post.webhook
- Other
- pnpm-lock.yaml
- Smart Contract
- Makefile
🔵 jy/product
docs 15:45:30 edcb6a80
docs: update backend-logic-map and add docs-src build tooling
5 files · +10278 · -81
- Docs
- backend-logic-map.html
- backend-logic-map.html.bak
- Other
- docs-src/build.py
- docs-src/template/notion_config.json
- docs-src/template/shell.html
2026-03-10 (Tue)
🟢 ch/product
No activity
🔵 jy/product
docs 17:47:26 51cc06a6
docs: Round 2 surgical fixes — 14 corrections synced with Notion
1 files · +100 · -61
- Docs
- backend-logic-map.html
2026-03-09 (Mon)
🟢 ch/product
No activity
🔵 jy/product
fix 17:05:34 04e10d83
fix(critical): remove 2 extra </div> tags breaking sidebar navigation
1 files · -2
- Docs
- backend-logic-map.html
fix 16:46:19 b8790f8d
fix: QA fixes — replace legacy redemption flow, add deposit/yield flow diagrams
1 files · +191 · -15
- Docs
- backend-logic-map.html
other 16:20:58 d81e9d85
Batch 4: API + Kanban + R15 Changelog
1 files · +170 · -3
- Docs
- backend-logic-map.html
other 16:15:40 ac505c03
Batch 3: Lifecycle + Triggers + RBAC updates
1 files · +2465 · -2415
- Docs
- backend-logic-map.html
other 16:09:42 e37f9887
Batch 2: Concepts + Status Machines updates
1 files · +198 · -15
- Docs
- backend-logic-map.html
other 15:26:11 68fbb591
P0 fixes re-applied + Batch 1 schema section updates
1 files · +541 · -341
- Docs
- backend-logic-map.html
2026-03-06 (Fri)
🟢 ch/product
feat 15:52:45 0fdef03e
feat: replace remaining mock data with real API calls across admin-web and web
25 files · +624 · -585
- Admin
- Route (fund-manager-detail)
- Route (pool-create)
- Route (pool-detail)
- create-distribution-form
- Admin API
- index
- notifications
- permissions
- pools
- use-funds
- use-notification-logs
- Infra
- CDK Stack (api-stack)
- Investor Web
- Widget (documents-tab)
- Widget (performance-tab)
- Investor Web API
- index
- keys
- nav-changes
- performance-data
- pool-documents
- use-nav-changes
- use-pool-documents
- Lambda API
- notification-logs.post.escalate
- notification-logs.post.resend
- pool-tvl-history.get.list
chore 15:23:54 d10f94aa
chore: rename EMERGEFI to ASET
2 files · +2 · -2
- Infra
- deploy-pool.ts
- Smart Contract
- AsetPool.bytecode.ts
fix 15:22:39 9e1a9fa7
fix: replace remaining @emergefi references with @aset across imports and emails
10 files · +22 · -22
- Admin
- Route (login)
- provider
- Admin API
- permissions
- Infra
- deploy-pool.ts
- kyc-sbt.ts
- Investor Web
- Route (portfolio)
- contracts
- Investor Web UI
- KYCStatusCard
- Lambda API
- pools.post.burn-receipt
- pools.post.transfer-lp
chore 15:11:22 5474701a
chore: trigger CI deployment test
refactor 14:49:46 de22ae02
refactor: rebrand EmergeFi to Aset, unify design system, and clean up code
148 files · +46295 · -45989
- Admin
- .env
- Route (admin-settings)
- Route (dashboard)
- Route (deposits)
- Route (fund-manager-detail)
- Route (fund-managers)
- Route (kyc)
- Route (login)
- Route (my-settings)
- Route (pool-create)
- Route (pool-detail)
- Route (pools)
- Route (redemptions)
- Route (yield)
- aset-logo
- backend_requirements
- create-distribution-form
- env
- favicon
- formatters
- global
- header
- package
- pool-form
- root
- sidebar
- Admin UI
- alert-card
- button
- cancellation-timer
- card
- data-table
- detail-drawer
- empty-state
- explorer-link
- logo
- metric-card
- notification-log
- page-header
- page-layout
- permission-guard
- refresh-indicator
- skeleton
- status-badge
- sub-status-indicator
- switch
- table
- tabs
- CI/CD
- deploy-admin-web.yml
- deploy-docs.yml
- deploy-web.yml
- Contract Deploy
- CreateEscrowViaFactory.s
- DeployAsetEscrow.s
- DeployAsetEscrowFactory.s
- DeployAsetKYCSoulbound.s
- DeployAsetLPToken.s
- DeployAsetPool.s
- DeployAsetReceipt.s
- DeployEmergeFiEscrow.s
- DeployEmergeFiEscrowFactory.s
- DeployEmergeFiKYCSoulbound.s
- DeployEmergeFiLPToken.s
- DeployEmergeFiPool.s
- DeployEmergeFiReceipt.s
- GrantKYCRoles.s
- Contract Test
- AsetEscrow.t
- AsetEscrowFactory.t
- AsetKYCSoulbound.t
- AsetLPToken.t
- AsetPool.t
- AsetPoolFlows.t
- AsetReceipt.t
- EmergeFiEscrow.t
- EmergeFiEscrowFactory.t
- EmergeFiKYCSoulbound.t
- EmergeFiLPToken.t
- EmergeFiPool.t
- EmergeFiPoolFlows.t
- EmergeFiReceipt.t
- Docs
- README.md
- Infra
- .env.example
- CDK Stack (admin-web-stack)
- CDK Stack (api-stack)
- CDK Stack (docs-stack)
- CDK Stack (web-stack)
- DB schema.sql
- DB seed.sql
- app.ts
- deploy-pool.ts
- docs.ts
- environment.ts
- kyc-sbt.ts
- package.json
- siwe.ts
- Investor Web
- .env
- Widget (overview-tab)
- aset-logo
- contracts
- env
- favicon
- global
- package
- wagmi
- Investor Web UI
- InvestModal
- RedeemModal
- badge
- button
- input
- select
- Lambda API
- auth.post.verify
- pools.post.burn-receipt
- pools.post.transfer-lp
- Other
- CLAUDE.md
- README.md
- package.json
- Smart Contract
- .env.example
- AsetEscrow
- AsetEscrow.abi.json
- AsetEscrowFactory
- AsetEscrowFactory.abi.json
- AsetKYCSoulbound
- AsetKYCSoulbound.abi.json
- AsetLPToken
- AsetLPToken.abi.json
- AsetLPToken.bytecode.ts
- AsetPool
- AsetPool.abi.json
- AsetPool.bytecode.ts
- AsetReceipt
- AsetReceipt.abi.json
- EmergeFiEscrow
- EmergeFiEscrow.abi.json
- EmergeFiEscrowFactory
- EmergeFiEscrowFactory.abi.json
- EmergeFiKYCSoulbound
- EmergeFiKYCSoulbound.abi.json
- EmergeFiLPToken
- EmergeFiLPToken.abi.json
- EmergeFiLPToken.bytecode.ts
- EmergeFiPool
- EmergeFiPool.abi.json
- EmergeFiPool.bytecode.ts
- EmergeFiReceipt
- EmergeFiReceipt.abi.json
- package.json
refactor 11:30:57 aa01ced6
refactor: enforce coding standards, fix Solidity security issues, and replace hardcoded colors with theme variables
52 files · +589 · -328
- Admin
- Route (dashboard)
- Route (deposits)
- Route (my-settings)
- Route (pool-create)
- Route (pool-detail)
- Route (redemptions)
- Route (yield)
- Admin API
- notifications
- permissions
- Admin UI
- data-table
- detail-drawer
- explorer-link
- notification-log
- refresh-indicator
- sub-status-indicator
- Infra
- chain.ts
- Investor Web
- PoolCard
- Route ($)
- Route (dashboard)
- Route (help)
- Route (landing)
- Route (notifications)
- Route (pool.$id)
- Route (pools)
- Route (portfolio)
- Route (settings)
- Widget (documents-tab)
- Widget (header)
- Widget (performance-tab)
- Widget (risk-terms-tab)
- Widget (tvl-chart)
- favicon
- formatters
- hashed_logo
- provider
- root
- wagmi
- Investor Web API
- notifications
- performance-data
- yield-claims
- yield-distributions
- Investor Web UI
- Footer
- InvestModal
- KYCModal
- LegalPageLayout
- MobileBottomNav
- OnboardingModal
- RedeemModal
- TransactionDetailDrawer
- YieldClaimDialog
- step-indicator
- Smart Contract
- EmergeFiPool
fix 10:41:38 3d624846
fix(infra): convert seed UUIDs to valid v4 format for API validation
1 files · +231 · -231
- Infra
- DB seed.sql
chore 10:41:38 08d941d8
chore(admin-web): remove unused code and fix query key consistency
3 files · +11 · -14
- Admin API
- funds
- kyc
- use-funds
feat 10:41:38 34cbe923
feat: replace mock data with real API integration across admin-web
25 files · +1684 · -733
- Admin
- Route (admin-settings)
- Route (dashboard)
- Route (deposits)
- Route (fund-managers)
- Route (kyc)
- Admin API
- dashboard
- deposits
- funds
- index
- keys
- kyc
- use-dashboard
- use-deposits
- use-funds
- use-kyc
- Admin UI
- index
- skeleton
- Docs
- backend-logic-map.html
- Infra
- CDK Stack (api-stack)
- DB seed.sql
- Lambda API
- activity-events.get.list
- dashboard.get.stats
- deposits.get.list
- funds.get.list
- notification-logs.get.list
refactor 10:41:38 1af9568f
refactor: update RedemptionStatus type to use REQUESTED instead of PENDING
1 files · +1 · -1
- Investor Web API
- redemption-requests
refactor 10:41:36 fc584f3d
refactor: align lambda handlers and web UI with R15 schema migration
18 files · +246 · -194
- Investor Web
- Route (portfolio)
- Investor Web UI
- status-badge
- Lambda API
- admin-users.delete
- admin-users.get.list
- admin-users.post.create
- admin-users.put.update
- deposits.post.match
- funds.post.create
- funds.put.update
- pools.get.list
- pools.post.burn-receipt
- pools.post.create
- pools.post.transfer-lp
- redemption-requests.get.list
- redemption-requests.post.approve
- redemption-requests.post.create
- redemption-requests.post.recommend
- redemption-requests.post.reject
🔵 jy/product
feat 13:15:24 ec608194
feat(web): landing page branding overhaul — value-driven editorial layout
6 files · +276 · -213
- Investor Web
- Route (landing)
- aset-logo
- aset-logo-white
- hashed_logo
- Investor Web UI
- Footer
- logo
feat 09:09:15 3886d6fc
feat(web): full dark mode landing page with glassmorphism + sphere hero
5 files · +452 · -188
- Investor Web
- Route (landing)
- Widget (header)
- aset-logo-white
- sphere
- Investor Web UI
- Footer
feat 17:59:52 3e8d303f
feat(web): Phase 8 — Header/Auth UX, Mobile QA, Portfolio, Dashboard, Notifications
10 files · +435 · -292
- Investor Web
- Route (dashboard)
- Route (portfolio)
- Route (transactions)
- Widget (header)
- auth-button
- favicon
- formatters
- global
- Investor Web UI
- filter-tabs
- status-badge
2026-03-05 (Thu)
🟢 ch/product
No activity
🔵 jy/product
other 18:41:58 859fca96
Phase 6: Design polish & consistency — color unification, logo swap, footer restructure, mobile fixes
67 files · +6865 · -1473
- Infra
- supabase.ts
- Investor Web
- PoolCard
- Route ($)
- Route (bridge)
- Route (dashboard)
- Route (disclaimer)
- Route (help)
- Route (home)
- Route (landing)
- Route (notifications)
- Route (pool.$id)
- Route (pools)
- Route (portfolio)
- Route (privacy)
- Route (settings)
- Route (terms)
- Route (transactions)
- Widget (asset-details-tab)
- Widget (documents-tab)
- Widget (header)
- Widget (index)
- Widget (issuer-tab)
- Widget (overview-tab)
- Widget (performance-tab)
- Widget (risk-terms-tab)
- Widget (tvl-chart)
- aset-logo
- formatters
- global
- package
- root
- routes
- Investor Web API
- index
- keys
- notifications
- performance-data
- pools
- redemption-requests
- use-notifications
- use-pools
- use-user-settings
- use-yield-claims
- use-yield-distributions
- user-settings
- yield-claims
- yield-distributions
- Investor Web UI
- Footer
- InvestModal
- KYCModal
- KYCStatusCard
- LegalPageLayout
- MobileBottomNav
- OnboardingModal
- RedeemModal
- TransactionDetailDrawer
- YieldClaimDialog
- filter-tabs
- index
- logo
- stat-card
- status-badge
- step-indicator
- Other
- .mcp.json
- CLAUDE.md
- README.md
- pnpm-lock.yaml
2026-03-03 (Tue)
🟢 ch/product
fix 12:04:09 3a957b1f
fix(admin-web): use VITE_APP_ENV for dev auto-login so it works in built deployments
1 files · +1 · -1
- Admin
- provider
🔵 jy/product
fix 19:31:07 645b1e9d
fix(admin-web): remove unused FmAcceptRedemptionPayload import
1 files · -1
- Admin API
- use-redemption-requests
fix 19:27:52 89423ea7
fix: resolve build errors in web and admin-web
2 files · +5 · -5
- Admin API
- use-redemption-requests
- Investor Web
- Route (portfolio)
other 19:19:59 19f0c3db
R15: schema merge migration — rename tables, restructure columns, add admin tables
74 files · +2993 · -2309
- Admin
- Route (redemptions)
- Admin API
- fund-members
- issuer-admins
- keys
- platform-admins
- pools
- redemption-requests
- use-fund-members
- use-issuer-admins
- use-platform-admins
- use-pools
- Admin UI
- status-badge
- Docs
- backend-logic-map.html
- Infra
- CDK Stack (api-stack)
- DB schema.sql
- Investor Web
- Route (pool.$id)
- Route (portfolio)
- Route (transactions)
- Investor Web API
- deposits
- index
- keys
- pending-receipts
- pools
- redemption-requests
- use-deposits
- use-pending-receipts
- use-redeposit
- Investor Web UI
- status-badge
- Lambda API
- admin-users.delete
- admin-users.get.list
- admin-users.post.create
- admin-users.put.update
- deposits.get.list
- deposits.post.create
- deposits.post.match
- deposits.post.refund
- deposits.scheduler.auto-refund
- fund-members.delete
- fund-members.get.list
- fund-members.post.create
- fund-members.put.update
- funds.delete
- funds.get.list
- funds.post.create
- funds.put.update
- issuer-admins.delete
- issuer-admins.get.list
- issuer-admins.post.create
- issuer-admins.put.update
- issuers.delete
- issuers.get.list
- issuers.post.create
- issuers.put.update
- pending-receipts.get.list
- pending-receipts.post.create
- pending-receipts.post.match
- pending-receipts.post.refund
- pending-receipts.scheduler.auto-refund
- platform-admins.delete
- platform-admins.get.list
- platform-admins.post.create
- platform-admins.put.update
- pools.post.burn-receipt
- pools.post.create
- pools.post.create-escrow
- pools.post.deploy
- pools.post.transfer-lp
- redemption-requests.get.list
- redemption-requests.post.approve
- redemption-requests.post.recommend
- redemption-requests.post.reject
- redeposit.post.create
- yield-distributions.get.list
2026-02-27 (Fri)
🟢 ch/product
No activity
🔵 jy/product
other 23:08:46 6dd16f10
R10-R14: Admin panel rounds 10-14 + QA fixes
18 files · +506 · -354
- Admin
- Route (admin-settings)
- Route (dashboard)
- Route (deposits)
- Route (fund-manager-detail)
- Route (kyc)
- Route (my-settings)
- Route (pool-create)
- Route (pool-detail)
- Route (pools)
- Route (redemptions)
- Route (yield)
- routes
- Admin API
- funds
- notifications
- Admin UI
- detail-drawer
- notification-log
- page-layout
- switch
feat 17:26:36 1a76ab3a
feat(admin-web): Round 6 handoff — all 22 items implemented
102 files · +5249 · -3584
- Admin
- Route (admin-settings)
- Route (admin-users)
- Route (assignments)
- Route (dashboard)
- Route (deposits)
- Route (fund-manager-detail)
- Route (fund-managers)
- Route (kyc)
- Route (login)
- Route (my-settings)
- Route (pf-changes)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (pools)
- Route (receipts)
- Route (redemptions)
- Route (settings)
- Route (users)
- Route (yield)
- admin-dashboard
- assets-tab
- auth-button
- auth-context
- backend_requirements
- compositions-tab
- contracts
- create-assignment-form
- create-distribution-form
- documents-tab
- formatters
- fund-manager-dashboard
- global
- header
- hooks
- index
- investors-tab
- operator-dashboard
- overview-tab
- propose-pf-form
- provider
- role-switcher
- root
- routes
- sidebar
- siwe-message
- types
- use-sign-in
- wagmi
- Admin API
- dashboard
- deposits
- fm-assignments
- funds
- index
- investor-users
- issuers
- kyc
- notifications
- pending-receipts
- permissions
- pf-changes
- pool-compositions
- pool-documents
- portfolio-positions
- underlying-assets
- use-auth
- use-fm-assignments
- use-investor-users
- use-issuers
- use-pending-receipts
- use-pf-changes
- use-pool-compositions
- use-pool-documents
- use-portfolio-positions
- use-underlying-assets
- Admin UI
- alert-card
- cancellation-timer
- data-table
- detail-drawer
- explorer-link
- index
- notification-log
- page-layout
- permission-guard
- refresh-indicator
- role-guard
- status-badge
- sub-status-indicator
- Docs
- README.txt
- backend-logic-map.html
- project.json
- Other
- CLAUDE.md
- README.md
2026-02-26 (Thu)
🟢 ch/product
chore 14:50:15 0519be84
chore: test redeploy web
3 files · +155 · -2
- Admin
- Route (dashboard)
- CI/CD
- deploy-web.yml
- Investor Web
- Route (home)
chore 14:35:21 7da66629
chore: test redeploy admin
6 files · +36 · -2
- Admin
- .env
- CI/CD
- deploy-admin-web.yml
- Investor Web
- .env
- Other
- .gitignore
chore 14:27:40 8b0b3828
chore: test redeploy admin
2 files · +161 · -3
- Admin
- Route (dashboard)
- CI/CD
- deploy-admin-web.yml
chore 14:02:22 23bbb4c9
chore: test redeploy
6 files · +48 · -34
- CI/CD
- deploy-docs.yml
- Docs
- backend-logic-map.html
- Infra
- CDK Stack (certificate-stack)
- CDK Stack (docs-stack)
- app.ts
- docs.ts
🔵 jy/product
No activity
2026-02-24 (Tue)
🟢 ch/product
docs 18:01:51 5853672a
docs: display all schema.sql columns in backend-logic-map entity grid
1 files · +96 · -34
- Docs
- backend-logic-map.html
docs 17:47:39 59ea7455
docs: sync backend-logic-map DB schema section with current schema.sql v3
1 files · +179 · -129
- Docs
- backend-logic-map.html
feat 17:34:27 f0a41242
feat: implement backlog features, replace legacy modules, and enforce code quality
153 files · +4578 · -2258
- Admin
- Route (admin-users)
- Route (assignments)
- Route (issuer-admins)
- Route (issuers)
- Route (nav-changes)
- Route (pf-changes)
- Route (platform-admins)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (pools)
- Route (receipts)
- Route (redemptions)
- Route (settings)
- Route (users)
- Route (yield)
- admin-dashboard
- assets-tab
- auth-button
- client
- compositions-tab
- create-admin-form
- create-assignment-form
- create-distribution-form
- documents-tab
- fund-manager-dashboard
- header
- index
- investors-tab
- operator-dashboard
- overview-tab
- propose-nav-form
- propose-pf-form
- role-switcher
- routes
- sidebar
- Admin API
- admin-users
- fm-assignments
- index
- issuer-admins
- issuers
- keys
- nav-changes
- pending-receipts
- pf-changes
- platform-admins
- pools
- redemption-requests
- use-admin-users
- use-fm-assignments
- use-issuer-admins
- use-issuers
- use-nav-changes
- use-pending-receipts
- use-pf-changes
- use-platform-admins
- use-pools
- use-redemption-requests
- Admin UI
- card
- data-table
- empty-state
- status-badge
- table
- Contract Deploy
- DeployEmergeFiPool.s
- Contract Test
- EmergeFiLPToken.t
- EmergeFiPool.t
- EmergeFiPoolFlows.t
- EmergeFiReceipt.t
- Infra
- CDK Stack (api-stack)
- DB schema.sql
- parse-body.ts
- siwe.ts
- supabase.ts
- Investor Web
- PoolCard
- Route (home)
- Route (pool.$id)
- Route (portfolio)
- Route (transactions)
- Widget (header)
- client
- package
- provider
- routes
- Investor Web API
- index
- keys
- pending-receipts
- pools
- redemption-requests
- redeposit
- use-redemption-requests
- use-redeposit
- use-yield-distributions
- yield-distributions
- Investor Web UI
- KYCModal
- dialog
- index
- label
- status-badge
- Lambda API
- admin-users.delete
- admin-users.get.list
- admin-users.post.create
- admin-users.put.update
- fm-assignments.delete
- fm-assignments.get.list
- fm-assignments.post.create
- issuer-admins.delete
- issuer-admins.get.list
- issuer-admins.post.create
- issuer-admins.put.update
- issuers.delete
- issuers.put.update
- nav-changes.get.list
- nav-changes.post.activate
- nav-changes.post.cancel
- nav-changes.post.propose
- pending-receipts.get.list
- pending-receipts.post.create
- pending-receipts.post.match
- pending-receipts.scheduler.auto-refund
- pf-changes.get.list
- pf-changes.post.activate
- pf-changes.post.cancel
- pf-changes.post.propose
- platform-admins.delete
- platform-admins.get.list
- platform-admins.post.create
- platform-admins.put.update
- pool-compositions.get.list
- pools.get.list
- pools.post.create
- pools.post.transfer-lp
- portfolio-positions.get.list
- redemption-requests.get.list
- redemption-requests.post.approve
- redemption-requests.post.complete
- redemption-requests.post.create
- redemption-requests.post.recommend
- redemption-requests.post.reject
- redeposit.post.create
- users.get.list
- yield-distributions.post.create
- Other
- CLAUDE.md
- README.md
- pnpm-lock.yaml
- Smart Contract
- EmergeFiEscrow
- EmergeFiLPToken
- EmergeFiPool
- EmergeFiReceipt
🔵 jy/product
feat 17:36:15 68be2b4d
feat(decisions): overhaul Decisions section — 9 tickets (D-1 to D-6, L-1 to L-3)
1 files · +642 · -458
- Docs
- backend-logic-map.html
feat 16:05:12 29feead1
feat(decisions): overhaul Decisions section — 9 tickets (D-1 to D-6, L-1 to L-3)
1 files · +642 · -458
- Docs
- backend-logic-map.html
2026-02-23 (Mon)
🟢 ch/product
other 17:45:00 4d697362
ci: add Slack notifications to docs deploy workflow and update docs
3 files · +115 · -29
- CI/CD
- deploy-docs.yml
- Docs
- README.md
- backend-logic-map.html
fix 17:40:23 184f6ee9
fix: specify pnpm version in packageManager for GitHub Actions
1 files · +1
- Other
- package.json
docs 17:38:10 23463664
docs: bump backend logic map version to v6 for deploy test
1 files · +2 · -2
- Docs
- backend-logic-map.html
other 17:34:21 0f8edd0b
ci: allow docs deploy workflow to trigger on all branches
1 files · -2
- CI/CD
- deploy-docs.yml
feat 17:31:36 f0a6c2d2
feat: add docs/web/admin-web S3+CloudFront stacks and docs auto-deploy CI
17 files · +5463 · -12
- Admin
- package
- root
- CI/CD
- deploy-docs.yml
- Docs
- README.md
- backend-logic-map.html
- Infra
- CDK Stack (admin-web-stack)
- CDK Stack (certificate-stack)
- CDK Stack (docs-stack)
- CDK Stack (index)
- CDK Stack (web-stack)
- app.ts
- cdk.docs.json
- docs.ts
- environment.ts
- package.json
- Investor Web
- package
- root
🔵 jy/product
No activity
2026-02-20 (Fri)
🟢 ch/product
feat 18:32:18 17e00886
feat: add backend lambdas, contract upgrades, and web API refactor
67 files · +5774 · -1637
- CI/CD
- slack-notify-frontend.yml
- slack-push-notify.yml
- Contract Deploy
- DeployEmergeFiPool.s
- Contract Test
- EmergeFiPool.t
- EmergeFiPoolFlows.t
- Infra
- CDK Stack (api-stack)
- Investor Web
- .env
- Route (pool.$id)
- Route (pool.create)
- Route (portfolio)
- Widget (header)
- package
- routes
- Investor Web API
- index
- investments
- keys
- pending-receipts
- pools
- portfolio-positions
- redemption-requests
- use-investments
- use-pending-receipts
- use-pools
- use-portfolio-positions
- use-redemption-requests
- users
- wallets
- Investor Web UI
- status-badge
- Lambda API
- admin-users.delete
- admin-users.get.list
- admin-users.post.create
- admin-users.put.update
- auth.post.verify
- fm-assignments.delete
- fm-assignments.get.list
- fm-assignments.post.create
- investments.get.list
- investments.post.create
- issuers.get.list
- issuers.post.create
- pending-receipts.get.list
- pending-receipts.post.create
- pending-receipts.post.match
- pending-receipts.post.refund
- pf-changes.get.list
- pf-changes.post.activate
- pf-changes.post.cancel
- pf-changes.post.propose
- pool-compositions.get.list
- pool-documents.get.list
- pools.post.burn-receipt
- pools.post.transfer-lp
- portfolio-positions.get.list
- redemption-requests.get.list
- redemption-requests.post.approve
- redemption-requests.post.complete
- redemption-requests.post.create
- redemption-requests.post.recommend
- redemption-requests.post.reject
- redeposit.post.create
- wallets.get.list
- yield-distributions.get.list
- yield-distributions.post.create
- Other
- CLAUDE.md
- pnpm-lock.yaml
- Smart Contract
- EmergeFiPool
feat 18:31:03 471d9aaa
feat: build admin-web dashboard with full API integration
98 files · +5736 · -83
- Admin
- Route (admin-users)
- Route (assignments)
- Route (dashboard)
- Route (pf-changes)
- Route (pool-create)
- Route (pool-detail)
- Route (pool-edit)
- Route (pools)
- Route (receipts)
- Route (redemptions)
- Route (settings)
- Route (users)
- Route (yield)
- admin-dashboard
- assets-tab
- auth-context
- compositions-tab
- create-admin-form
- create-assignment-form
- create-distribution-form
- documents-tab
- formatters
- fund-manager-dashboard
- header
- index
- investors-tab
- methods
- operator-dashboard
- overview-tab
- package
- pool-form
- propose-pf-form
- provider
- role-switcher
- routes
- sidebar
- types
- use-sign-in
- Admin API
- admin-users
- fm-assignments
- index
- investor-users
- issuers
- keys
- pending-receipts
- pf-changes
- pool-compositions
- pool-documents
- pools
- portfolio-positions
- redemption-requests
- underlying-assets
- use-admin-users
- use-fm-assignments
- use-investor-users
- use-issuers
- use-pending-receipts
- use-pf-changes
- use-pool-compositions
- use-pool-documents
- use-pools
- use-portfolio-positions
- use-redemption-requests
- use-underlying-assets
- use-yield-distributions
- yield-distributions
- Admin UI
- badge
- card
- confirm-dialog
- data-table
- dialog
- dropdown-menu
- empty-state
- index
- input
- label
- metric-card
- page-header
- page-layout
- role-guard
- select
- separator
- status-badge
- switch
- table
- tabs
- textarea
- tooltip
🔵 jy/product
No activity
2026-02-19 (Thu)
🟢 ch/product
docs 17:40:29 1ecb3b67
docs: add user flow documentation, DB schema, and project README
3 files · +1519
- Infra
- DB schema.sql
- Other
- CLAUDE.md
- README.md
🔵 jy/product
No activity
2026-02-12 (Thu)
🟢 ch/product
other 15:09:33 80b23388
ci: add Slack notification workflow for frontend-app branch pushes
1 files · +71
- CI/CD
- slack-notify-frontend.yml
🔵 jy/product
No activity
2026-02-11 (Wed)
🟢 ch/product
🔵 jy/product
No activity
2026-02-10 (Tue)
🟢 ch/product
feat 17:10:13 b80f206b
feat: add admin-web setting
51 files · +1399 · -105
- Admin
- .env
- Route (dashboard)
- auth-button
- auth-context
- client
- components
- contracts
- entry.client
- entry.server
- env
- env.d
- eslint.config
- favicon
- formatters
- global
- header
- hooks
- index
- methods
- package
- provider
- query-client
- react-router.config
- root
- routes
- sidebar
- siwe-message
- tsconfig
- tsconfig.app
- tsconfig.node
- types
- use-sign-in
- utils
- vite
- vite.config
- wagmi
- Admin API
- auth
- index
- use-auth
- Admin UI
- button
- index
- logo
- Other
- .gitignore
- pnpm-lock.yaml
feat 16:48:40 e2418f38
feat: gate invest flow behind KYC verification and add lpIssuanceModel to PoolView
2 files · +19 · -1
- Investor Web
- Route (pool.$id)
- Investor Web API
- pools
refactor 16:34:31 5fc6a8a0
refactor: centralize ABIs, rename contracts/lambdas, and apply code quality fixes
100 files · +45725 · -4479
- Contract Deploy
- CreateEscrowViaFactory.s
- DeployEmergeFiEscrow.s
- DeployEmergeFiEscrowFactory.s
- DeployEmergeFiKYCSoulbound.s
- DeployEmergeFiLPToken.s
- DeployEmergeFiPool.s
- DeployEmergeFiReceipt.s
- DeployKYCSoulbound.s
- DeployLPToken.s
- GrantKYCRoles.s
- Contract Test
- EmergeFiEscrow.t
- EmergeFiEscrowFactory.t
- EmergeFiKYCSoulbound.t
- EmergeFiLPToken.t
- EmergeFiPool.t
- EmergeFiReceipt.t
- KYCSoulbound.t
- LPToken.t
- Infra
- .env.example
- CDK Stack (api-stack)
- chain.ts
- deploy-pool.ts
- environment.ts
- index.ts
- kyc-sbt.ts
- kyc-soulbound.abi.json
- package.json
- parse-body.ts
- Investor Web
- Route (pool.$id)
- Route (pool.create)
- Widget (asset-details-tab)
- Widget (documents-tab)
- Widget (header)
- Widget (index)
- Widget (issuer-tab)
- Widget (overview-tab)
- Widget (risk-terms-tab)
- client
- contracts
- index
- package
- root
- routes
- useClaimYield
- useDeposit
- useKYCStatus
- usePoolData
- wagmi
- Investor Web API
- investments
- pools
- use-investments
- use-pools
- Investor Web UI
- button
- Lambda API
- auth.nonce
- auth.post.nonce
- auth.post.verify
- auth.verify
- investments.get
- investments.get.list
- investments.post.create
- kyc-logs.get
- kyc-logs.get.list
- pools.get
- pools.get.list
- pools.post.burn-receipt
- pools.post.create
- pools.post.create-escrow
- pools.post.deploy
- pools.post.transfer-lp
- redemption-requests.get
- redemption-requests.get.list
- underlying-assets.get
- underlying-assets.get.list
- users.get
- users.get.list
- wallets.get
- wallets.get.list
- Other
- pnpm-lock.yaml
- Smart Contract
- .env.example
- ERC20.abi.json
- EmergeFiEscrow
- EmergeFiEscrow.abi.json
- EmergeFiEscrowFactory
- EmergeFiEscrowFactory.abi.json
- EmergeFiKYCSoulbound
- EmergeFiKYCSoulbound.abi.json
- EmergeFiLPToken
- EmergeFiLPToken.abi.json
- EmergeFiLPToken.bytecode.ts
- EmergeFiPool
- EmergeFiPool.abi.json
- EmergeFiPool.bytecode.ts
- EmergeFiReceipt
- EmergeFiReceipt.abi.json
- KYCSoulbound
- LPToken
- Makefile
- foundry.toml
- package.json
🔵 jy/product
feat 16:39:01 c21f9d0b
feat: Add KYC modal and update routes
3 files · +394 · -7
- Investor Web
- Route (pool.$id)
- Investor Web UI
- KYCModal
- index
2026-02-06 (Fri)
🟢 ch/product
style 18:26:01 113e26b9
style: add shadcn Select component and soften borders across UI
7 files · +414 · -30
- Investor Web
- Route (home)
- Route (portfolio)
- package
- Investor Web UI
- card
- index
- select
- Other
- pnpm-lock.yaml
refactor 18:00:57 098f3ba1
refactor: overhaul frontend with session persistence, UI reorganization, and dead code removal
51 files · +3486 · -1436
- Investor Web
- PoolCard
- Route (api-test)
- Route (home)
- Route (pool.$id)
- Route (portfolio)
- Widget (header)
- Widget (index)
- client
- contracts
- favicon
- formatters
- global
- index
- mockData
- mockDataV2
- package
- provider
- root
- useDeposit
- utils
- Investor Web API
- index
- pools
- use-investments
- use-pools
- Investor Web UI
- StatusBadge
- Tooltip
- badge
- button
- card
- index
- input
- logo
- skeleton
- status-badge
- tooltip
- Lambda API
- pools.get
- Other
- .mcp.json
- pnpm-lock.yaml
refactor 14:36:06 4222b1f5
refactor: extract Header widget and unify SIWE-based authentication
8 files · +131 · -190
- Investor Web
- Route (bridge)
- Route (home)
- Route (pool.$id)
- Route (portfolio)
- Widget (header)
- Widget (index)
- auth-button
refactor 13:29:28 86ba528f
refactor: reorganize shared modules and remove unused code
48 files · +2010 · -606
- Contract Deploy
- DeployKYCSoulbound.s
- GrantKYCRoles.s
- Contract Test
- KYCSoulbound.t
- Infra
- .env.example
- CDK Stack (api-stack)
- auth-middleware.ts
- environment.ts
- index.ts
- jwt.ts
- kyc-sbt.ts
- kyc-soulbound.abi.json
- middleware.ts
- siwe.ts
- supabase.ts
- Investor Web
- Route (api-test)
- index
- sign-in-button
- Investor Web API
- index
- investments
- issuers
- keys
- kyc-logs
- pools
- redemption-requests
- use-issuers
- use-redemption-requests
- users
- wallets
- Lambda API
- auth.nonce
- auth.verify
- investments.get
- issuers.get
- kyc-logs.get
- pools.get
- redemption-requests.get
- underlying-assets.get
- users.get
- wallets.get
- Smart Contract
- .env.example
- KYCSoulbound
- LPToken
- Makefile
feat 13:29:27 51fe283c
feat: add SIWE authentication system with JWT token support
54 files · +1261 · -432
- Infra
- .env.example
- CDK Stack (api-stack)
- auth-middleware.ts
- environment.ts
- jwt.ts
- package.json
- siwe.ts
- supabase.ts
- tsconfig.json
- Investor Web
- Route (api-test)
- auth-button
- auth-context
- client
- eslint.config
- hooks
- index
- provider
- root
- sign-in-button
- siwe-message
- types
- use-sign-in
- Investor Web API
- auth
- index
- issuers
- keys
- kyc-logs
- queries
- use-auth
- use-investments
- use-issuers
- use-kyc-logs
- use-pools
- use-underlying-assets
- use-users
- use-wallets
- wallets
- Investor Web UI
- button
- Lambda API
- auth.nonce
- auth.verify
- investments.get
- issuers.get
- kyc-logs.get
- pools.get
- underlying-assets.get
- users.get
- wallets.get
- Other
- .mcp.json
- .prettierrc
- package.json
- pnpm-lock.yaml
feat 13:28:28 19b8ee37
feat: add smart contracts (KYCSoulbound, LPToken, EmergeFiPool) with tests and deployment scripts
23 files · +2933 · -82
- Contract Deploy
- Counter.s
- DeployEmergeFiPool.s
- DeployKYCSoulbound.s
- DeployLPToken.s
- Contract Test
- Counter.t
- EmergeFiPool.t
- KYCSoulbound.t
- LPToken.t
- Lambda API
- investments.get
- issuers.get
- kyc-logs.get
- pools.get
- underlying-assets.get
- users.get
- Other
- .gitmodules
- Smart Contract
- .env.example
- Counter
- EmergeFiPool
- KYCSoulbound
- LPToken
- foundry.lock
- foundry.toml
- openzeppelin-contracts
fix 13:28:28 faa7d787
fix: apply code review feedback for pools ordering
1 files · +3 · -1
- Lambda API
- pools.get
fix 13:28:28 b3fbdf98
fix: apply code review feedback for Lambda validation and types
8 files · +89 · -16
- Infra
- supabase.ts
- Investor Web API
- pools
- Lambda API
- investments.get
- issuers.get
- kyc-logs.get
- pools.get
- underlying-assets.get
- users.get
fix 13:28:28 1035ce76
fix: apply code review feedback for env validation
1 files · +12 · -2
- Investor Web
- env
refactor 13:28:26 5d2ae032
refactor: clean code and improve type safety for API layer
11 files · +28 · -41
- Investor Web
- env
- env.d
- root
- Investor Web API
- index
- investments
- issuers
- kyc-logs
- pools
- underlying-assets
- users
- wallets
feat 13:27:59 ba375865
feat: update api stack
6 files · +217 · -17
- Infra
- CDK Stack (api-stack)
- Lambda API
- investments.get
- issuers.get
- pools.get
- underlying-assets.get
- Other
- .mcp.json
feat 13:27:57 7bd5296c
feat: update api and db schema by 2.0
12 files · +678 · -114
- Investor Web
- Route (api-test)
- Route (home)
- routes
- Investor Web API
- index
- investments
- issuers
- kyc-logs
- pools
- queries
- underlying-assets
- users
- wallets
🔵 jy/product
feat 13:18:28 140f4403
feat: update frontend application with latest changes
23 files · +2700 · -153
- Investor Web
- Route (bridge)
- Route (home)
- Route (pool.$id)
- Route (portfolio)
- contracts
- formatters
- global
- index
- mockData
- mockDataV2
- routes
- useClaimYield
- useDeposit
- useKYCStatus
- usePoolData
- Investor Web UI
- StatusBadge
- Tooltip
- badge
- button
- card
- index
- input
2026-01-28 (Wed)
🟢 ch/product
feat 14:51:33 7cc356c9
feat: change api url
2 files · +11 · -7
- Infra
- CDK Stack (certificate-stack)
- environment.ts
feat 13:49:27 a85bfe10
feat: add wallet info display with address and balance
1 files · +47 · -3
- Investor Web
- Route (home)
feat 13:40:41 5aa6329f
feat: add Foundry smart contract setup for Base network
76 files · +28788
- Contract Deploy
- Counter.s
- Contract Test
- Counter.t
- Smart Contract
- .env.example
- .gitattributes
- .gitignore
- Base.sol
- CODEOWNERS
- CONTRIBUTING.md
- CommonBase.t.sol
- CompilationScript.sol
- CompilationScriptBase.sol
- CompilationTest.sol
- CompilationTestBase.sol
- Config.sol
- Config.t.sol
- Counter
- IERC1155.sol
- IERC165.sol
- IERC20.sol
- IERC4626.sol
- IERC6909.sol
- IERC721.sol
- IERC7540.sol
- IERC7575.sol
- IMulticall3.sol
- LICENSE-APACHE
- LICENSE-MIT
- LibVariable.sol
- LibVariable.t.sol
- Makefile
- README.md
- RELEASE_CHECKLIST.md
- Script.sol
- StdAssertions.sol
- StdAssertions.t.sol
- StdChains.sol
- StdChains.t.sol
- StdCheats.sol
- StdCheats.t.sol
- StdConfig.sol
- StdConstants.sol
- StdConstants.t.sol
- StdError.sol
- StdError.t.sol
- StdInvariant.sol
- StdJson.sol
- StdJson.t.sol
- StdMath.sol
- StdMath.t.sol
- StdStorage.sol
- StdStorage.t.sol
- StdStyle.sol
- StdStyle.t.sol
- StdToml.sol
- StdToml.t.sol
- StdUtils.sol
- StdUtils.t.sol
- Test.sol
- Vm.sol
- Vm.t.sol
- broadcast.log.json
- ci.yml
- config.toml
- console.sol
- console2.sol
- dependabot.yml
- foundry.toml
- package.json
- safeconsole.sol
- sync.yml
- test.json
- test.toml
- vm.py
refactor 11:52:26 2ef21bf1
refactor: simplify WalletConnect project ID validation
1 files · +4 · -8
- Investor Web
- wagmi
fix 11:49:15 e301e5ae
fix: add production validation for WalletConnect project ID
1 files · +11 · -1
- Investor Web
- wagmi
feat 11:41:52 92844b1c
feat: add WalletConnect with RainbowKit for Base network
9 files · +5147 · -208
- Investor Web
- .env
- Route (home)
- env
- index
- package
- root
- wagmi
- Other
- CLAUDE.md
- pnpm-lock.yaml
🔵 jy/product
No activity
2026-01-27 (Tue)
🟢 ch/product
refactor 16:23:15 a175cf80
refactor: extract status badge classes to helper function
1 files · +12 · -9
- Investor Web
- Route (home)
feat 16:13:14 a6e7a7da
feat: add CloudFront distribution and API infrastructure
30 files · +1186 · -65
- Infra
- .env.example
- CDK Stack (api-stack)
- CDK Stack (certificate-stack)
- CDK Stack (index)
- app.ts
- cdk.context.json
- environment.ts
- package.json
- supabase.ts
- tsconfig.json
- Investor Web
- Route (home)
- client
- index
- methods
- package
- query-client
- root
- Investor Web API
- index
- pools
- queries
- Investor Web UI
- button
- index
- Lambda API
- kyc-logs.get
- pools.get
- users.get
- wallets.get
- Other
- .cursor/rules/CLAUDE.md
- pnpm-lock.yaml
- pnpm-workspace.yaml
🔵 jy/product
No activity
2026-01-23 (Fri)
🟢 ch/product
feat 14:02:16 eb6e9d63
feat: split dev and prod in cdk and add tailwind css
14 files · +485 · -75
- Infra
- .env.example
- CDK Stack (api-stack)
- app.ts
- environment.ts
- index.ts
- package.json
- Investor Web
- Route (home)
- entry.server
- global
- package
- root
- vite.config
- Other
- .mcp.json
- pnpm-lock.yaml
🔵 jy/product
No activity
2026-01-22 (Thu)
🟢 ch/product
refactor 15:58:05 301bd99d
refactor: change ~ to @
2 files · +2 · -2
- Investor Web
- tsconfig.app
- Other
- CLAUDE.md
fix 15:49:16 cdb34dd7
fix: restore isbot check for SEO support
3 files · +10
- Investor Web
- entry.server
- package
- Other
- pnpm-lock.yaml
chore 15:46:21 65f91b5e
chore: replace WEBHOOK_URL to secret variable
1 files · +1 · -1
- CI/CD
- code-review.yml
chore 15:39:41 5f84cc29
chore: remove unused package
3 files · +2 · -28
- Investor Web
- entry.server
- package
- Other
- pnpm-lock.yaml
chore 15:36:07 c6b170a1
chore: update CLAUDE.md
3 files · +46 · -203
- Investor Web
- buggy-component
- buggy-utils
- Other
- CLAUDE.md
fix 15:22:30 88216afc
fix: apply additional code review feedback
2 files · +5 · -12
- Investor Web
- buggy-component
- buggy-utils
fix 15:18:11 37f02cbe
fix: apply code review feedback
4 files · +154 · -75
- Investor Web
- buggy-component
- buggy-utils
- package
- Other
- pnpm-lock.yaml
chore 14:54:30 090f88e9
chore: trigger workflow re-run
chore 14:49:15 1fbcad2a
chore: trigger workflow re-run
chore 14:42:35 fee6d2e2
chore: switch to webhook-based Gemini code review
2 files · +36 · -61
- CI/CD
- code-review.yml
- gemini-review.yml
chore 13:33:57 f7e76441
chore: use direct Gemini API call instead of third-party action
1 files · +44 · -38
- CI/CD
- gemini-review.yml
chore 13:29:24 0a440d67
chore: improve code review prompt for stricter analysis
1 files · +31 · -15
- CI/CD
- gemini-review.yml
chore 12:09:14 35b189a0
chore: update review prompt with detailed guidelines
1 files · +9 · -1
- CI/CD
- gemini-review.yml
chore 12:06:54 fbc052f2
chore: configure Gemini API via OpenAI-compatible endpoint
1 files · +13 · -12
- CI/CD
- gemini-review.yml
chore 11:58:41 d35b788d
chore: switch to official google-gemini GitHub action
1 files · +1 · -1
- CI/CD
- gemini-review.yml
test 11:47:14 67c826ec
test: add Gemini code review workflow and intentional buggy code
3 files · +176
- CI/CD
- gemini-review.yml
- Investor Web
- buggy-component
- buggy-utils
🔵 jy/product
No activity
2026-01-21 (Wed)
🟢 ch/product
feat 17:52:49 a3563e43
feat: setting
🔵 jy/product
No activity