Skip to content

Commit 533c263

Browse files
release: 1.4.0
release: 1.4.0
2 parents b15740e + f2bede6 commit 533c263

990 files changed

Lines changed: 92239 additions & 36800 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.devcontainer/Dockerfile-devcontainer

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ RUN apt-get update && \
1818
jq \
1919
less \
2020
libffi-dev \
21+
libmagic-dev \
2122
libpq-dev \
2223
libsqlite3-dev \
2324
libssl-dev \

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
"editor.formatOnSave": true,
8787
"python.linting.enabled": true,
8888
"python.testing.pytestEnabled": true,
89-
"python.defaultInterpreterPath": "${workspaceFolder}/agentic-backend/.venv/bin/python",
89+
"python.defaultInterpreterPath": "/workspaces/fred/agentic-backend/.venv/bin/python",
9090
"terminal.integrated.defaultProfile.linux": "bash"
9191
}
9292
}

.dockerignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ pip-wheel-metadata/
2626
**/Dockerfile*
2727
**/dockerfiles
2828
**/.dockerignore
29+
!frontend/dockerfiles
30+
!frontend/dockerfiles/docker-entrypoint.sh
2931

3032
# macOS-specific files
3133
**/.DS_Store
@@ -41,6 +43,7 @@ pip-wheel-metadata/
4143
# Local development related files
4244
**/target/
4345
**/configuration.yaml
46+
**/configuration_*.yaml
4447

4548
# Byte-compiled files
4649
__pycache__/
@@ -84,4 +87,4 @@ __pycache__/
8487
# Temporary files
8588
**/*.tmp
8689
**/*.temp
87-
**/tmp/
90+
**/tmp/

.github/copilot-instructions.md

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,30 @@
1-
# Fred AI Coding Instructions
1+
# Fred Copilot Instructions
22

3-
## Big Picture (Read First)
4-
- Three services: `agentic-backend/` (FastAPI + LangGraph agents), `knowledge-flow-backend/` (FastAPI ingestion + vector search + MCP endpoints), `frontend/` (React + Vite UI).
5-
- Agent behavior lives in `agentic-backend/config/configuration.yaml` (agents, MCP servers, feature flags, model providers).
6-
- Ingestion + storage pipelines live in `knowledge-flow-backend/config/configuration.yaml` (input/output processors, storage backends, embeddings).
7-
- The frontend consumes both APIs via generated RTK Query hooks; regenerate after OpenAPI changes.
3+
## Mandatory Read Order
84

9-
## Critical Workflows
10-
- Start services via Makefiles: `make run` in `agentic-backend/` (port 8000), `knowledge-flow-backend/` (port 8111), and `frontend/` (port 5173).
11-
- Temporal workers are separate: `make run-worker` in `agentic-backend/` and `knowledge-flow-backend/` when needed.
12-
- Secrets go in each backend’s `config/.env`; non-secret config stays in `configuration.yaml`.
13-
- Dev Container setup is supported (see root `README.md`).
5+
1. [`docs/DEVELOPER_CONTRACT.md`](../docs/DEVELOPER_CONTRACT.md)
6+
2. [`docs/PLATFORM_RUNTIME_MAP.md`](../docs/PLATFORM_RUNTIME_MAP.md)
7+
3. [`docs/CONFIGURATION_AND_POLICY_CONVENTIONS.md`](../docs/CONFIGURATION_AND_POLICY_CONVENTIONS.md)
8+
4. [`docs/REBAC.md`](../docs/REBAC.md) for team/access work
149

15-
## Frontend Conventions
16-
- Use MUI components and the app theme from `theme.tsx`.
17-
- All UI copy must use `react-i18next` (`t` from `useTranslation`) and update `src/locales/{lang}/translation.json`.
18-
- Use `Link` from `react-router-dom` for navigation; ensure `to` is a valid route.
19-
- Regenerate API clients when backend schemas change: `make update-agentic-api` or `make update-knowledge-flow-api` (run from `frontend/`).
20-
- Format with `prettier` (via `make format`).
10+
## Non-Negotiable Defaults
2111

22-
## Python Backend Conventions
23-
- Use `uv` for dependency management.
24-
- Each backend has its own `.venv`; run scripts with `.venv/bin/python` to ensure correct deps.
25-
- Use type hints everywhere and prefer Python 3.10+ unions (`str | None`).
26-
- Format with `ruff` (e.g., `make format` in `knowledge-flow-backend/`).
12+
- Keep implementation minimal and direct.
13+
- Do not over-engineer.
14+
- Run `make code-quality` and `make test` in every touched project.
15+
- Default tests must stay offline.
16+
- Tests requiring external services must be marked `integration`.
17+
- Assume no third-party services are running for default validation (no MinIO/OpenSearch/Postgres/Keycloak/OpenFGA/Temporal, etc.).
18+
- Every new or modified function must explain:
19+
- why it exists
20+
- how to use it
21+
- and include a short usage example for shared/public helper functions.
22+
- Avoid conceptual/design-pattern explanation docs; write concrete operational docs developers can apply immediately.
23+
- Keep function count and helper layers under control: business function or strictly necessary shared helper only.
24+
- Prefer changes that shrink and simplify the codebase (reuse/remove) instead of growing parallel logic.
25+
26+
## Fred Runtime Topology
27+
28+
Canonical source:
29+
30+
- [`docs/PLATFORM_RUNTIME_MAP.md`](../docs/PLATFORM_RUNTIME_MAP.md)

