Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
287 commits
Select commit Hold shift + click to select a range
153a790
optimize a11y
StableLlama Apr 2, 2026
2c9480b
try to fix Actions failure
StableLlama Apr 2, 2026
e82a0fe
Merge pull request #155 from StableLlama/enhance_UI
StableLlama Apr 2, 2026
137c00f
chore(deps-dev): bump typescript from 5.9.3 to 6.0.2 in /src/frontend
dependabot[bot] Apr 2, 2026
d6fe1de
Merge pull request #150 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 2, 2026
1f2a34d
chore(deps-dev): bump tailwindcss from 3.4.19 to 4.2.2 in /src/frontend
dependabot[bot] Apr 2, 2026
5852c6c
fix(frontend): wire up Tailwind v4 PostCSS plugin and update deps
StableLlama Apr 2, 2026
1740c00
fix(frontend): wire up Tailwind v4 PostCSS plugin and update deps
StableLlama Apr 2, 2026
855ca32
Merge pull request #113 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 2, 2026
feb63a4
Merge branch 'develop' of https://github.com/StableLlama/AugmentedQui…
StableLlama Apr 2, 2026
414a705
Optimize main logo loading time and traffic
StableLlama Apr 2, 2026
5276e6e
fix: restore Tailwind config path + brand palette generation
StableLlama Apr 2, 2026
112a6b7
Fix button in button error
StableLlama Apr 2, 2026
4bb659a
Merge pull request #156 from StableLlama/more_fixes
StableLlama Apr 2, 2026
269e9ab
Highlight the LLM made changes to the text
StableLlama Apr 4, 2026
2691f46
Optimize white space display and tab handling
StableLlama Apr 4, 2026
38f13ae
Merge pull request #157 from StableLlama/enhance_llm_change_display
StableLlama Apr 4, 2026
1c2ecdf
Add interface for attachments
StableLlama Apr 4, 2026
4a0cc60
Add nicer confirmation dialogs that follow the application design
StableLlama Apr 4, 2026
5f886e9
Allow attachment inclusion by dragging the file on the chat text box
StableLlama Apr 5, 2026
124442c
Change to proper OpenAI API usage
StableLlama Apr 5, 2026
505351a
Fix design in Mixed mode
StableLlama Apr 5, 2026
64eb276
Fix the test
StableLlama Apr 5, 2026
0ff73a8
All restart of chat
StableLlama Apr 5, 2026
ffd5d77
Fix language for text inputs
StableLlama Apr 5, 2026
b648486
Fix size change for GUI elements in the left pane
StableLlama Apr 5, 2026
ad57a8e
Fix design of "Tool Call Limit" dialog in Mixed mode
StableLlama Apr 5, 2026
73d5b5d
Optimize chat display of tool calls
StableLlama Apr 5, 2026
9332092
Better handlnig of LLM instructions for different project types
StableLlama Apr 5, 2026
aabc72c
Fix z order of confirmation dialog when clearing Debug logs
StableLlama Apr 6, 2026
4cfd8ea
chore(deps-dev): bump @types/node from 25.5.0 to 25.5.2 in /src/frontend
dependabot[bot] Apr 6, 2026
44b2633
chore(deps): bump turndown from 7.2.2 to 7.2.4 in /src/frontend
dependabot[bot] Apr 6, 2026
a40cb48
chore(deps): bump marked from 17.0.5 to 17.0.6 in /src/frontend
dependabot[bot] Apr 6, 2026
120d45c
chore(deps): bump @google/genai from 1.47.0 to 1.48.0 in /src/frontend
dependabot[bot] Apr 6, 2026
1eefc94
Fix EDITNG tool calling
StableLlama Apr 6, 2026
b60304a
fix GitHub error
StableLlama Apr 6, 2026
0991da8
Merge pull request #158 from StableLlama/add_attachments
StableLlama Apr 6, 2026
893c9ee
Merge pull request #161 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 6, 2026
8ad577a
Merge pull request #162 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 6, 2026
f5c44c4
Merge pull request #159 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 6, 2026
6c782aa
Merge pull request #163 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 6, 2026
7796d89
Fix chapter AI tools offering
StableLlama Apr 6, 2026
710b8fc
Fix summary generation when the EDITING wants to call functions
StableLlama Apr 6, 2026
5f14f26
UI style unification
StableLlama Apr 6, 2026
2c2385d
Show pointer when mouse is over an interactive element
StableLlama Apr 6, 2026
dc372c1
try to fix GitHub error messages
StableLlama Apr 6, 2026
1f72d1d
Better indicate resizeables on the left pane
StableLlama Apr 6, 2026
93019a1
Ensure that summary rewrite isn't poisoned by the old summary content
StableLlama Apr 6, 2026
6060bbf
Fix LLM model selection
StableLlama Apr 6, 2026
175ace5
Fix rename of sourcebook entries
StableLlama Apr 6, 2026
1ff5c71
try to fix GitHub code check complaint
StableLlama Apr 6, 2026
9e8d356
Merge pull request #164 from StableLlama/fix_little_things
StableLlama Apr 6, 2026
438400d
Initial i18n
StableLlama Apr 6, 2026
aafb95f
add initially missing languages
StableLlama Apr 6, 2026
ac2991c
Fix last missing bits to make i18n work
StableLlama Apr 6, 2026
457591c
Merge pull request #165 from StableLlama/better_language_handling
StableLlama Apr 6, 2026
5218057
mising updates
StableLlama Apr 6, 2026
32f1165
fix
StableLlama Apr 6, 2026
a4b5f02
Merge pull request #166 from StableLlama/better_language_handling
StableLlama Apr 6, 2026
ddd2490
Optimize design of accessibility focus indicator
StableLlama Apr 6, 2026
f4c7114
fix AI labels for summary dialog
StableLlama Apr 6, 2026
8bbee91
Show what was changed by the CHAT LLM
StableLlama Apr 6, 2026
4f3f7e9
More change tag work
StableLlama Apr 6, 2026
4b5c1f0
Enhance diff display
StableLlama Apr 6, 2026
deaf73f
better handling of diffs
StableLlama Apr 6, 2026
4ea0c6e
GUI option to toggle diff view
StableLlama Apr 6, 2026
4b258e3
try to fix GitHub test result
StableLlama Apr 6, 2026
6c2d0d3
Update documentation to reflect latest changes
StableLlama Apr 6, 2026
5e50346
Update
StableLlama Apr 7, 2026
d351240
Fix displayed Project language in the settings
StableLlama Apr 7, 2026
146212d
Merge pull request #168 from StableLlama/optimize_UI
StableLlama Apr 7, 2026
779d291
Fix Gemini 4 tool calling detection
StableLlama Apr 7, 2026
e1bf95e
Enhance sourcebook entry update tool with enforcing at least one key …
StableLlama Apr 7, 2026
1158f72
Fix metadata diff view
StableLlama Apr 10, 2026
5d81251
add undo/redo buttons to metadata and sourcebook editors
StableLlama Apr 10, 2026
e91d0e6
Keed diff active in metadata even when auto saving
StableLlama Apr 10, 2026
99cde33
fix: improve diff/undo UX in metadata and editor surfaces
StableLlama Apr 11, 2026
a90ed4f
fix: debounce metadata dialog undo history to group typing into singl…
StableLlama Apr 11, 2026
a2b53ce
Add diff view enable/disable button in the titles of the relevant dia…
StableLlama Apr 11, 2026
70716b1
Fix story summary generation
StableLlama Apr 11, 2026
df3b7e5
Merge pull request #169 from StableLlama/fix_things
StableLlama Apr 11, 2026
d95687c
Fix react error when rewriting the summary
StableLlama Apr 11, 2026
4ac7683
better undo/redo for conflicts
StableLlama Apr 11, 2026
2d13421
fix(sourcebook): correct diff indicators and baseline advance on save
StableLlama Apr 12, 2026
0118bc0
Fix sourcebook handling with undo/redo: don't show user initiated cha…
StableLlama Apr 12, 2026
55b5141
Optimize diff view display setting
StableLlama Apr 12, 2026
64e1233
Improve display hints for conflicts
StableLlama Apr 12, 2026
8b0f7b1
Merge pull request #170 from StableLlama/even_more_fixes
StableLlama Apr 12, 2026
8c71e66
chore(deps): update jsonschema requirement from >=4.0 to >=4.26.0
dependabot[bot] Apr 13, 2026
f35b847
chore(deps): update uvicorn requirement from >=0.30 to >=0.44.0
dependabot[bot] Apr 13, 2026
5fff2da
chore(deps): update fastapi requirement from >=0.115 to >=0.135.3
dependabot[bot] Apr 13, 2026
940fa27
chore(deps-dev): update setuptools requirement from >=61.0 to >=82.0.1
dependabot[bot] Apr 13, 2026
d4bc51f
chore(deps): update pydantic requirement from >=2.7 to >=2.12.5
dependabot[bot] Apr 13, 2026
49c6b27
chore(deps-dev): bump vite from 8.0.7 to 8.0.8 in /src/frontend
dependabot[bot] Apr 13, 2026
bdc6c31
chore(deps-dev): bump @typescript-eslint/parser in /src/frontend
dependabot[bot] Apr 13, 2026
e57fb17
chore(deps-dev): bump jsdom from 29.0.1 to 29.0.2 in /src/frontend
dependabot[bot] Apr 13, 2026
3e1ccc1
chore(deps): bump react-dom from 19.2.4 to 19.2.5 in /src/frontend
dependabot[bot] Apr 13, 2026
163995b
chore(deps): bump i18next from 26.0.3 to 26.0.4 in /src/frontend
dependabot[bot] Apr 13, 2026
e4f5553
chore(deps-dev): bump vitest from 4.1.2 to 4.1.4 in /src/frontend
dependabot[bot] Apr 13, 2026
1508ba2
chore(deps-dev): bump prettier from 3.8.1 to 3.8.2 in /src/frontend
dependabot[bot] Apr 13, 2026
f3a6aa4
chore(deps): bump react from 19.2.4 to 19.2.5 in /src/frontend
dependabot[bot] Apr 13, 2026
55f7d37
chore(deps): bump lucide-react from 1.7.0 to 1.8.0 in /src/frontend
dependabot[bot] Apr 13, 2026
eae1a9a
Add search and replace
StableLlama Apr 13, 2026
d0075ab
Fix search dialog results
StableLlama Apr 13, 2026
7be6d55
Fix s&r dialog design
StableLlama Apr 13, 2026
1584a56
Update placement of search button
StableLlama Apr 14, 2026
75ad439
Fix replace
StableLlama Apr 14, 2026
a8f7bb3
Handle relations for search and replace
StableLlama Apr 14, 2026
8498497
Better handle replacement mark
StableLlama Apr 14, 2026
6c739b5
Fix search: correct title for relation
StableLlama Apr 14, 2026
59d0caa
Highlight found entries
StableLlama Apr 14, 2026
e35714c
Fix: show highlights also in conflicts
StableLlama Apr 14, 2026
b506fb5
try to fix errors on GitHub
StableLlama Apr 14, 2026
6569ff6
next try to fix
StableLlama Apr 14, 2026
97d251f
Fix state logic of search dialog
StableLlama Apr 14, 2026
4c64e96
Try to fix GH test failure
StableLlama Apr 15, 2026
ac58e6b
Switch LM function to use new generic search
StableLlama Apr 15, 2026
4292cdd
Also search and replace the title
StableLlama Apr 15, 2026
5897f59
Merge pull request #194 from StableLlama/add_search
StableLlama Apr 15, 2026
e31ecd0
Merge pull request #175 from StableLlamaAI/dependabot/pip/develop/jso…
StableLlama Apr 15, 2026
6ad26be
Merge dependabot: react-19.2.5
StableLlama Apr 15, 2026
ae8aa46
Merge dependabot: react-dom-19.2.5
StableLlama Apr 15, 2026
ac42aa9
Merge dependabot: i18next-26.0.4
StableLlama Apr 15, 2026
a0d27eb
Merge dependabot: jsdom-29.0.2
StableLlama Apr 15, 2026
750933d
Merge dependabot: lucide-react-1.8.0
StableLlama Apr 15, 2026
c862eec
Merge dependabot: prettier-3.8.2
StableLlama Apr 15, 2026
4510e97
Merge dependabot: typescript-eslint/parser-8.58.1
StableLlama Apr 15, 2026
f9c1a7c
Merge dependabot: vite-8.0.8
StableLlama Apr 15, 2026
482b12e
Merge dependabot: vitest-4.1.4
StableLlama Apr 15, 2026
369dfff
Merge dependabot: fastapi-gte-0.135.3
StableLlama Apr 15, 2026
0ed0069
Merge dependabot: pydantic-gte-2.12.5
StableLlama Apr 15, 2026
3d451be
Merge dependabot: setuptools-gte-82.0.1
StableLlama Apr 15, 2026
8dbb4c8
Merge dependabot: uvicorn-gte-0.44.0
StableLlama Apr 15, 2026
189b6e6
Refine UI for better UX
StableLlama Apr 15, 2026
e76227a
Try to fix GH
StableLlama Apr 15, 2026
5b7acca
try to fix GH
StableLlama Apr 15, 2026
2d45061
Merge pull request #195 from StableLlama/optimize_design
StableLlama Apr 15, 2026
2258825
Show only relevant story information on main page
StableLlama Apr 16, 2026
6f43bfd
Use correct change tags when adding sourcebook relations
StableLlama Apr 16, 2026
5e41843
Fix error message about "message" taking too long when saving and lea…
StableLlama Apr 16, 2026
27b4f5d
fix [Violation] 'message' handler during start up
StableLlama Apr 16, 2026
92d03a0
Prevent error message during streaming in prose text
StableLlama Apr 16, 2026
386c4e9
Fix prose generating error and diff viewing for the new content
StableLlama Apr 16, 2026
1cb4225
Fix display mode switching and WS to not loose diff view
StableLlama Apr 16, 2026
60e28b5
Fix white space display mode
StableLlama Apr 16, 2026
0139be3
Editor rework
StableLlama Apr 16, 2026
dc319c5
Fix scroll away error
StableLlama Apr 16, 2026
5cd9ff7
Fix image display in editor
StableLlama Apr 17, 2026
c2fb5c4
Fix white space handling
StableLlama Apr 17, 2026
9a62b5f
Optmize editor lag
StableLlama Apr 17, 2026
3616be8
Optimize streaming text content intake
StableLlama Apr 17, 2026
ab14e29
Enhance performance by decoupling updates
StableLlama Apr 17, 2026
cb5a72b
More react optimisations
StableLlama Apr 17, 2026
8f0d19a
Fie project change diff view
StableLlama Apr 17, 2026
9fe8ce8
Try to fix GH
StableLlama Apr 17, 2026
b00893b
More react separation: sourcebook
StableLlama Apr 17, 2026
665841b
Update performance when text is modified
StableLlama Apr 17, 2026
e500668
Merge pull request #197 from StableLlama/fixes
StableLlama Apr 17, 2026
269f476
Phases 1–4 extractions
StableLlama Apr 17, 2026
57ee9e3
Phase 4 completions
StableLlama Apr 17, 2026
3d1b546
Phase 4 — Frontend extractions and Phase 8 — Backend splits
StableLlama Apr 17, 2026
b44d552
Phase 4 and Phase 5
StableLlama Apr 17, 2026
3c06a89
Next refactor:
StableLlama Apr 18, 2026
ca1b117
Provider health flow consolidation
StableLlama Apr 18, 2026
da7509f
Sourcebook dialog responsibilities were split into focused hooks and …
StableLlama Apr 18, 2026
ed2bb15
Deep sourcebook dialog refactor completed.
StableLlama Apr 18, 2026
acf3ab3
Sourcebook entry dialog hotspot resolved
StableLlama Apr 18, 2026
dc63c60
code fixes
StableLlama Apr 18, 2026
367c544
Phase 0, 1 and 2 of next refactoring run
StableLlama Apr 18, 2026
3a54c41
Phae 3 - 5
StableLlama Apr 18, 2026
3e9d811
try to fix GH
StableLlama Apr 18, 2026
8719cf0
Refactor settings dialog
StableLlama Apr 18, 2026
b5d7f6a
Update space and tab handling
StableLlama Apr 18, 2026
83ca616
Split translations
StableLlama Apr 18, 2026
206674a
Fix types and function documentation
StableLlama Apr 19, 2026
4d9be5c
fix GH
StableLlama Apr 19, 2026
311ff34
try to fix GH
StableLlama Apr 19, 2026
836f518
fix GH
StableLlama Apr 19, 2026
4ca20c7
Merge pull request #198 from StableLlama/refactor
StableLlama Apr 19, 2026
4495093
First step to polish architecture
StableLlama Apr 19, 2026
c089922
Next step: TypeScript from OpenAPI
StableLlama Apr 19, 2026
a8b1af1
try to fix GH
StableLlama Apr 19, 2026
4584597
fix startup
StableLlama Apr 19, 2026
16c9049
fix startup
StableLlama Apr 19, 2026
8dfca0e
next step
StableLlama Apr 19, 2026
0de98db
project_name-in-routes refactor
StableLlama Apr 19, 2026
8d9fad9
try to fix gh CodeQL
StableLlama Apr 19, 2026
932eda8
remove check that leads to too many false positives
StableLlama Apr 19, 2026
a940b8b
Reduce App.tsx size
StableLlama Apr 19, 2026
625fdd6
chore(deps-dev): bump vite from 8.0.8 to 8.0.9 in /src/frontend
dependabot[bot] Apr 20, 2026
5ab62f8
chore(deps-dev): bump @typescript-eslint/eslint-plugin in /src/frontend
dependabot[bot] Apr 20, 2026
ea2f6a5
next round
StableLlama Apr 20, 2026
1fb01e8
Split App.tsx into feature-level React Contexts
StableLlama Apr 20, 2026
2f11fa7
Try to fix GH
StableLlama Apr 20, 2026
a3753b6
Dcouple react updates
StableLlama Apr 20, 2026
8a93a01
try to remove more react coupling that shows when editing the prose
StableLlama Apr 20, 2026
a168986
further attempt for decoupling
StableLlama Apr 20, 2026
c46d0f1
fix GH
StableLlama Apr 20, 2026
e1eaae8
Merge pull request #199 from StableLlama/enhance_architecture
StableLlama Apr 21, 2026
d6b7bcb
Merge pull request #200 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 21, 2026
8e939d4
Merge pull request #203 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 21, 2026
f8f4d9d
chore(deps): bump i18next from 26.0.4 to 26.0.6 in /src/frontend
dependabot[bot] Apr 21, 2026
beac8ea
chore(deps-dev): bump @types/node from 25.5.2 to 25.6.0 in /src/frontend
dependabot[bot] Apr 21, 2026
602e35b
Merge pull request #204 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 21, 2026
d8ba835
chore(deps): bump marked from 17.0.6 to 18.0.2 in /src/frontend
dependabot[bot] Apr 21, 2026
cc3e1e3
Merge pull request #202 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 21, 2026
c916070
Merge pull request #201 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 21, 2026
aae6585
chore(deps-dev): bump typescript from 6.0.2 to 6.0.3 in /src/frontend
dependabot[bot] Apr 21, 2026
af39bfe
chore(deps-dev): bump @typescript-eslint/parser in /src/frontend
dependabot[bot] Apr 21, 2026
f2e8e70
Merge pull request #206 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 21, 2026
e57e55c
Merge pull request #207 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 21, 2026
d531781
chore(deps-dev): bump autoprefixer in /src/frontend
dependabot[bot] Apr 21, 2026
ad7bee9
chore(deps): bump uuid from 13.0.0 to 14.0.0 in /src/frontend
dependabot[bot] Apr 21, 2026
ced4930
Merge pull request #208 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 21, 2026
fe63f48
Merge pull request #209 from StableLlamaAI/dependabot/npm_and_yarn/sr…
StableLlama Apr 21, 2026
9f0e8e5
Fix infinite rerender loop for Settings
StableLlama Apr 22, 2026
0454895
Switching Project must not show diff
StableLlama Apr 22, 2026
6ad8ad5
Fix story rewrite with diff view and react updates
StableLlama Apr 22, 2026
46fc57a
fix broken Debug dialog
StableLlama Apr 22, 2026
4ae0d32
Optimize CHAPTER AI interaction with LLM
StableLlama Apr 22, 2026
4f5f093
Add preset for Gemma 4
StableLlama Apr 22, 2026
a3abbef
Allow tweaking of Provider config
StableLlama Apr 22, 2026
3988bf4
Optimize Suggest next paragraph
StableLlama Apr 22, 2026
b2c6984
Fix GH errors
StableLlama Apr 22, 2026
8e80a9b
fix gh
StableLlama Apr 23, 2026
ce20ede
Allow different paragraph suggestion modes
StableLlama Apr 23, 2026
c976746
Update documentation and ensure i18n for the application
StableLlama Apr 23, 2026
0090965
fix
StableLlama Apr 23, 2026
c39c4d6
try to fix
StableLlama Apr 23, 2026
40faedc
Allow a wider range of sidebar widths
StableLlama Apr 24, 2026
e039307
fix diff display going unhighlighted
StableLlama Apr 24, 2026
db416d6
fix scratchpad dialog
StableLlama Apr 24, 2026
6e3d257
Fix scratchpad display when reloading the browser
StableLlama Apr 24, 2026
87ec514
Fix Project switch that wasn't changing the prose
StableLlama Apr 24, 2026
9e28893
try to fix GH
StableLlama Apr 24, 2026
c8e5c7c
try to fix GH
StableLlama Apr 24, 2026
2a07c37
try to fix GH
StableLlama Apr 24, 2026
f91b14c
Merge pull request #210 from StableLlama/generic_fixing
StableLlama Apr 24, 2026
f5acb7c
Update programming LLM instructions
StableLlama Apr 25, 2026
5b6ae95
Fix diff highlight of whitespace characters
StableLlama Apr 25, 2026
9996047
Fix whitespace intensity when highlighted
StableLlama Apr 25, 2026
1a87686
Fix diff view
StableLlama Apr 25, 2026
5fa59e2
Fix selection of text
StableLlama Apr 26, 2026
19c0723
Add initial changelog
StableLlama Apr 26, 2026
a4aecc6
fix GH
StableLlama Apr 26, 2026
83a9d66
Increase size budget
StableLlama Apr 26, 2026
2607db9
Fix space placement in WS mode
StableLlama Apr 26, 2026
300a6a0
Add screenshots to user documentation
StableLlama Apr 26, 2026
6bcca2a
Update chagelog for 0.9.0
StableLlama Apr 26, 2026
0f7d258
Merge pull request #211 from StableLlama/more_fixes
StableLlama Apr 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 4 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,18 @@ charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
tab_width = 8

