Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
fb74678
Create space for scenes
StableLlama May 6, 2026
9cfc1e1
First round of implementing the Scenes functionality
StableLlama May 6, 2026
d050347
Pinpoard multi selection and interactive scene highlighting modification
StableLlama May 8, 2026
9917032
Handle scene causes
StableLlama May 9, 2026
f2193d6
Initial implementation of scene Narrative view
StableLlama May 9, 2026
85c66d3
scenes, narrative view: reorder by dragging
StableLlama May 9, 2026
faf1d67
Fix scene dragging between chapters/books
StableLlama May 9, 2026
a93d2a6
scenes: ensure undo/redo functions
StableLlama May 9, 2026
b881c23
Add time handling to scenes
StableLlama May 10, 2026
4b503bd
Add Chronological view to scenes
StableLlama May 10, 2026
7fb46bb
Fix scene editor
StableLlama May 10, 2026
6301887
Fix scene entries horizontal scroll
StableLlama May 11, 2026
b2a6319
Refactor LLM tools, implement tools for scene handling
StableLlama May 12, 2026
6261de8
- Fix CHAT based project management
StableLlama May 13, 2026
55c0f70
Add scene Convergence Map and introduce time travel awareness
StableLlama May 14, 2026
2bf848f
Allow LLM to call tools with only partial temporal information
StableLlama May 14, 2026
8a3b750
Use numerical IDs for scenes and not UUIDs
StableLlama May 14, 2026
1334b56
Update instructions for using scenes
StableLlama May 14, 2026
a8453be
Handle LLM tool calling mistakes
StableLlama May 14, 2026
ced18e9
Allow to order scene narration even without linked text
StableLlama May 14, 2026
a13ff13
Fix multiple calls to call_writing_llm with append overwriting the prose
StableLlama May 14, 2026
2e87f04
Handle scene linking more robust
StableLlama May 16, 2026
2559446
fix broken scene reordering
StableLlama May 16, 2026
eead019
npm audit fix
StableLlama May 16, 2026
448a808
Give LLM bette hints about how to use the tools
StableLlama May 16, 2026
a7ddbe9
implement Convergence Map with time travel aware time line view
StableLlama May 17, 2026
b749086
Correct Prose snake
StableLlama May 17, 2026
55a9d5f
Fix time line
StableLlama May 17, 2026
c666760
Fix snake display for time traveled characters
StableLlama May 17, 2026
ca0ae0e
clean up
StableLlama May 20, 2026
6156f18
Allow time line change in Convergence Map view
StableLlama May 20, 2026
3dee7e6
Fix Project generating
StableLlama May 20, 2026
8560f0b
Show scene ID in scene card
StableLlama May 20, 2026
d56a6fd
Optimize chat to use relations for sourcebook and date/time for scenes
StableLlama May 20, 2026
641f457
Make tool calling stricter
StableLlama May 21, 2026
9cb542d
Enable diff view for scenes
StableLlama May 21, 2026
c474259
Fix failing sourcebook update
StableLlama May 21, 2026
5aaea1e
Enable searching and replacing in scenes
StableLlama May 22, 2026
61fda30
Fix snakes
StableLlama May 22, 2026
d2a25b9
Fix scene view scrolling
StableLlama May 22, 2026
c97a91c
Optimize instructions
StableLlama May 22, 2026
66704ec
Enhance tool responses
StableLlama May 22, 2026
f49c850
Link scenes with chapters
StableLlama May 22, 2026
d710c91
Always use "cause" for logical scene flow and not "order"
StableLlama May 23, 2026
6f1d0a1
Remove order_index and make it much more robust
StableLlama May 23, 2026
c247080
Allign sourcebook validity to scenes and not chapters
StableLlama May 23, 2026
e34ee49
Change tomeout to seconds
StableLlama May 23, 2026
00e00f0
Enhance chat robustness
StableLlama May 24, 2026
85bfa5d
Optimize LLM interaction
StableLlama May 24, 2026
5a9a46c
Better handle not well running LLMs
StableLlama May 24, 2026
f8c5509
Fix tool based scene ordering
StableLlama May 25, 2026
4566ff6
Indicate possible constraint violations
StableLlama May 25, 2026
48c4dd2
Better visual indication of causes
StableLlama May 25, 2026
6227063
Enhance Prose snake visibility
StableLlama May 25, 2026
85ced36
Show age in scene sourcebook tags
StableLlama May 25, 2026
5c13919
Fix cause generation UI
StableLlama May 25, 2026
6a2b3b8
Make Pinboard view scroll and zoom behave as is to be expected
StableLlama May 25, 2026
4436485
Enhance scene navigation
StableLlama May 27, 2026
2834598
Highlight selected scenes and chapters
StableLlama May 27, 2026
908dc25
Fix scene and chapter highlighting
StableLlama May 27, 2026
deceb80
Optimize scene rearrangement
StableLlama May 27, 2026
deb13a4
Optimize scene rearrangement
StableLlama May 27, 2026
b3b3405
Fix Write Prose in the scene editor
StableLlama May 28, 2026
1f2491b
Fix scene writing
StableLlama May 29, 2026
5de71dd
Fix scene writing: bad ordering
StableLlama May 29, 2026
7dc8baa
Optimize Write Scene
StableLlama May 29, 2026
bcd6095
Fix CHAPTER AI | Extend
StableLlama May 29, 2026
582fdab
Optimize chapter rewrite
StableLlama Jun 16, 2026
ea452d2
Add annotations (initial implementation)
StableLlama Jun 17, 2026
ae4a253
Fix user scene interaction
StableLlama Jun 21, 2026
f097362
Fix scene and annotation marking
StableLlama Jun 24, 2026
b0c1535
fix annotation adding
StableLlama Jun 24, 2026
b6807bd
fix overlapping annotations
StableLlama Jun 24, 2026
9049abb
fix scrolling for scene selection
StableLlama Jun 24, 2026
792bc26
feat: persist view state (chapter, workspace mode, scenes view type) …
StableLlama Jun 24, 2026
a7f1a33
Increase build budget for new features
StableLlama Jun 24, 2026
3e2a00b
fix: resolve npm audit high-severity vulnerabilities
StableLlama Jun 24, 2026
120c076
fix tests
StableLlama Jun 24, 2026
0a854f8
Optimize test speed
StableLlama Jun 24, 2026
13b3c80
trigger update
StableLlama Jun 24, 2026
343c66a
Fix left sidebar handling
StableLlama Jun 24, 2026
1a1c782
feat(sidebar): enhance left pane with section focus, scenes tree, and…
StableLlama Jun 25, 2026
66d1404
feat(diff): switch from global similarity to local zone-based diff me…
StableLlama Jun 25, 2026
603d520
fix(diff): correct FloatingDiffToolbar theming, scene baseline advanc…
StableLlama Jun 25, 2026
ef21a1d
Fix scene start end modifications
StableLlama Jul 2, 2026
e96379a
optimize and slight refactor
StableLlama Jul 2, 2026
8298016
Fix scene start end position drag
StableLlama Jul 3, 2026
ca63773
Enhance documentation
StableLlama Jul 3, 2026
d90feb9
Fix scene highlight by cursor placement
StableLlama Jul 3, 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
23 changes: 23 additions & 0 deletions .github/workflows/code-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,3 +76,26 @@ jobs:
run: |
cd src/frontend
npm audit --audit-level=high

