Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
228 commits
Select commit Hold shift + click to select a range
3ac2842
Delete cc/ folder and move docket data script to projects/ (#2)
nadahlberg Apr 3, 2026
c3ca096
wipe old app
nadahlberg Apr 3, 2026
4e76750
remove old cli commands
nadahlberg Apr 6, 2026
4043c6d
move side projects to experiments dir
nadahlberg Apr 6, 2026
14965e0
Add base model, Document model, and project/document views (#4)
nadahlberg Apr 6, 2026
f7d0173
Redesign projects and detail pages with polished styling (#6)
nadahlberg Apr 6, 2026
8278c47
Fix project detail page: navbar height, fixed layout, full text cards
claude Apr 6, 2026
8f0a8bd
Fix document area scrolling by adding min-h-0 to center column
claude Apr 6, 2026
8eecdbf
Fix navbar on projects page to stay fixed on scroll
claude Apr 6, 2026
650ffc2
Increase pagination to 100 results per page
claude Apr 6, 2026
60c38b9
Move project name and back link into left sidebar header
claude Apr 6, 2026
15a62c3
Add text filter and lazy document counting
claude Apr 6, 2026
9ac2529
Avoid COUNT queries in pagination, only count on demand
claude Apr 6, 2026
69089e4
Use blue as primary color for filters panel
claude Apr 6, 2026
b59a13f
Darken light text for better readability across both pages
claude Apr 6, 2026
1bfd721
Thin the focus ring on the filters text input
claude Apr 6, 2026
98e6abd
Add Label model with active label selector on project detail page
claude Apr 6, 2026
3da3049
Add label create/edit modals and widen label panel
claude Apr 6, 2026
c68bb31
add label migrations
nadahlberg Apr 6, 2026
ff5a2a9
Add query string filter with AND, OR, NOT, STARTSWITH support
claude Apr 6, 2026
3581fce
Change query input to auto-expanding textarea
claude Apr 6, 2026
6943b39
Allow shift+enter for newlines in query textarea
claude Apr 6, 2026
b84d155
Fix enter key handling in query textarea
claude Apr 6, 2026
9b98fbf
Add tabbed center panel with Agent, Search, Labels, Settings tabs
claude Apr 6, 2026
b738694
Add x-cloak to hidden tab panels to prevent flash on load
claude Apr 6, 2026
b66ed44
Move settings Save button to pinned footer bar
claude Apr 6, 2026
2225f11
Make tab navbar more prominent than count sub-nav
claude Apr 6, 2026
59bbba6
Make tab buttons wall-to-wall with permanent backgrounds
claude Apr 6, 2026
899648c
Add white backgrounds to center content panels
claude Apr 6, 2026
d716db4
Move settings Save button to header row next to title
claude Apr 6, 2026
b32eb2a
Move pagination into counts nav bar
claude Apr 6, 2026
6d29cea
Remove border between settings header and content
claude Apr 6, 2026
e34854f
Add shadow to center tab navbar for prominence
claude Apr 6, 2026
092872e
Add instructions to Label, add Thread and Message models
claude Apr 6, 2026
9f523b1
add migrations
nadahlberg Apr 6, 2026
7b05f28
Add AnnoAgent: thread-backed agent with persistent messages
claude Apr 6, 2026
40941d8
Rename AnnoAgent to CLXAgent in app module
claude Apr 6, 2026
c79fab3
Show thread history in left sidebar when Agent tab is active
claude Apr 6, 2026
9493ae8
Add chat interface in Agent tab with model selector
claude Apr 6, 2026
8ae9de9
Make send button a fixed 7x7 square
claude Apr 6, 2026
67357e4
Change empty thread preview text to "New chat"
claude Apr 6, 2026
634b91f
Highlight selected thread with blue left border and background
claude Apr 6, 2026
bed1dbf
Blue hover on thread items and smaller preview text
claude Apr 6, 2026
698d2de
Scope chat sending state to the originating thread
claude Apr 6, 2026
be9c393
Update model IDs to latest: Gemini 3.1, Claude 4.6, GPT-5.4
claude Apr 6, 2026
f6d18e2
Add thread delete button with confirmation modal
claude Apr 6, 2026
dc63ea8
Add project instructions and manual_instructions fields
claude Apr 6, 2026
f056b2c
add migrations
nadahlberg Apr 6, 2026
61a52ac
Add Search, UpdateLabelInstructions, UpdateProjectInstructions tools
claude Apr 6, 2026
cc5f23d
Render tool calls and tool responses in chat interface
claude Apr 6, 2026
a807e9d
Fix Gemini thought_signature error by preserving provider fields
claude Apr 6, 2026
30fb483
Add AskUser tool with interactive option buttons in chat
claude Apr 6, 2026
8afbcff
Render thinking blocks in chat as collapsible sections
claude Apr 6, 2026
4e0cbe9
Add concise LLM logging: model, tokens, cost, tool calls
claude Apr 6, 2026
5aebcd3
Disable litellm retries and fix cost logging
claude Apr 6, 2026
02c7599
Fix agent loop not continuing after tool calls
claude Apr 7, 2026
c646934
Fix sidebars overflowing and pushing page height
claude Apr 7, 2026
35a8329
Move new thread button to floating plus in agent tab
claude Apr 7, 2026
cbe4c75
Style new thread button with primary blue and shadow
claude Apr 7, 2026
501e29d
Add more top padding to chat messages to clear floating button
claude Apr 7, 2026
06bf3b7
Change new thread button to dark gray
claude Apr 7, 2026
a2cf61f
Increase new thread button offset from corner
claude Apr 7, 2026
d684617
Change new thread button to text label with gray style
claude Apr 7, 2026
25078b5
Adjust new thread button: top-3 right-3, add plus icon
claude Apr 7, 2026
5e937a2
move search manager
nadahlberg Apr 7, 2026
8d72632
Add markdown rendering for chat messages
claude Apr 7, 2026
a819c32
drop na texts on import
nadahlberg Apr 7, 2026
a28f61f
Redesign base and projects page with refined palette
claude Apr 7, 2026
dad0563
Move tabs to full-width page navbar on project detail
claude Apr 7, 2026
0fa46bd
Dark theme for projects page, fix project detail navbar layout
claude Apr 7, 2026
ab68c8b
Dark theme for project detail page, remove folder icon from project c…
claude Apr 7, 2026
7dba4b1
Increase spacing between nav tabs
claude Apr 7, 2026
9d685d0
Improve message rendering and settings UX
claude Apr 7, 2026
6fd92ce
Search results: rows with dividers instead of cards
claude Apr 7, 2026
f33d7cb
Force left-align text in AskUser component
claude Apr 7, 2026
b5b3c27
Fix search result row borders and hover highlight
claude Apr 7, 2026
b213c57
Fix settings instructions textarea autosize on tab switch
claude Apr 7, 2026
54c169a
Fix chat input: scrollable at max height, reset on send/thread switch
claude Apr 7, 2026
02cd036
Restructure chat input for proper scrolling
claude Apr 7, 2026
bd8c2da
Preserve scroll position in chat input during auto-resize
claude Apr 7, 2026
a19a450
Use structured Query schema for Search tool instead of query string
claude Apr 7, 2026
ca3ebc2
Remove manual_instructions, add label settings, markdown preview for …
claude Apr 7, 2026
cdefd03
Add generous bottom padding to search, labels, and settings tabs
claude Apr 7, 2026
7dfe902
Add danger zone with delete project/label to settings
claude Apr 7, 2026
f971910
Fix danger zone styling, add padding, guard last label deletion
claude Apr 7, 2026
e10dbe6
Add thread state persistence and search IDs
claude Apr 7, 2026
7795e25
add migrations / code format
nadahlberg Apr 7, 2026
5f9e31d
Reset active thread and chat when switching labels
claude Apr 7, 2026
a1adc48
Note case-insensitive matching in Search tool docstring
claude Apr 7, 2026
f97dd73
Add LabelDocument model, AddDocumentsToLabel tool, and Train Examples…
claude Apr 7, 2026
3bae855
Fix AddDocumentsToLabel FK violation and improve Search output format
claude Apr 7, 2026
44bd05c
Handle stale search state missing document_ids gracefully
claude Apr 7, 2026
c61db95
Rename to training examples terminology
claude Apr 7, 2026
8e64928
Add count_only flag to Search tool
claude Apr 7, 2026
c88507a
add migrations
nadahlberg Apr 7, 2026
fd09073
Add ClassificationAnnotation model, Annotate tool, and annotation fil…
claude Apr 7, 2026
8a0cc42
add migrations
nadahlberg Apr 7, 2026
1c1af93
Add 'any' option to annotation filter
claude Apr 7, 2026
c6436f7
Improve Annotate tool response: count + skip missing instead of blocking
claude Apr 7, 2026
4b487bf
Add thread usage tracking (tokens + cost) with floating display
claude Apr 7, 2026
bcf25e1
Add label training set stats bar in right sidebar
claude Apr 7, 2026
d523656
add migrations
nadahlberg Apr 7, 2026
a8cd1bc
Move new label button to labels tab, clean up label selector
claude Apr 7, 2026
72f0715
Replace search tab nav bar with floating count and pagination pills
claude Apr 7, 2026
ae11f55
Rearrange search filters: Training Data label, search button at bottom
claude Apr 7, 2026
2c9527f
Fix train examples button size shift and search button spacing
claude Apr 7, 2026
3a9d303
Add dividers between annotation filter buttons
claude Apr 7, 2026
5497ae2
Guard fetchCount against duplicate concurrent calls
claude Apr 7, 2026
49ae446
Fix doubled left border on annotation filter buttons
claude Apr 7, 2026
f694d1e
Fix Alpine null reference console errors
claude Apr 7, 2026
df268ac
Reorder tabs: Labels first and default active
claude Apr 7, 2026
b710c4b
Remove total_tokens from Thread, compute from messages instead
claude Apr 7, 2026
919e64b
add migrations
nadahlberg Apr 7, 2026
63bfba8
Use tiktoken to count per-message token length
claude Apr 7, 2026
9ef9afd
Rename Search tool label_only to from_training_set
claude Apr 7, 2026
576c883
Add CompactMemory tool with full compaction support
claude Apr 7, 2026
51840cc
Include compact message tokens in active token count
claude Apr 7, 2026
e3243a6
Add prompt registry, Prompt model, and prompts settings section
claude Apr 8, 2026
d070e91
Move reset prompt modal to top level to fix z-index clipping
claude Apr 8, 2026
7061f67
Fix reset prompt modal: use x-show instead of x-if
claude Apr 8, 2026
4419a9f
Add prompt selector in chat input next to send button
claude Apr 8, 2026
3dd8158
Show "Prompts" label on prompt selector button
claude Apr 8, 2026
7c14acc
Revert "Show "Prompts" label on prompt selector button"
claude Apr 8, 2026
8419994
add migrations
nadahlberg Apr 8, 2026
4f144ed
Settings tab: section nav in left sidebar, one section at a time
claude Apr 8, 2026
8926e4c
Floating save buttons for settings, only shown when content changes
claude Apr 8, 2026
19719ab
Fix settings save buttons to truly float above scroll content
claude Apr 8, 2026
308ee15
Use p-4 for settings section header padding
claude Apr 8, 2026
a7b67db
Add built_in field to prompts, custom prompt create/delete support
claude Apr 8, 2026
e10c781
add migrations
nadahlberg Apr 8, 2026
1e414fb
Increase spacing between prompt action buttons
claude Apr 8, 2026
a5ec38d
Add Sampling Strategy and Annotate prompts to registry
claude Apr 8, 2026
2c7a750
Add Task model with auto-sync, rename Labels tab to Overview
claude Apr 8, 2026
b964458
Spin refresh icon while tasks are loading
claude Apr 8, 2026
d2f70e8
Add autopilot_thread to Label with lazy creation and distinct UI
claude Apr 8, 2026
1d4f4ed
Add autopilot_enabled toggle to Project with navbar button
claude Apr 8, 2026
503e616
Preserve in-progress tasks during update_tasks sync
claude Apr 8, 2026
74452a8
Use wand-magic-sparkles icon for autopilot instead of bolt
claude Apr 8, 2026
2ea2dd7
Use circle-play icon for autopilot
claude Apr 8, 2026
afad161
Implement autopilot system with CLI loop, task processing, and lock UX
claude Apr 8, 2026
fd9dbc4
Fix task lifecycle: web UI handles active tasks, guard concurrent lab…
claude Apr 8, 2026
fcc9e8b
Simplify awaiting_input: any turn without CompleteTask = awaiting input
claude Apr 8, 2026
02b8d3e
Remove nudge mechanism; fix polling scroll jump
claude Apr 8, 2026
7295d6f
Use JSON comparison for polling change detection
claude Apr 8, 2026
b44c487
Right-align task status badges, truncate long prompt names
claude Apr 8, 2026
bc6dec1
Only autopilot runs the agent on autopilot threads
claude Apr 8, 2026
43f3e29
Make Search query optional to allow matching all documents
claude Apr 8, 2026
d129228
add migrations
nadahlberg Apr 8, 2026
9754968
Fix NoneType error when Search query is omitted
claude Apr 8, 2026
cad3818
Poll label stats, instructions, and project data during autopilot
claude Apr 8, 2026
7e5cb9e
Clarify AskUser options are mutually exclusive (pick one)
claude Apr 8, 2026
a90186a
Re-run query in AddTrainingExamples instead of using stored IDs
claude Apr 8, 2026
fb67713
Don't overwrite label/project fields during poll if user is editing
claude Apr 8, 2026
b8a8e84
Discard unsaved edits on tab/section switch
claude Apr 8, 2026
1343e51
Move Project Settings to top of settings nav, reset on tab switch
claude Apr 8, 2026
5f14146
Reduce autopilot compaction threshold to 50k tokens
claude Apr 8, 2026
b822523
Move compaction check inside autopilot step loop
claude Apr 8, 2026
cc83392
Reduce autopilot compaction threshold to 25k tokens
claude Apr 8, 2026
c6db691
Move compaction to before each task instead of mid-run
claude Apr 8, 2026
76a5a92
tweak prompts
nadahlberg Apr 8, 2026
deed61c
Reformat tool docstrings to multiple lines for readability
claude Apr 8, 2026
8ff4857
Reformat tool field descriptions to multiple lines
claude Apr 8, 2026
8929eb2
Add ClearToolHistory tool with hidden message support
claude Apr 8, 2026
1ca22bc
Make Next Up tasks panel scrollable
claude Apr 8, 2026
9f5bbb4
Round-robin task scheduling across labels in autopilot
claude Apr 8, 2026
51db0eb
Add timing logs for LLM calls, tool execution, and DB saves
claude Apr 9, 2026
a1c7ec9
Add DB query timing logs to Search tool
claude Apr 9, 2026
bbb30f0
Add Django SQL query logging, opt-in via SQL_LOG_LEVEL=DEBUG
claude Apr 9, 2026
955c0c6
Use ILIKE instead of UPPER/LIKE for trigram GIN index support
claude Apr 9, 2026
88cf90a
Reset awaiting_input task to pending when user replies on autopilot t…
claude Apr 9, 2026
3a124f1
Pre-generate UUIDs in bulk_create to avoid per-row existence checks
claude Apr 9, 2026
3df720a
Pre-generate UUIDs for Message bulk_create in on_step
claude Apr 9, 2026
e381793
add migrations
nadahlberg Apr 9, 2026
2802d95
Use ILIKE for startsWith queries to leverage trigram GIN index
claude Apr 9, 2026
6357d24
Add performance guidance to Search tool docstring
claude Apr 9, 2026
d85acd5
Summarize hidden messages instead of fully excluding them
claude Apr 9, 2026
57e0a53
Fix missing Task import in views.py; use ILIKE for startsWith queries
claude Apr 9, 2026
c96cccd
Increase Search tool max num_results from 100 to 1000
claude Apr 9, 2026
619390e
Show annotation stats for all labels in Overview tab
claude Apr 9, 2026
26e1867
Show instructions indicator on label cards in Overview
claude Apr 9, 2026
6f87ffb
Move tasks list to right sidebar as Autopilot section
claude Apr 9, 2026
e8f1cb9
Polish right sidebar: fix border, style Autopilot header, add placeho…
claude Apr 9, 2026
9a7685c
Split right sidebar into fixed 50/50 label and autopilot sections
claude Apr 9, 2026
3e794fa
Polish label cards: circle icons with text, move total below bar
claude Apr 9, 2026
f9b94b3
Make label cards clickable to set active label
claude Apr 9, 2026
2e75401
Poll label stats via labels API instead of separate endpoint
claude Apr 9, 2026
c78f240
Fix Annotate crash when LLM sends duplicate document IDs
claude Apr 9, 2026
91f48d9
Fix autopilot crash from stale DB connections
claude Apr 9, 2026
b7d9ec6
Fix new thread appearing above autopilot and input going inactive
claude Apr 9, 2026
b5f34a2
update s3 vars
nadahlberg Apr 9, 2026
fab7a47
code format
nadahlberg Apr 9, 2026
d81f182
Add finetune integration for labels
claude Apr 9, 2026
247a1fc
add migrations
nadahlberg Apr 9, 2026
58a5901
Use single query for finetune data assembly
claude Apr 9, 2026
1591558
Add default training args for finetune jobs
claude Apr 9, 2026
12209da
Default finetune to 3 epochs
claude Apr 9, 2026
278dcb2
Hide finetune section when no data, show status on label cards
claude Apr 9, 2026
37ebae6
Change finetune button icon to staggered bars
claude Apr 9, 2026
0140c9e
Use fa-bars-staggered icon for finetune button
claude Apr 9, 2026
503083d
Use fa-circle-nodes icon for finetune button
claude Apr 9, 2026
381ed93
Add prediction support for label documents
claude Apr 9, 2026
ebcf6fa
Show prediction status on label cards and active label panel
claude Apr 9, 2026
6555232
Compute and display prediction stats (F1, accuracy)
claude Apr 9, 2026
506639d
Standardize label card status indicators
claude Apr 9, 2026
31e9654
Reorder active label panel: finetune button above predictions section
claude Apr 9, 2026
375687e
Simplify label card status text and always show predictions
claude Apr 9, 2026
757d219
Show prediction stats on overview tab label cards
claude Apr 9, 2026
cbe0a6f
Add prediction filters to search
claude Apr 9, 2026
432c772
Show predictions on search result cards
claude Apr 9, 2026
7241d8c
Add divider between model and predictions sections in label panel
claude Apr 9, 2026
91bccf6
Use inset ring for prediction badge on search results
claude Apr 9, 2026
4b01aad
Add prediction filter to agent Search tool
claude Apr 9, 2026
b67a927
Add offset parameter to Search tool for pagination
claude Apr 9, 2026
2d30fe5
Show out-of-date finetune status on overview label cards
claude Apr 9, 2026
8935810
Make model/predictions divider go wall to wall
claude Apr 9, 2026
5504f5a
Add sort selector to search with tricky sort option
claude Apr 9, 2026
2b3e794
Replace sort button group with dropdown selector
claude Apr 9, 2026
3a49bfa
Show prediction confidence score on search result items
claude Apr 9, 2026
5d68718
Move annotation badge after prediction on search results
claude Apr 9, 2026
10e8c18
Add recalculate prediction stats button
claude Apr 9, 2026
d6be993
Add project_dir property and export_data method
claude Apr 10, 2026
93ef58e
Move imports to module level, default batch_size to 100k
claude Apr 10, 2026
9aa9711
Wipe docs.csv and exported.txt on export error
claude Apr 10, 2026
8c16e6e
add migrations
nadahlberg Apr 10, 2026
99bb0be
Catch BaseException in export_data to handle KeyboardInterrupt
claude Apr 10, 2026
480ed9d
Add cancel button for in-progress finetune jobs
claude Apr 10, 2026
e012c37
add multilabel training cli script
nadahlberg Apr 11, 2026
8a2fb75
add predicitons to multi-label train script
nadahlberg Apr 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,22 @@ from clx.models import DocketEntry
print(DocketEntry.objects.all().count())
```

## Data Ingestion

You can bulk-add documents to a project using `add_docs()`:

```python
from clx.models import Project

project = Project.objects.get(name="My Project")
project.add_docs(["First document text", "Second document text"])

# Or with metadata:
project.add_docs([
{"text": "Document text", "meta": {"source": "courtlistener"}},
])
```

## Development

Here are a few tips for setting up your development environment.
Expand Down
Loading
Loading