[*.py]
indent_style = space
indent_size = 4
tab_width = 4
tab_width = 8

[*.{js,ts,jsx,tsx,json,css,scss,html,md}]
indent_style = space
indent_size = 2
tab_width = 2
tab_width = 8

[Makefile]
indent_style = tab
162 changes: 14 additions & 148 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -1,156 +1,22 @@
# Copilot Instructions

## Repository overview
This file is intentionally concise to reduce token overhead.

- AugmentedQuill is a web-based GUI for AI-assisted prose writing, with a FastAPI backend and a React + TypeScript SPA frontend (Vite).
- Backend lives in src/augmentedquill/, frontend in src/frontend/, tests in tests/.
- Python 3.12+ required (CI uses 3.12). Node.js 24+ required (CI uses 24).
- The backend serves the built frontend from static/dist; frontend build output must be present for production-like runs.
## Canonical policy source

## High-level structure and key files
- The canonical, comprehensive agent policy for this repository is `AGENTS.md` at the repository root.
- Apply `AGENTS.md` as the source of truth for architecture boundaries, style, testing, migration rules, and done criteria.

- Backend entrypoint: src/augmentedquill/main.py (FastAPI app factory, CLI entrypoint augmentedquill).
- Backend config utilities: src/augmentedquill/core/config.py (config paths and env interpolation).
- API layer: src/augmentedquill/api/v1/; services: src/augmentedquill/services/.
- Frontend entrypoints: src/frontend/index.tsx and src/frontend/App.tsx.
- Frontend API layer: src/frontend/services/api.ts and src/frontend/services/apiClients/.
- Build/lint/test config:
- pyproject.toml (pytest, ruff, black, packaging).
- src/frontend/package.json (npm scripts).
- src/frontend/eslint.config.cjs, src/frontend/vite.config.ts, src/frontend/vitest.config.ts.
- .pre-commit-config.yaml (ruff, black, prettier, eslint).
- .github/workflows/code-quality.yml (CI checks).
## Always-enforced highlights