frontend-e2e-checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'npm'
cache-dependency-path: src/frontend/package-lock.json
- name: Install dependencies
run: |
cd src/frontend
npm ci --legacy-peer-deps
- name: Install Playwright browsers
run: |
cd src/frontend
npx playwright install --with-deps chromium
- name: Run E2E cursor/caret regression tests
run: |
cd src/frontend
npm run test:e2e
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,5 @@ repos:
language: system
# Run eslint using the local installation in frontend/node_modules
# This ensures it uses the correct version and plugins
entry: src/frontend/node_modules/.bin/eslint --config src/frontend/eslint.config.cjs
files: ^src/frontend/.*\.(js|jsx|ts|tsx)$
entry: src/frontend/node_modules/.bin/eslint --config src/frontend/eslint.config.cjs --ext .ts,.tsx
files: ^src/frontend/.*\.(ts|tsx)$
18 changes: 18 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,19 @@
"AUGQ_LLM_DUMP_LEVEL": "normal"
}
},
{
"name": "Backend (Dev API 28000) Verbose",
"type": "debugpy",
"request": "launch",
"module": "augmentedquill.main",
"args": ["--host", "127.0.0.1", "--port", "28000", "--reload", "--llm-dump"],
"console": "integratedTerminal",
"justMyCode": true,
"preLaunchTask": "backend: prepare",
"env": {
"AUGQ_LLM_DUMP_LEVEL": "debug"
}
},
{
"name": "Frontend (Vite 28001)",
"type": "node-terminal",
Expand All @@ -31,6 +44,11 @@
"name": "Full Stack Dev (Backend + Frontend)",
"configurations": ["Backend (Dev API 28000)", "Frontend (Vite 28001)"],
"stopAll": true
},
{
"name": "Full Stack Dev (Backend + Frontend) Verbose",
"configurations": ["Backend (Dev API 28000) Verbose", "Frontend (Vite 28001)"],
"stopAll": true
}
]
}
9 changes: 7 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,10 @@ npm run check:generated-types

