Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
b9cc7aa
Enable parallel integration test slices
ejsmith Apr 17, 2026
8c4808e
Fix Slack service test infrastructure
ejsmith Apr 18, 2026
3b56afc
Optimize CI docker build path
ejsmith Apr 18, 2026
46ea4c1
Fix CI solution selection
ejsmith Apr 18, 2026
a73c3d6
Remove Docker-only solution
ejsmith Apr 18, 2026
c8325f2
Fix app image publish cache reuse
ejsmith Apr 18, 2026
bc96123
Fix Docker compose readiness checks
ejsmith Apr 18, 2026
45d2e8e
Use Aspire CLI for CI services
ejsmith Apr 18, 2026
b5bbc43
Use Aspire CLI for local and CI infrastructure
ejsmith Apr 18, 2026
eb55f4e
Add explicit publish timing job
ejsmith Apr 18, 2026
374df03
Run docker publish in pull requests
ejsmith Apr 18, 2026
5a7517f
Install Aspire extension in devcontainers
ejsmith Apr 18, 2026
6174d9a
Remove redundant Aspire startup from test-api
ejsmith Apr 18, 2026
9d48fbb
Wait for Elasticsearch in test app host
ejsmith Apr 18, 2026
1f80320
Stage docker publish images for pull requests
ejsmith Apr 18, 2026
a2dc84e
Gate docker publish to deploy branches
ejsmith Apr 18, 2026
4198d45
Trigger CI after DEV_DEPLOY_BRANCH update
ejsmith Apr 18, 2026
977149e
Build all-in-one image only for tags
ejsmith Apr 18, 2026
c78dd4a
Scope test-api to backend test project
ejsmith Apr 18, 2026
cf18f2f
Reduce dev environment workflow noise
ejsmith Apr 18, 2026
c922cf9
Schedule dev stop at 5am central
ejsmith Apr 18, 2026
701c88e
Trim onboarding docs
ejsmith Apr 18, 2026
6420a90
Prefer aspire run in docs
ejsmith Apr 18, 2026
9a1dd21
Remove API-only docs section
ejsmith Apr 18, 2026
bc9d4a7
Remove redundant startup warning
ejsmith Apr 18, 2026
292f192
Clarify Angular and Svelte UI docs
ejsmith Apr 18, 2026
9c7c6cb
Fix test baseline normalization and server tracking
ejsmith Apr 18, 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
2 changes: 1 addition & 1 deletion .agents/skills/backend-architecture/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ description: >
Run `Exceptionless.AppHost` from your IDE. Aspire automatically starts all services (Elasticsearch, Redis) with proper ordering. The dashboard opens at the assigned localhost port.

```bash
dotnet run --project src/Exceptionless.AppHost
aspire run
```

Use the Aspire MCP for listing resources, viewing logs, and executing commands.
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/dotnet-cli/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ dotnet test --filter "Category=Integration"