## Runtime configuration and data
- Keep all application LLM instructions separated from code and stored in `resources/config/instructions.json`.
- Project/story file format changes must be backward compatible or include explicit schema/version bumps with automatic chainable migrations.
- Prioritize maintainable, compact code with strict separation of concerns and minimal duplication.
- Code must be professional and production-quality; avoid shortcuts and temporary hacks.

- Config files are read from resources/config/ (machine.json, story.json). Examples in resources/config/examples/.
- JSON schema contracts live in resources/schemas/.
- Runtime data and logs are stored under data/projects/ and data/logs/.
- Environment overrides: OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MODEL, OPENAI_TIMEOUT_S.
## Type discipline (Python + TypeScript)

## Validated commands (run in this repo)

Backend setup (Python 3.12.3, venv):

- Always activate the venv before running any Python commands:
- source venv/bin/activate
- python -m pip install -e ".[dev]"

Backend lint and tests (with venv active):

- ruff check .
- black --check .
- python -m pytest

Frontend setup (Node 18+ expected; npm install required before any frontend script):

- cd src/frontend && npm install
- Note: npm reports 13 vulnerabilities (1 moderate, 12 high). This does not fail npm install or CI.

Frontend lint, tests, build:

- cd src/frontend && npm run lint
- cd src/frontend && npm run test
- cd src/frontend && npm run build
- Build outputs to static/dist and is required for production-like runs.

