Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
7096bcd
Fix dependency drift and clean frontend build warnings
therobbiedavis Jun 11, 2026
bb13857
Clarify backend architecture boundaries
therobbiedavis Jun 11, 2026
fa347d8
Fix architecture boundary build
therobbiedavis Jun 11, 2026
d746e7b
Remove unnecessary usings and fix startup lifetime
therobbiedavis Jun 11, 2026
d2ca71d
Clarify realtime architecture boundary
therobbiedavis Jun 11, 2026
70769ee
Updating terminology to stay consistent
therobbiedavis Jun 11, 2026
9412bf4
Move realtime wiring behind infrastructure extensions
therobbiedavis Jun 12, 2026
a2700aa
Respect forwarded header trust model
therobbiedavis Jun 12, 2026
b815954
Update NuGet locks for architecture split
therobbiedavis Jun 12, 2026
c8ead20
Handle IPv4-mapped loopback notification callers
therobbiedavis Jun 12, 2026
d1b9a24
Extract large backend service slices
therobbiedavis Jun 12, 2026
06ce2f2
Merge large backend service slices into combined branch
therobbiedavis Jun 12, 2026
699fb5f
Extract audiobook identifier helpers
therobbiedavis Jun 12, 2026
3e7d7a9
Extract remaining backend parsing helpers
therobbiedavis Jun 12, 2026
0abc9b3
Extract MyAnonamouse response parser
therobbiedavis Jun 12, 2026
d8d4e5d
Extract library path planner
therobbiedavis Jun 12, 2026
417ded9
Split remaining backend helper concerns
therobbiedavis Jun 12, 2026
3e9f9cd
Break down library and search workflows
therobbiedavis Jun 12, 2026
8c02426
Extract library scan workflows
therobbiedavis Jun 12, 2026
2fee512
Refactor backend services into focused workflows
therobbiedavis Jun 13, 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
  •  
  •  
  •  
14 changes: 13 additions & 1 deletion .github/.cursorrules
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# Listenarr Copilot Rules

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow:

- `CONTRIBUTING.md`
- `BACKEND_ARCHITECTURE.md`
- `.github/RULES.md`
- `.github/AGENTS.md`
- `.github/copilot-instructions.md`

Repository-specific guidance takes precedence over general examples in this file. Keep infrastructure-shaped dependencies out of `listenarr.application`; define application-owned ports there and implement adapters in infrastructure/API.

## Project Overview
Listenarr is a C# .NET Core Web API backend with Vue.js frontend for automated audiobook downloading and processing. The backend uses ASP.NET Core with Entity Framework Core and SQLite, while the frontend uses Vue.js 3 with TypeScript, Pinia, and Vite.

