feat(precedents): split library into court rulings + appeals committee tables
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 1m34s

- /api/precedent-library now accepts source_kind param (default external_upload)
- list_external_case_law returns chair_name/district fields
- LibraryListPanel renders two separate tables with appropriate columns
- internal_decisions migration: added queue_halachot param to defer extraction
- Fixed practice_area mapping from style_corpus (appeals_committee → proper enum)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-04 18:49:32 +00:00
parent 92a2763b86
commit c0f67ab841
5 changed files with 221 additions and 129 deletions

View File

@@ -46,6 +46,8 @@ export type Precedent = {
headnote: string;
subject_tags: string[];
source_kind: string;
chair_name: string | null;
district: string | null;
extraction_status: string;
halacha_extraction_status: string;
metadata_extraction_requested_at: string | null;
@@ -137,6 +139,7 @@ export type ListFilters = {
court?: string;
precedentLevel?: string;
sourceType?: SourceType;
sourceKind?: string;
search?: string;
limit?: number;
offset?: number;
@@ -164,6 +167,7 @@ export function usePrecedents(filters: ListFilters = {}) {
if (filters.court) p.set("court", filters.court);
if (filters.precedentLevel) p.set("precedent_level", filters.precedentLevel);
if (filters.sourceType) p.set("source_type", filters.sourceType);
if (filters.sourceKind) p.set("source_kind", filters.sourceKind);
if (filters.search) p.set("search", filters.search);
if (filters.limit) p.set("limit", String(filters.limit));
if (filters.offset) p.set("offset", String(filters.offset));