## How to run

Production-like (serves built frontend):

- cd src/frontend && npm run build
- augmentedquill --host 127.0.0.1 --port 8000

Dev mode (hot reload + proxy):

- Terminal 1: augmentedquill --reload --host 127.0.0.1 --port 28000
- Terminal 2: cd src/frontend && npm run dev
- Vite dev server runs on http://127.0.0.1:28001 and proxies /api and /static to 28000.

## Required hygiene for new or modified files

- All .py/.ts/.tsx/.js files must include a GPL header and a Purpose line.
- Use python tools/enforce_code_hygiene.py . to normalize headers (this can modify files).
- Use python tools/check_copyright.py . to validate headers (fails if missing).

## CI and pre-commit parity

CI runs in .github/workflows/code-quality.yml:

- Backend: ruff check ., black --check, pytest.
- Frontend: npm run lint, npx prettier --check ., npm run test, npm run build.
Pre-commit mirrors these via .pre-commit-config.yaml.

## Root inventory (important files and directories)

Files at repo root:

- CODE_OF_CONDUCT.md, CONTRIBUTING.md, LICENSE, README.md, SECURITY.md, pyproject.toml, tools.json, .pre-commit-config.yaml
Directories at repo root:
- src/, tests/, tools/, docs/, resources/, static/, data/, .github/, AugmentedQuill.egg-info/