```bash
# Run the AppHost (recommended for full stack)
dotnet run --project src/Exceptionless.AppHost
aspire run

# Run specific project
dotnet run --project src/Exceptionless.Web
Expand Down
12 changes: 9 additions & 3 deletions .agents/skills/frontend-architecture/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
---
name: frontend-architecture
description: >
Use this skill when working on the Svelte SPA's project structure — adding routes, creating
Use this skill when working on the Svelte 5 app in ClientApp — adding routes, creating
feature slices, organizing shared components, or understanding the ClientApp directory layout.
Covers route groups, $lib conventions, barrel exports, API client organization, and vertical
slice architecture. Apply when deciding where to place new files or components.
slice architecture. Apply when deciding where to place new files or components. The legacy
Angular app that still powers most of the site lives beside it in ClientApp.angular.
---

# Frontend Architecture

Located in `src/Exceptionless.Web/ClientApp`. The Svelte SPA is the primary client.
Exceptionless.Web currently has two frontend codebases:

- `src/Exceptionless.Web/ClientApp.angular` is the legacy Angular UI and still powers most of the site. The main folders there are `app/`, `components/`, `less/`, `img/`, `lang/`, and `grunt/`.
- `src/Exceptionless.Web/ClientApp` is the Svelte 5 app that is still under development.

Use this skill for `ClientApp` work.

## Directory Structure

Expand Down
8 changes: 2 additions & 6 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
FROM mcr.microsoft.com/devcontainers/dotnet:0-9.0
FROM mcr.microsoft.com/devcontainers/base:ubuntu

RUN apt-get clean -y && rm -rf /var/lib/apt/lists/* /tmp/library-scripts

RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends libnss3-tools htop nano curl jq

RUN sudo dotnet dev-certs https \
&& sudo -E dotnet dev-certs https -ep /usr/local/share/ca-certificates/aspnet/https.crt --format PEM \
&& sudo update-ca-certificates
&& apt-get -y install --no-install-recommends libnss3-tools htop nano curl jq zsh

# Change shell to zsh
RUN chsh -s $(which zsh)
Expand Down
35 changes: 29 additions & 6 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,28 @@
{
"name": "C#, Elasticsearch, Kibana, Redis",
"dockerComposeFile": "docker-compose.yml",
"service": "app",
"name": "Exceptionless Aspire Dev Container",
"build": {
"dockerfile": "Dockerfile",
"context": ".."
},
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
"remoteEnv": {
"PATH": "${containerEnv:PATH}:/home/vscode/.aspire/bin",
"SSL_CERT_DIR": "/home/vscode/.aspnet/dev-certs/trust:/etc/ssl/certs"
},
"customizations": {
"vscode": {
"extensions": [
"microsoft-aspire.aspire-vscode",
"ms-dotnettools.csharp",
"ms-dotnettools.csdevkit",
"ms-azuretools.vscode-docker",
"tintoy.msbuild-project-tools",
"streetsidesoftware.code-spell-checker",
"humao.rest-client"
]
}
},
"forwardPorts": [5003, 5100, 5200, 5201, 9200, 5601],
"forwardPorts": [5003, 5100, 5173, 5200, 5201, 5601, 6379, 8025, 9200],
"portsAttributes": {
"7049": {
"protocol": "https"
Expand All @@ -22,13 +31,27 @@
"protocol": "https"
}
},
"hostRequirements": {
"cpus": 4,
"memory": "16gb",
"storage": "32gb"
},
"postCreateCommand": "bash .devcontainer/postCreateCommand.sh",
"features": {
"ghcr.io/devcontainers/features/powershell:1": {},
"ghcr.io/devcontainers/features/dotnet:1": {},
"ghcr.io/devcontainers/features/powershell:1": {
"version": "latest"
},
"ghcr.io/devcontainers/features/dotnet:2": {
"version": "10.0"
},
"ghcr.io/devcontainers/features/node:1": {
"nodeGypDependencies": true,
"version": "lts"
},
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"version": "latest",
"enableNonRootDocker": true,
"moby": true
}
}
}
60 changes: 0 additions & 60 deletions .devcontainer/docker-compose.yml

This file was deleted.

15 changes: 14 additions & 1 deletion .devcontainer/postCreateCommand.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@
#!/bin/bash
set -euo pipefail

if ! command -v aspire >/dev/null 2>&1; then
curl -sSL https://aspire.dev/install.sh | bash
fi

export PATH="$HOME/.aspire/bin:$PATH"
export SSL_CERT_DIR="$HOME/.aspnet/dev-certs/trust:/etc/ssl/certs${SSL_CERT_DIR:+:$SSL_CERT_DIR}"
aspire --version
dotnet dev-certs https

if ! dotnet dev-certs https --trust; then
echo "dotnet dev-certs https --trust could not fully configure trust in this devcontainer; continuing."
fi

dotnet dev-certs https --trust
dotnet restore Exceptionless.slnx
Loading
Loading