.github/pull_request_template.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
## Summary
2+
3+
Describe what changed and why.
4+
5+
## Mandatory Checklist
6+
7+
- [ ] I followed [`docs/DEVELOPER_CONTRACT.md`](../docs/DEVELOPER_CONTRACT.md).
8+
- [ ] The change is minimal and avoids over-engineering.
9+
- [ ] I ran `make code-quality` in every touched project.
10+
- [ ] I ran `make test` in every touched project.
11+
- [ ] I did not introduce unit/default tests that require external services.
12+
- [ ] Any test requiring external services is marked `@pytest.mark.integration`.
13+
- [ ] I updated documentation when behavior or conventions changed.
14+
15+
## Validation Notes
16+
17+
Paste the exact commands and short results.
18+
19+
## Risk / Rollback
20+
21+
State main risk and rollback approach.

.github/workflows/Build-and-push-docker-develop.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ jobs:
3131
context: ./
3232
dockerfile: ./knowledge-flow-backend/dockerfiles/Dockerfile-prod
3333
image: knowledge-flow-backend
34+
- name: control-plane-backend
35+
context: ./
36+
dockerfile: ./control-plane-backend/dockerfiles/Dockerfile-prod
37+
image: control-plane-backend
3438
- name: frontend
3539
context: ./
3640
dockerfile: ./frontend/dockerfiles/Dockerfile-prod

.github/workflows/Build-and-push-docker.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ jobs:
2828
context: ./
2929
dockerfile: ./knowledge-flow-backend/dockerfiles/Dockerfile-prod
3030
image: knowledge-flow-backend
31+
- name: control-plane-backend
32+
context: ./
33+
dockerfile: ./control-plane-backend/dockerfiles/Dockerfile-prod
34+
image: control-plane-backend
3135
- name: frontend
3236
context: ./
3337
dockerfile: ./frontend/dockerfiles/Dockerfile-prod
@@ -95,6 +99,7 @@ jobs:
9599
```
96100
oci://${{ env.REGISTRY }}/thalesgroup/fred-agent/agentic-backend:${{ steps.meta.outputs.version }}
97101
oci://${{ env.REGISTRY }}/thalesgroup/fred-agent/knowledge-flow-backend:${{ steps.meta.outputs.version }}
102+
oci://${{ env.REGISTRY }}/thalesgroup/fred-agent/control-plane-backend:${{ steps.meta.outputs.version }}
98103
oci://${{ env.REGISTRY }}/thalesgroup/fred-agent/frontend:${{ steps.meta.outputs.version }}
99104
```
100105
draft: false
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
name: Check Alembic Migrations
2+
3+
on:
4+
push:
5+
branches:
6+
- develop
7+
pull_request:
8+
branches:
9+
- develop
10+
11+
jobs:
12+
check-migrations-heads:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Check out the repo
17+
uses: actions/checkout@v4
18+
19+
- name: Set up Python
20+
uses: actions/setup-python@v5
21+
with:
22+
python-version: "3.12"
23+
24+
- name: Install uv
25+
uses: astral-sh/setup-uv@v5
26+
27+
- name: Install dependencies (agentic-backend)
28+
run: uv sync
29+
working-directory: agentic-backend
30+
31+
- name: Install dependencies (control-plane-backend)
32+
run: uv sync
33+
working-directory: control-plane-backend
34+
35+
- name: Install dependencies (knowledge-flow-backend)
36+
run: uv sync
37+
working-directory: knowledge-flow-backend
38+
39+
- name: Check single Alembic head per backend
40+
run: make db-check-combined-heads
41+
42+
check-migrations-sqlite:
43+
runs-on: ubuntu-latest
44+
45+
steps:
46+
- name: Check out the repo
47+
uses: actions/checkout@v4
48+
49+
- name: Set up Python
50+
uses: actions/setup-python@v5
51+
with:
52+
python-version: "3.12"
53+
54+
- name: Install uv
55+
uses: astral-sh/setup-uv@v5
56+
57+
- name: Install dependencies (agentic-backend)
58+
run: uv sync
59+
working-directory: agentic-backend
60+
61+
- name: Install dependencies (control-plane-backend)
62+
run: uv sync
63+
working-directory: control-plane-backend
64+
65+
- name: Install dependencies (knowledge-flow-backend)
66+
run: uv sync
67+
working-directory: knowledge-flow-backend
68+
69+
- name: Run combined SQLite migration checks
70+
run: make db-check-combined-sqlite
71+
72+
check-migrations-postgres:
73+
runs-on: ubuntu-latest
74+
75+
steps:
76+
- name: Check out the repo
77+
uses: actions/checkout@v4
78+
79+
- name: Set up Python
80+
uses: actions/setup-python@v5
81+
with:
82+
python-version: "3.12"
83+
84+
- name: Install uv
85+
uses: astral-sh/setup-uv@v5
86+
87+
- name: Install dependencies (agentic-backend)
88+
run: uv sync
89+
working-directory: agentic-backend
90+
91+
- name: Install dependencies (control-plane-backend)
92+
run: uv sync
93+
working-directory: control-plane-backend
94+
95+
- name: Install dependencies (knowledge-flow-backend)
96+
run: uv sync
97+
working-directory: knowledge-flow-backend
98+
99+
- name: Run combined PostgreSQL migration checks
100+
run: make db-check-combined-postgres

0 commit comments

Comments
 (0)