Top-level directories (one level down):

- src/augmentedquill/ (backend app)
- src/frontend/ (frontend app)
- tests/unit/ (backend tests)
- tools/ (repo scripts)
- resources/config/ and resources/schemas/ (config + schemas)
- static/ (images + built frontend output)
- data/ (local runtime data)

## Key README points (summary)

- Python 3.11+ and Node 18+ are required.
- Build frontend before running the app.
- Dev workflow: backend reload + Vite dev server.
- Config uses JSON with env overrides; samples in resources/config/examples/.

## Guidance

- Prefer editing backend logic in services/ and keep API routes thin.
- Prefer frontend changes inside features/<domain>/ and keep API calls in services/.
- Trust these instructions and only search the repo if something is missing or contradicts these notes.

## Test Data Safety (Mandatory)

- Never read from or write to real user runtime files under `data/config/`, `data/projects/`, or `data/logs/` when running tests.
- For all automated tests, force the app to use a temporary user data root by setting `AUGQ_USER_DATA_DIR` to a temp directory (for example under `/tmp`).
- Tests and AI-generated test code must isolate runtime paths via environment variables before importing app modules so default config constants resolve into temp paths.
- When tests need projects/registry overrides, use temp values for `AUGQ_PROJECTS_ROOT` and `AUGQ_PROJECTS_REGISTRY` inside that same temp root.