## 7. Style And Conventions

### Test driven development (TDD)

Implement test cases to cover the user specification first and then implement the solution. Finish with implementing test cases that cover every valid input as well as those that have bad input to test correct error handling, so that any regression is easily detected.

### Required file headers

- Every new/modified `.py`, `.ts`, `.tsx`, `.js` file must include:
Expand Down Expand Up @@ -191,10 +195,11 @@ python tools/check_copyright.py .

## 9.5 Project File Schema Evolution Rules

- Changes to project/story files must either be backward compatible or explicitly bump the config/schema version.
- Changes to project/story files must either be intrinsic backward compatible or explicitly bump the config/schema version.
- Any version bump must include an automatic conversion function from the prior version.
- Conversions must be chainable step-by-step (for example v2 -> v3 -> v4) so older versions can be upgraded safely through intermediate migrations.
- Never introduce a breaking project-file format change without a tested migration path.
- Never introduce code that handles older versions of the files, always relay on the files having the current version and the version conversion scripts are used to make the files compatible. Do not use in project code for backward compatability.

## 10. Security And Operational Guardrails

Expand All @@ -205,7 +210,7 @@ python tools/check_copyright.py .
## 11. Agent Workflow Heuristics

- Read only what is needed for the current task.
- Prefer surgical edits over broad rewrites.
- Prefer surgical edits over broad rewrites. But also do not hesitate a rewrite when that increases maintainability and prevents duplication.
- After edits, run relevant checks and report concrete outcomes.
- If failures are unrelated to your change, report them clearly instead of silently changing unrelated code.
- Preserve existing style and naming in touched files.
Expand Down
6 changes: 3 additions & 3 deletions docs/user_manual/01_getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,10 @@ On medium screens the less common buttons collapse into a **Format** dropdown (t

| Control | Description |
| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Images** (<img src="assets/eye.svg" alt="Image icon" width="16" height="16" style="vertical-align:text-bottom;" /> image icon) | Opens the **Project Images** dialog to manage all visual assets for this project. (See [Project Images](06_project_images.md).) |
| **Images** (<img src="assets/eye.svg" alt="Image icon" width="16" height="16" style="vertical-align:text-bottom;" /> image icon) | Opens the **Project Images** dialog to manage all visual assets for this project. (See [Project Images](09_project_images.md).) |
| **Settings** (<img src="assets/settings.svg" alt="Settings icon" width="16" height="16" style="vertical-align:text-bottom;" />) | Opens the Settings dialog (same as clicking the logo). |
| **Appearance** (<img src="assets/type.svg" alt="Type icon" width="16" height="16" style="vertical-align:text-bottom;" /> Type icon) | Opens the Appearance popup to adjust the visual theme, font size, and line width. (See [Appearance and Display](08_appearance_and_display.md).) |
| **Debug Logs** (bug icon) | Opens the LLM Debug Logs overlay — a developer-focused view of all AI requests and responses. (See [Appearance and Display](08_appearance_and_display.md#debug-logs).) |
| **Appearance** (<img src="assets/type.svg" alt="Type icon" width="16" height="16" style="vertical-align:text-bottom;" /> Type icon) | Opens the Appearance popup to adjust the visual theme, font size, and line width. (See [Appearance and Display](10_appearance_and_display.md).) |
| **Debug Logs** (bug icon) | Opens the LLM Debug Logs overlay — a developer-focused view of all AI requests and responses. (See [Appearance and Display](10_appearance_and_display.md#debug-logs).) |
| **Hide / AI** (panel icon) | Toggles the right Chat Assistant panel open or closed. The current label flips between **Hide** (chevron-right) and **AI** (chevron-left) depending on the panel state. |

---
Expand Down
18 changes: 9 additions & 9 deletions docs/user_manual/02_projects_and_settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ The Projects tab lists every project stored on this machine and lets you create,

Three buttons sit above the project list:

| Button | Icon | Action |
| --------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Refresh** | <img src="assets/edit-2.svg" alt="Refresh icon" width="16" height="16" style="vertical-align:text-bottom;" /> | Rescans the projects folder from disk — useful if you have added or removed project folders manually. |
| **Import** | ↑ Upload | Opens a file picker that accepts `.zip` files. AugmentedQuill will unpack the archive and add the project to your list. This is the matching action to the Export button on each project row. |
| **New Project** | <img src="assets/plus.svg" alt="Plus icon" width="16" height="16" style="vertical-align:text-bottom;" /> | Opens the **Create Project** dialog (see below). |
| Button | Icon | Action |
| --------------- | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Refresh** | <img src="assets/refresh-cw.svg" alt="Refresh icon" width="16" height="16" style="vertical-align:text-bottom;" /> | Rescans the projects folder from disk — useful if you have added or removed project folders manually. |
| **Import** | ↑ Upload | Opens a file picker that accepts `.zip` files. AugmentedQuill will unpack the archive and add the project to your list. This is the matching action to the Export button on each project row. |
| **New Project** | <img src="assets/plus.svg" alt="Plus icon" width="16" height="16" style="vertical-align:text-bottom;" /> | Opens the **Create Project** dialog (see below). |

### Project Cards

Expand Down Expand Up @@ -305,10 +305,6 @@ Click **Save & Close** at the bottom of the Settings dialog to write your machin

---

Next up: Explore [The Writing Interface](03_writing_interface.md).

---

## Multiple Languages (GUI vs Project)

AugmentedQuill supports distinct languages for its interface (GUI) and your story content.
Expand All @@ -325,3 +321,7 @@ The story language dictates the spellchecking and grammar tools used by your cho
1. When creating a **New Project**, select the language in the project dialog.
2. OR, open the **Project Settings** (by clicking your story title in the corner or typing in the Project tab) and change the language dropdown.
3. Chat fields, Editors, and Images will automatically adapt their spellchecker to the project's saved language.

---

Next up: Explore [The Writing Interface](03_writing_interface.md).
4 changes: 2 additions & 2 deletions docs/user_manual/03_writing_interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ You can switch modes at any time without losing data; the underlying markdown fi

### Dropping Images Into the Editor

Drag an image file (PNG, JPEG, GIF, WEBP) and drop it onto the editor paper area. A highlighted drop zone appears while the image is being dragged over. On release, the image uploads to the server and an inline markdown image tag (`![title](url)`) is inserted at the current cursor position. You can manage all project images from the **Project Images** dialog (see [Project Images](06_project_images.md)).
Drag an image file (PNG, JPEG, GIF, WEBP) and drop it onto the editor paper area. A highlighted drop zone appears while the image is being dragged over. On release, the image uploads to the server and an inline markdown image tag (`![title](url)`) is inserted at the current cursor position. You can manage all project images from the **Project Images** dialog (see [Project Images](09_project_images.md)).

---

Expand Down Expand Up @@ -225,7 +225,7 @@ These controls update the planning layer around a chapter rather than the prose
- The suggestion pane always shows the last set of continuations, so you can keep requesting more or hit `Dismiss` once you are satisfied.
- Even when AI actions are running, you can keep typing because the UI disables only the relevant button and leaves the rest of the editor responsive.
- Switch between Raw, MD, and Visual modes freely — the underlying file is the same markdown source regardless of which view you use.
- Press **Ctrl+F** (or **Cmd+F** on macOS) at any time — or click the **<img src="assets/search.svg" alt="Search icon" width="16" height="16" style="vertical-align:text-bottom;" /> Search** icon in the top-right header — to open the project-wide **Search and Replace** dialog. See [Search and Replace](12_search_and_replace.md) for the full guide.
- Press **Ctrl+F** (or **Cmd+F** on macOS) at any time — or click the **<img src="assets/search.svg" alt="Search icon" width="16" height="16" style="vertical-align:text-bottom;" /> Search** icon in the top-right header — to open the project-wide **Search and Replace** dialog. See [Search and Replace](08_search_and_replace.md) for the full guide.

---

Expand Down
2 changes: 1 addition & 1 deletion docs/user_manual/04_chapters_and_books.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ The Metadata Editor is a full-screen or sidebar panel that opens whenever you cl

- The text area holds the public description that appears in the sidebar card and is sent to every AI call that involves this chapter or story.
- When the summary is empty, an **AI Write** button (<img src="assets/wand.svg" alt="Wand icon" width="16" height="16" style="vertical-align:text-bottom;" />) asks the <img src="assets/swatches/fuchsia.svg" alt="Fuchsia swatch" width="16" height="16" style="vertical-align:text-bottom;" /> **EDITING** model to draft a summary from the chapter content.
- Once a summary exists, the button becomes **AI Update** (<img src="assets/edit-2.svg" alt="Refresh icon" width="16" height="16" style="vertical-align:text-bottom;" />) which updates the existing text, and an adjacent **AI Rewrite** (<img src="assets/pen.svg" alt="Pen icon" width="16" height="16" style="vertical-align:text-bottom;" />) button regenerates it from scratch — useful when the story direction has changed.
- Once a summary exists, the button becomes **AI Update** (<img src="assets/refresh-cw.svg" alt="Refresh icon" width="16" height="16" style="vertical-align:text-bottom;" />) which updates the existing text, and an adjacent **AI Rewrite** (<img src="assets/pen.svg" alt="Pen icon" width="16" height="16" style="vertical-align:text-bottom;" />) button regenerates it from scratch — useful when the story direction has changed.

**Notes tab:**

Expand Down
4 changes: 2 additions & 2 deletions docs/user_manual/05_sourcebook.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ The Image Picker is a sub-modal that appears when you click **Manage Images** in
- A count below the grid shows how many images are currently selected.
- Click **Done** (✓) to close the picker and apply the selection to the entry.

Images shown here are managed in the [Project Images](06_project_images.md) dialog. You can upload new images there and they will appear in this picker immediately.
Images shown here are managed in the [Project Images](09_project_images.md) dialog. You can upload new images there and they will appear in this picker immediately.

---

Expand All @@ -118,4 +118,4 @@ Mouse-over tooltips on the **Auto** control, spinner, and disabled checkboxes ex

---

Next up: Manage your project's visual assets in [Project Images](06_project_images.md).
Next up: Apply everything you've learned in the [Tutorial: Writing Your First Story](06_tutorial_first_story.md).
2 changes: 1 addition & 1 deletion docs/user_manual/06_project_images.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,4 +94,4 @@ Paste the copied prompt into your preferred image generation tool (Stable Diffus

---

Next up: Discover your AI writing partner in [The AI Chat Assistant](07_ai_chat_assistant.md).
Next up: Customize the look and feel in [Appearance and Display](08_appearance_and_display.md).
Loading
Loading