Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
c4565a0
Preserve local BackIntel PoC foundation and frontend references
Sep 29, 2026
c98097a
Build shared decision workspace with React and Reflex demos
Sep 29, 2026
0ef6e31
Keep the shared workspace font consistent across both demos
Sep 29, 2026
95b944c
Label the source date without implying a collection timestamp
Sep 29, 2026
8b6c0a7
Fix light-theme contrast in the Python decision workspace
Sep 29, 2026
499ae9e
Publish MIT-licensed BackIntel business demo source
Oct 1, 2026
c224173
Document BackIntel analysis workspace acceptance campaign
Hudson-Aikins Oct 4, 2026
ae73a38
Recover goal-driven analysis workspace from saved development history
Hudson-Aikins Oct 4, 2026
e9f120e
Add offline analysis validation and enforce campaign spending limits
Hudson-Aikins Oct 4, 2026
0e42b32
Verify worker interruption and fixture evidence backup restoration
Hudson-Aikins Oct 4, 2026
f67ed88
Preserve timezone offsets in source label availability
Hudson-Aikins Oct 4, 2026
fa9ef53
Complete offline component, authorization, privacy, and broker valida…
Hudson-Aikins Oct 4, 2026
6d46fb2
Make analysis setup portable and validate actual Telco locally
Hudson-Aikins Oct 4, 2026
f5e2b69
Honor managed cloud CA trust during model acquisition
Hudson-Aikins Oct 4, 2026
53ffa85
Preserve verified local recovery fixes for analysis workspace
Oct 7, 2026
5fe7fcd
Consolidate local BackIntel source and define scenario benchmark camp…
Oct 7, 2026
f0e5ffe
Record deterministic workflow scenarios and isolate fixture origins
Oct 7, 2026
fe90fb0
Run local predictor benchmarks against verified isolated source
Oct 7, 2026
73b334c
Add source-grounded benchmark scoring and candidate provenance
Oct 7, 2026
a942321
Add versioned BackIntel benchmark campaign collection and comparison
Oct 7, 2026
ac41ece
Document reproducible benchmark commands and evidence boundaries
Oct 7, 2026
88d302a
Align bounded benchmark test with deferred runtime imports
Oct 7, 2026
28ee77f
Reuse fixture API module through Aegra's configured app loader
Oct 7, 2026
8f3cb28
fix: return blocked exit codes from benchmark campaign
Oct 7, 2026
6ae336f
docs: present consolidated BackIntel as a demo proof of concept
Oct 7, 2026
eff7420
Merge main license and website updates into demo PoC
Oct 7, 2026
6c82c7a
fix: patch demo build dependency and record release gate limits
Oct 7, 2026
4a53644
fix: wait for durable job completion in recovery checks
Oct 7, 2026
62d13fc
Fix atomic analysis completion and independent refresh scheduling
Oct 7, 2026
f04719f
Add exact-candidate PoC control evidence checks
Oct 7, 2026
9b41bb6
Match control validation to manager read permissions
Oct 7, 2026
d8ec5b7
Fix analysis recovery, correction concurrency, and saved findings
Oct 7, 2026
0da0632
Enforce job deadlines with supervised worker processes
Oct 8, 2026
3b65d25
Include the required demo scenario in runtime builds
Oct 8, 2026
548141a
Make analysis edits, promotion, and request recovery consistent
Oct 8, 2026
7c249a1
Enforce demo acceptance and repair remaining review findings
Oct 8, 2026
0059db4
Stop attached sandbox output before container cleanup
Oct 8, 2026
6008f41
Close provider budget, viewer privacy, and review concurrency gaps
Oct 8, 2026
e574728
fix: address analyst review findings and require database authentication
Oct 8, 2026
158a848
fix: require current analyst evidence and preserve source counts
Oct 8, 2026
d436a91
fix: enforce analyst evidence, charge, import and API boundaries
Oct 8, 2026
b6fbe08
fix: include capability authentication config in Docker build
Oct 8, 2026
b1ff3c1
fix: bind evidence, retries and cached models to current revisions
Oct 8, 2026
512c379
fix: validate current runtime and state before analysis work
Oct 8, 2026
48a4f60
fix: refresh promoted models and preserve direct job ordering
Oct 8, 2026
4ba5f1f
Make import publication atomic and enforce current approvals
Oct 8, 2026
c8813fd
Forward import transaction arguments in offline runtime fixture
Oct 8, 2026
4198604
Preserve analysis evidence, refresh state, and model approval boundaries
Oct 8, 2026
e3a824e
Validate cited rankings, source permission changes, and package contents
Oct 8, 2026
2f13027
Bind analysis reuse and publication to current code and approvals
Oct 8, 2026
32178e7
Enforce source consent, current model approval, and public package bo…
Oct 8, 2026
631f31b
Select the saved goal before checking model-selection metrics
Oct 8, 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
18 changes: 18 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
*
!Dockerfile.runtime
!requirements.models.txt
!aegra.json
!aegra.capabilities.json
!runtime/
!runtime/**
!migrations/
Expand All @@ -11,8 +13,24 @@
!tests/**
!config/
!config/**
!docs/
!docs/demo/
!docs/demo/SupportScenario.json
!data/
!data/profiles/
!data/profiles/**
**/__pycache__/
**/*.pyc

!aegra.analysis.json
!apps/
!apps/web/
!apps/web/dist/
!apps/web/dist/**
/apps/web/node_modules/
!reflex_demo/
!reflex_demo/reflex_demo/
!reflex_demo/reflex_demo/**
!frontend/
!frontend/src/
!frontend/src/styles.css
9 changes: 9 additions & 0 deletions .env.analysis.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Copy only nonsecret runtime settings. Inject OPENROUTER_API_KEY through Secrets.
BACKINTEL_DATASET_DIR=/workspace/backintel-cloud/live-campaign/Datasets
BACKINTEL_MODEL_DIR=/workspace/backintel-cloud/live-campaign/Models
BACKINTEL_ACCESS_CREDENTIAL_FILE=/workspace/backintel-cloud/live-campaign/credentials/access.json
BACKINTEL_AEGRA_URL=http://127.0.0.1:2028
OMP_NUM_THREADS=2
MKL_NUM_THREADS=2
OPENBLAS_NUM_THREADS=2
HF_HUB_OFFLINE=1
93 changes: 93 additions & 0 deletions .github/workflows/analysis-quality.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Analysis code checks
on:
pull_request:
push:
branches: [main]
jobs:
static:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- uses: actions/setup-node@v4
with: {node-version: '22'}
- uses: actions/setup-python@v5
with: {python-version: '3.12'}
- name: Install frontend dependencies
run: npm ci --prefix apps/web
- name: Build frontend
run: npm run build --prefix apps/web
- name: Frontend component checks and coverage
run: npm run test:receipt --prefix apps/web
- name: Pinned frontend dead code check
run: npm run deadcode --prefix apps/web
- name: Pinned Python dead code check
run: |
python -m pip install vulture==2.14
python -m vulture runtime/analysis_*.py scripts/analysis_*.py --min-confidence 100
- name: Compile backend
run: python -m compileall -q runtime scripts tests
- uses: actions/upload-artifact@v4
if: always()
with:
name: analysis-component-evidence
path: apps/web/coverage/
offline:
runs-on: ubuntu-latest
services:
postgres:
image: pgvector/pgvector:pg18
env:
POSTGRES_USER: validation
POSTGRES_PASSWORD: local-validation-only
POSTGRES_DB: postgres
ports: ['5432:5432']
options: >-
--health-cmd "pg_isready -U validation -d postgres"
--health-interval 2s --health-retries 20
redis:
image: redis:7.2.5-alpine
ports: ['6379:6379']
options: >-
--health-cmd "redis-cli ping"
--health-interval 2s --health-retries 20
env:
BACKINTEL_VALIDATION_ADMIN_URL: postgresql://validation:local-validation-only@127.0.0.1:5432/postgres
BACKINTEL_VALIDATION_REDIS_URL: redis://127.0.0.1:6379/15
NODE_PATH: ${{ github.workspace }}/apps/web/node_modules
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- uses: actions/setup-node@v4
with: {node-version: '22'}
- uses: actions/setup-python@v5
with: {python-version: '3.12'}
- run: python -m pip install -r requirements.testing.txt
- run: npm ci --prefix apps/web
- run: npm run build --prefix apps/web
- name: Install pinned browser
run: |
cd apps/web
npx playwright install --with-deps chromium
- name: Unit, database, budget, and recovery checks
run: python scripts/validation/run_analysis_offline.py --mode unit --output artifacts/AnalysisValidation/ci-unit
- name: Existing runtime and all Python unit regressions
env:
BACKINTEL_UNIT_OUTPUT: artifacts/AnalysisValidation/ci-regression
run: python scripts/validation/check_units.py
- name: Five-domain simulated browser and native-clock checks
env:
BACKINTEL_VALIDATION_POSTGRES_CONTAINER: ${{ job.services.postgres.id }}
run: python scripts/validation/run_analysis_offline.py --mode e2e --broker-recovery --output artifacts/AnalysisValidation/ci-e2e
- uses: actions/upload-artifact@v4
if: always()
with:
name: analysis-offline-evidence
path: artifacts/AnalysisValidation/
validate:
needs: offline
permissions:
contents: read
uses: ./.github/workflows/product-validation.yml
17 changes: 17 additions & 0 deletions .github/workflows/dead-code.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Dead code
# Managed by CodexSkills bootstrap-code-quality.py
on:
pull_request:
permissions:
contents: read
jobs:
dead-code:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: astral-sh/setup-uv@v7
- run: bash scripts/check-dead-code.sh
env:
QUALITY_BASE_REF: origin/${{ github.base_ref }}
68 changes: 68 additions & 0 deletions .github/workflows/decision-workspace.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Decision workspace checks

on:
pull_request:
paths:
- 'frontend/**'
- 'reflex_demo/**'
- 'runtime/decision_workspace.py'
- 'tests/**'
- 'scripts/validation/check_units.py'
- 'scripts/sync_workspace_styles.py'
- '.github/workflows/decision-workspace.yml'
workflow_dispatch:

permissions:
contents: read

jobs:
check:
runs-on: ubuntu-latest
timeout-minutes: 15
services:
postgres:
image: postgres:18
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: test_backintel_workspace
ports: ['5432:5432']
options: >-
--health-cmd "pg_isready -U postgres -d test_backintel_workspace"
--health-interval 5s --health-timeout 5s --health-retries 10
env:
PYTHONDONTWRITEBYTECODE: '1'
BACKINTEL_TEST_DATABASE_URL: postgresql://postgres:postgres@localhost:5432/test_backintel_workspace
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
persist-credentials: false
- uses: actions/setup-node@v4
with:
node-version: '22'
cache: npm
cache-dependency-path: frontend/package-lock.json
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: python -m pip install -r requirements.testing.txt -r reflex_demo/requirements.txt
- run: npm ci
working-directory: frontend
- run: mkdir -p artifacts/validation/DecisionWorkspace
- run: npm run build
working-directory: frontend
- run: npm test -- --reporter=json --outputFile=../artifacts/validation/DecisionWorkspace/frontend-unit.json
working-directory: frontend
- run: npm run code:quality > ../artifacts/validation/DecisionWorkspace/fallow.log
working-directory: frontend
- run: python scripts/validation/check_units.py
- run: python scripts/sync_workspace_styles.py
- run: reflex export --no-zip
working-directory: reflex_demo
- uses: actions/upload-artifact@v4
if: always()
with:
name: decision-workspace-${{ github.event.pull_request.head.sha || github.sha }}
path: artifacts/validation/DecisionWorkspace/
if-no-files-found: error
27 changes: 18 additions & 9 deletions .github/workflows/product-validation.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
name: Product validation
name: Demo PoC validation

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
push:
branches: [main]
workflow_dispatch:
workflow_call:

permissions:
contents: read

jobs:
validate:
runs-on: ubuntu-latest
timeout-minutes: 10
timeout-minutes: 20
services:
postgres:
image: postgres:16
Expand All @@ -32,6 +28,8 @@ jobs:
CANDIDATE_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
VALIDATION_OUTPUT: artifacts/validation/${{ github.run_id }}-${{ github.run_attempt }}
BACKINTEL_TEST_DATABASE_URL: postgresql://postgres:postgres@localhost:5432/backintel_test
BACKINTEL_POC_EVIDENCE: artifacts/AnalysisValidation/ci-e2e
BACKINTEL_SANDBOX_IMAGE: backintel-demo-validation:latest
steps:
- name: Check out exact candidate
uses: actions/checkout@v4
Expand All @@ -52,12 +50,21 @@ jobs:
- name: Install project validation dependency
run: python -m pip install --disable-pip-version-check -r requirements.txt

- name: Download this candidate's offline evidence
uses: actions/download-artifact@v4
with:
name: analysis-offline-evidence
path: artifacts/AnalysisValidation/

- name: Build actual sandbox from this candidate
run: docker build -f Dockerfile.runtime --build-arg BACKINTEL_CANDIDATE_SHA="$CANDIDATE_SHA" -t "$BACKINTEL_SANDBOX_IMAGE" .

- name: Run exact-candidate validation
id: validation
continue-on-error: true
run: |
node scripts/validation/run.mjs \
--manifest tabellio.validation.json \
--manifest tabellio.demo.validation.json \
--expected-commit "$CANDIDATE_SHA" \
--output "$VALIDATION_OUTPUT"

Expand All @@ -66,7 +73,9 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: product-validation-${{ github.event.pull_request.head.sha || github.sha }}-${{ github.run_id }}-${{ github.run_attempt }}
path: artifacts/validation/
path: |
artifacts/validation/
artifacts/AnalysisValidation/Sandbox/
if-no-files-found: error
retention-days: 90

Expand Down
21 changes: 21 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,27 @@
/artifacts/validation/
/artifacts/AnalysisValidation/
/artifacts/Models/
/private/
__pycache__/
.venv/
*.py[cod]
.env
/apps/web/node_modules/
/apps/web/dist/
/apps/web/coverage/
# Graphify generates a graph in the working directory and a cache beside scanned files.
**/graphify-out/
frontend/node_modules/
frontend/dist/
frontend/*.tsbuildinfo
reflex_demo/.venv/
reflex_demo/.web/
reflex_demo/assets/
reflex_demo/__pycache__/

.env.*
!.env.example
!.env.analysis.example
# Private tracker handoff stays local.
docs/demo/Packages/AgentShiftReminder.json
docs/release/AgentShiftReleaseAssessment.txt
4 changes: 4 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
## Code cleanup

- Run `bash scripts/check-dead-code.sh` after removing code and before review.
- For cross-file changes, run `graphify update .`, inspect callers and dependencies, and verify findings in current source and framework registrations.
16 changes: 16 additions & 0 deletions Dockerfile.analysis
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
ARG BACKINTEL_BASE_IMAGE=backintel-analysis-base:local
FROM ${BACKINTEL_BASE_IMAGE}
ENTRYPOINT []
WORKDIR /app
RUN pip install --no-cache-dir 'gliner2[local]==2.0.0'
COPY runtime ./runtime
COPY config ./config
COPY migrations ./migrations
COPY scripts ./scripts
COPY tests ./tests
COPY reflex_demo/reflex_demo ./reflex_demo/reflex_demo
COPY frontend/src/styles.css ./frontend/src/styles.css
COPY aegra.analysis.json ./aegra.analysis.json
COPY apps/web/dist ./apps/web/dist
ENV AEGRA_CONFIG=/app/aegra.analysis.json BACKINTEL_CANDIDATE_SHA=working-tree
CMD ["sh","-c","python -m runtime.bootstrap && python -m scripts.analysis_demo seed && exec uvicorn aegra_api.main:app --host 0.0.0.0 --port 2026"]
15 changes: 11 additions & 4 deletions Dockerfile.runtime
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,23 @@ FROM python:3.12-slim-bookworm
WORKDIR /app
ARG BACKINTEL_CANDIDATE_SHA
ENV BACKINTEL_CANDIDATE_SHA=$BACKINTEL_CANDIDATE_SHA
RUN pip install --no-cache-dir aegra-api==0.10.5 langchain-typesafe==0.0.1a3
RUN pip install --no-cache-dir aegra-api==0.10.5 langchain-typesafe==0.0.1a3 cloudpickle==3.1.2
ARG BACKINTEL_WITH_MODELS=0
COPY requirements.models.txt ./requirements.models.txt
RUN if [ "$BACKINTEL_WITH_MODELS" = "1" ]; then \
apt-get update && apt-get install -y --no-install-recommends libgomp1 && rm -rf /var/lib/apt/lists/* && \
pip install --no-cache-dir torch==2.14.0 --index-url https://download.pytorch.org/whl/cpu && \
pip install --no-cache-dir -r requirements.models.txt; \
fi
COPY aegra.json ./aegra.json
COPY aegra.capabilities.json ./aegra.capabilities.json
COPY config ./config
COPY runtime ./runtime
COPY migrations ./migrations
COPY scripts ./scripts
COPY data/profiles ./data/profiles
COPY tests/test_replay_ledger.py ./tests/test_replay_ledger.py
COPY tests/test_costs.py ./tests/test_costs.py
COPY tests/test_jev.py ./tests/test_jev.py
COPY tests ./tests
COPY docs/demo/SupportScenario.json ./docs/demo/SupportScenario.json
ENV AEGRA_CONFIG=/app/aegra.json PYTHONUNBUFFERED=1
EXPOSE 2026
CMD ["uvicorn", "aegra_api.main:app", "--host", "0.0.0.0", "--port", "2026"]
Loading
Loading