## Branching and Release Policy

The repository uses the following branch layout by default:

- `main` — stable, reflects the last tagged release. Protected and only updated via PRs that have passed CI and reviews.
- `develop` — integration branch for active development. Feature branches should branch from and be merged into `develop`.

Release and hotfix branches follow `release/vX.Y` and `hotfix/vX.Y.Z` naming; tags should use semantic versions like `v1.2.3`.

When preparing a new release, create `release/vX.Y` from `develop`, finish testing, then merge into `main` and tag. Merge the release branch back into `develop` afterwards.

## Chat Tools (LLM Function Calling)

To add a new chat tool:

1. Define a Pydantic model for parameters in the appropriate tool file (e.g., `src/augmentedquill/services/chat/chat_tools/project_tools.py`)
2. Decorate an async function with `@chat_tool(description="...")`
3. Implement: `async def tool_name(params: ParamsModel, payload: dict, mutations: dict) -> dict`
4. Return a dictionary (auto-wrapped as tool message)

Example:

```python
from pydantic import BaseModel, Field
from augmentedquill.services.chat.chat_tool_decorator import chat_tool

class MyParams(BaseModel):
name: str = Field(..., description="Description")

@chat_tool(description="Does something")
async def my_tool(params: MyParams, payload: dict, mutations: dict):
return {"result": "value"}
```