Expand Down Expand Up @@ -306,4 +318,4 @@ var audiobooks = await _db.Audiobooks
```

Remember: This project follows established patterns. When in doubt, look at existing code for examples of how similar functionality is implemented.</content>
<parameter name="filePath">c:\Users\Robbie\Documents\GitHub\Listenarr\.cursorrules
<parameter name="filePath">c:\Users\Robbie\Documents\GitHub\Listenarr\.cursorrules
12 changes: 12 additions & 0 deletions .github/AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
````markdown
# Secure .NET Code Generation Codex

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow:

- `CONTRIBUTING.md`
- `BACKEND_ARCHITECTURE.md`
- `.github/RULES.md`
- `.github/copilot-instructions.md`
- `.github/.cursorrules`

Repository-specific guidance takes precedence over general examples in this file. Keep infrastructure-shaped dependencies out of `listenarr.application`; define application-owned ports there and implement adapters in infrastructure/API.

As a security-aware developer, generate secure .NET code using ASP.NET Core that inherently prevents top security weaknesses.
Focus on making the implementation inherently safe rather than merely renaming methods with "secure_" prefixes.
Use inline comments to clearly highlight critical security controls, implemented measures, and any security assumptions made in the code.
Expand Down
4 changes: 4 additions & 0 deletions .github/ANTHROPIC.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Anthropic/Claude Instructions for Listenarr

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow `CONTRIBUTING.md`, `BACKEND_ARCHITECTURE.md`, `.github/RULES.md`, and the primary AI guidance files. Repository-specific guidance takes precedence over generic provider guidance.

## Overview
Listenarr is a C# .NET 10.0 audiobook management system with Vue.js 3 frontend. See [copilot-instructions.md](copilot-instructions.md) for complete details.

Expand Down
4 changes: 4 additions & 0 deletions .github/AZURE_OPENAI.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Azure OpenAI Instructions for Listenarr

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow `CONTRIBUTING.md`, `BACKEND_ARCHITECTURE.md`, `.github/RULES.md`, and the primary AI guidance files. Repository-specific guidance takes precedence over generic provider guidance.

## Overview
Listenarr is a C# .NET 10.0 audiobook management system with Vue.js 3 frontend for automated audiobook downloads. See [copilot-instructions.md](copilot-instructions.md) for complete details.

Expand Down
4 changes: 4 additions & 0 deletions .github/BARD.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Google Bard/Gemini Instructions for Listenarr

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow `CONTRIBUTING.md`, `BACKEND_ARCHITECTURE.md`, `.github/RULES.md`, and the primary AI guidance files. Repository-specific guidance takes precedence over generic provider guidance.

## Overview
Listenarr is a C# .NET 10.0 audiobook management system with Vue.js 3 frontend. See [copilot-instructions.md](copilot-instructions.md) for complete details.

Expand Down
4 changes: 4 additions & 0 deletions .github/BEDROCK.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Amazon Bedrock Instructions for Listenarr

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow `CONTRIBUTING.md`, `BACKEND_ARCHITECTURE.md`, `.github/RULES.md`, and the primary AI guidance files. Repository-specific guidance takes precedence over generic provider guidance.

## Overview
Listenarr is a C# .NET 10.0 audiobook management system with Vue.js 3 frontend. See [copilot-instructions.md](copilot-instructions.md) for complete details.

Expand Down
12 changes: 12 additions & 0 deletions .github/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
````markdown
# Secure Code Generation Rules for .NET/ASP.NET Core

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow:

- `CONTRIBUTING.md`
- `BACKEND_ARCHITECTURE.md`
- `.github/RULES.md`
- `.github/copilot-instructions.md`
- `.github/.cursorrules`

Repository-specific guidance takes precedence over general examples in this file. Keep infrastructure-shaped dependencies out of `listenarr.application`; define application-owned ports there and implement adapters in infrastructure/API.

As a security-aware developer, generate secure .NET code using ASP.NET Core that inherently prevents top security weaknesses. Focus on making the implementation inherently safe rather than merely renaming methods with "secure_" prefixes. Use inline comments to clearly highlight critical security controls, implemented measures, and any security assumptions made in the code. Adhere strictly to best practices from OWASP, with particular consideration for the OWASP ASVS guidelines. **Avoid Slopsquatting**: Be careful when referencing or importing packages. Do not guess if a package exists. Comment on any low reputation or uncommon packages you have included.

---
Expand Down
4 changes: 4 additions & 0 deletions .github/CLAUDE_LISTENARR.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Claude AI Instructions for Listenarr

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow `CONTRIBUTING.md`, `BACKEND_ARCHITECTURE.md`, `.github/RULES.md`, and the primary AI guidance files. Repository-specific guidance takes precedence over generic provider guidance.

## Quick Reference
This file contains Claude-specific guidance for the Listenarr audiobook management system. For comprehensive secure coding practices, see [AGENTS.md](AGENTS.md) and [CLAUDE.md](CLAUDE.md). For complete project details, see [copilot-instructions.md](copilot-instructions.md).

Expand Down
4 changes: 4 additions & 0 deletions .github/COHERE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Cohere Instructions for Listenarr

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow `CONTRIBUTING.md`, `BACKEND_ARCHITECTURE.md`, `.github/RULES.md`, and the primary AI guidance files. Repository-specific guidance takes precedence over generic provider guidance.

## Overview
Listenarr is a C# .NET 10.0 audiobook management system with Vue.js 3 frontend. See [copilot-instructions.md](copilot-instructions.md) for complete details.

Expand Down
4 changes: 4 additions & 0 deletions .github/HUGGINGFACE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Hugging Face Instructions for Listenarr

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow `CONTRIBUTING.md`, `BACKEND_ARCHITECTURE.md`, `.github/RULES.md`, and the primary AI guidance files. Repository-specific guidance takes precedence over generic provider guidance.

## Overview
Listenarr is a C# .NET 10.0 audiobook management system with Vue.js 3 frontend. See [copilot-instructions.md](copilot-instructions.md) for complete details.

Expand Down
13 changes: 13 additions & 0 deletions .github/OpenAI.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# OpenAI Instructions for Listenarr

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow:

- `CONTRIBUTING.md`
- `BACKEND_ARCHITECTURE.md`
- `.github/RULES.md`
- `.github/copilot-instructions.md`
- `.github/AGENTS.md`
- `.github/.cursorrules`

Repository-specific guidance takes precedence over general examples in this file. Keep infrastructure-shaped dependencies out of `listenarr.application`; define application-owned ports there and implement adapters in infrastructure/API.

## Overview
Listenarr is a C# .NET 10.0 audiobook management system with Vue.js 3 frontend. See [copilot-instructions.md](copilot-instructions.md) for complete details.

Expand Down
19 changes: 15 additions & 4 deletions .github/RULES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@

This folder contains comprehensive instructions for AI assistants working with the Listenarr audiobook management system.

## Mandatory First Step

Before making code, dependency, workflow, or documentation changes, AI agents must review and follow:

- Repository contribution rules: [`../CONTRIBUTING.md`](../CONTRIBUTING.md)
- Backend architecture boundaries: [`../BACKEND_ARCHITECTURE.md`](../BACKEND_ARCHITECTURE.md)
- The primary AI guidance files listed below, especially [`copilot-instructions.md`](copilot-instructions.md), [`AGENTS.md`](AGENTS.md), and [`.cursorrules`](.cursorrules)

If these documents conflict, follow the more specific repository guidance first. In particular, keep infrastructure-shaped dependencies out of `listenarr.application`; add application-owned ports and implement adapters in infrastructure/API.

## Primary Reference Files

### [copilot-instructions.md](copilot-instructions.md) - **MOST COMPREHENSIVE**
Expand Down Expand Up @@ -61,10 +71,11 @@ These files provide quick-start guidance tailored to specific AI providers, with

## Quick Start

1. **For comprehensive project understanding**: Read [copilot-instructions.md](copilot-instructions.md)
2. **For security compliance**: Read [AGENTS.md](AGENTS.md)
3. **For coding standards**: Read [.cursorrules](.cursorrules)
4. **For provider-specific guidance**: Choose your AI provider file above
1. **Before changing anything**: Read [`../CONTRIBUTING.md`](../CONTRIBUTING.md) and [`../BACKEND_ARCHITECTURE.md`](../BACKEND_ARCHITECTURE.md)
2. **For comprehensive project understanding**: Read [copilot-instructions.md](copilot-instructions.md)
3. **For security compliance**: Read [AGENTS.md](AGENTS.md)
4. **For coding standards**: Read [.cursorrules](.cursorrules)
5. **For provider-specific guidance**: Choose your AI provider file above

## Project Overview (Quick Reference)

Expand Down
4 changes: 4 additions & 0 deletions .github/WARP.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

This file provides guidance to WARP (warp.dev) when working with code in this repository.

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow `CONTRIBUTING.md`, `BACKEND_ARCHITECTURE.md`, `.github/RULES.md`, and the primary AI guidance files. Repository-specific guidance takes precedence over generic tool guidance.

## Project Overview

Listenarr is an automated audiobook collection management system built as a full-stack application with a C# .NET 10 backend API and Vue.js 3 frontend. The project follows a monorepo structure with integrated build processes.
Expand Down
4 changes: 4 additions & 0 deletions .github/clinerules
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Cline AI Instructions for Listenarr

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow `CONTRIBUTING.md`, `BACKEND_ARCHITECTURE.md`, `.github/RULES.md`, and the primary AI guidance files. Repository-specific guidance takes precedence over generic tool guidance.

As a security-aware developer, generate secure .NET code using ASP.NET Core that inherently prevents top security weaknesses.
Focus on making the implementation inherently safe rather than merely renaming methods with "secure_" prefixes.
Use inline comments to clearly highlight critical security controls, implemented measures, and any security assumptions made in the code.
Expand Down
12 changes: 12 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@

This is a complete C# .NET Web API backend with Vue.js frontend for automated audiobook downloading and processing.

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow:

- `CONTRIBUTING.md`
- `BACKEND_ARCHITECTURE.md`
- `.github/RULES.md`
- `.github/AGENTS.md`
- `.github/.cursorrules`

Repository-specific guidance takes precedence over general examples in this file. Keep infrastructure-shaped dependencies out of `listenarr.application`; define application-owned ports there and implement adapters in infrastructure/API.

## Project Overview
- **Backend**: ASP.NET Core Web API (.NET 10.0+ / net10.0) with modular service architecture
- **Frontend**: Vue.js 3 + TypeScript + Pinia + Vue Router + Vite
Expand Down
4 changes: 4 additions & 0 deletions .github/windsurfrules
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ globs: **/*.cs, **/*.csproj, **/*.json, **/*.xml, **/*.vue, **/*.ts

# Windsurf AI Instructions for Listenarr

## Required Repository Context

Before making code, dependency, workflow, or documentation changes, review and follow `CONTRIBUTING.md`, `BACKEND_ARCHITECTURE.md`, `.github/RULES.md`, and the primary AI guidance files. Repository-specific guidance takes precedence over generic tool guidance.

As a security-aware developer, generate secure .NET code using ASP.NET Core that inherently prevents top security weaknesses.
Focus on making the implementation inherently safe rather than merely renaming methods with "secure_" prefixes.
Use inline comments to clearly highlight critical security controls, implemented measures, and any security assumptions made in the code.
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/build-and-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,14 +125,14 @@ jobs:
# ── Publish portable binaries ────────────────────────────────────────────

- name: Publish API (linux-x64)
run: dotnet publish ${{ env.API_PROJECT }} -c Release -r linux-x64 --self-contained true /p:PublishSingleFile=true -o ${{ env.API_OUTPUT }}/linux-x64
run: dotnet publish ${{ env.API_PROJECT }} -c Release -r linux-x64 --no-restore --self-contained true /p:PublishSingleFile=true -o ${{ env.API_OUTPUT }}/linux-x64

- name: Publish API (win-x64)
run: dotnet publish ${{ env.API_PROJECT }} -c Release -r win-x64 --self-contained true /p:PublishSingleFile=true -o ${{ env.API_OUTPUT }}/win-x64
run: dotnet publish ${{ env.API_PROJECT }} -c Release -r win-x64 --no-restore --self-contained true /p:PublishSingleFile=true -o ${{ env.API_OUTPUT }}/win-x64

- name: Publish API (osx-x64)
if: inputs.include_osx
run: dotnet publish ${{ env.API_PROJECT }} -c Release -r osx-x64 --self-contained true /p:PublishSingleFile=true -o ${{ env.API_OUTPUT }}/osx-x64
run: dotnet publish ${{ env.API_PROJECT }} -c Release -r osx-x64 --no-restore --self-contained true /p:PublishSingleFile=true -o ${{ env.API_OUTPUT }}/osx-x64

# ── Zip and upload artifacts ─────────────────────────────────────────────

Expand Down Expand Up @@ -261,8 +261,8 @@ jobs:
run: |
set -euo pipefail
rm -rf "${{ env.DOCKER_OUTPUT }}"
dotnet publish ${{ env.API_PROJECT }} -c Release -r linux-x64 --self-contained false /p:UseAppHost=false -o "${{ env.DOCKER_OUTPUT }}/amd64"
dotnet publish ${{ env.API_PROJECT }} -c Release -r linux-arm64 --self-contained false /p:UseAppHost=false -o "${{ env.DOCKER_OUTPUT }}/arm64"
dotnet publish ${{ env.API_PROJECT }} -c Release -r linux-x64 --no-restore --self-contained false /p:UseAppHost=false -o "${{ env.DOCKER_OUTPUT }}/amd64"
dotnet publish ${{ env.API_PROJECT }} -c Release -r linux-arm64 --no-restore --self-contained false /p:UseAppHost=false -o "${{ env.DOCKER_OUTPUT }}/arm64"

- name: Show publish contents (sanity check)
shell: bash
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,4 +114,4 @@ jobs:
fi

- name: Publish API (linux-x64)
run: dotnet publish ${{ env.API_PROJECT }} -c Release -r linux-x64 --self-contained true /p:PublishSingleFile=true -o listenarr.api/publish/linux-x64
run: dotnet publish ${{ env.API_PROJECT }} -c Release -r linux-x64 --no-restore --self-contained true /p:PublishSingleFile=true -o listenarr.api/publish/linux-x64
Loading
Loading