Tool files: `src/augmentedquill/services/chat/chat_tools/{project,story,chapter,sourcebook,image,order}_tools.py`
- All new/modified Python and TypeScript code must be typed.
- Shared/library helpers should use reasonably wide reusable types where safety is preserved.
- Application/domain functions should use the strictest minimal types possible to encode invariants.
- Convert from wider boundary types to stricter internal types at module boundaries.
12 changes: 10 additions & 2 deletions .github/workflows/code-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
run: pytest

- name: Run pip-audit
run: pip-audit --ignore-vuln CVE-2026-4539
run: pip-audit --ignore-vuln CVE-2026-4539 --ignore-vuln CVE-2026-3219

frontend-checks:
runs-on: ubuntu-latest
Expand All @@ -46,11 +46,19 @@ jobs:
- name: Install dependencies
run: |
cd src/frontend
npm ci
npm ci --legacy-peer-deps
- name: Run ESLint
run: |
cd src/frontend
npm run lint
- name: Run TypeScript Check
run: |
cd src/frontend
npm run typecheck
- name: Check generated API types are up-to-date
run: |
cd src/frontend
npm run check:generated-types
- name: Run Prettier
run: |
cd src/frontend
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,5 @@ jobs:

- name: Perform CodeQL analysis
uses: github/codeql-action/analyze@v3
with:
skip-queries: true
4 changes: 2 additions & 2 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"args": ["--host", "127.0.0.1", "--port", "28000", "--reload", "--llm-dump"],
"console": "integratedTerminal",
"justMyCode": true,
"preLaunchTask": "backend: clear-llm-log",
"preLaunchTask": "backend: prepare",
"env": {
"AUGQ_LLM_DUMP_LEVEL": "normal"
}
Expand All @@ -18,7 +18,7 @@
"name": "Frontend (Vite 28001)",
"type": "node-terminal",
"request": "launch",
"preLaunchTask": "frontend: install",
"preLaunchTask": "frontend: prepare",
"command": "npm run dev -- --port 28001 --strictPort",
"cwd": "${workspaceFolder}/src/frontend",
"env": {
Expand Down
3 changes: 1 addition & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{
"python-envs.pythonProjects": [],
"python.terminal.activateEnvironment": true,
"python.defaultInterpreterPath": "./venv/bin/python",
"python.defaultInterpreterPath": "${workspaceFolder}/venv/bin/python",
"python.testing.pytestArgs": ["tests"],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true
Expand Down
33 changes: 32 additions & 1 deletion .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"label": "frontend: install",
"type": "shell",
"command": "npm",
"args": ["install"],
"args": ["install", "--legacy-peer-deps"],
"options": {
"cwd": "${workspaceFolder}/src/frontend"
},
Expand All @@ -14,6 +14,18 @@
"reveal": "silent"
}
},
{
"label": "frontend: generate-types",
"type": "shell",
"command": "npm",
"args": ["run", "generate:types"],
"options": {
"cwd": "${workspaceFolder}/src/frontend"
},
"presentation": {
"reveal": "silent"
}
},
{
"label": "backend: clear-llm-log",
"type": "shell",
Expand All @@ -22,6 +34,25 @@
"reveal": "silent",
"close": true
}
},
{
"label": "backend: export-openapi",
"type": "shell",
"command": "${workspaceFolder}/venv/bin/python",
"args": ["tools/export_openapi.py"],
"presentation": {
"reveal": "silent"
}
},
{
"label": "backend: prepare",
"dependsOn": ["backend: clear-llm-log", "backend: export-openapi"],
"dependsOrder": "sequence"
},
{
"label": "frontend: prepare",
"dependsOn": ["frontend: install", "frontend: generate-types"],
"dependsOrder": "sequence"
}
]
}
Loading
Loading