Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,7 @@
# (without this, core.autocrlf=true smudges the LF blob to CRLF on Windows and
# breaks the hash locally).
assets/evidence/*.json -text

# No-key fixture source text is referenced by immutable SHA-256 values in the
# checked-in claim records. Preserve its source bytes across Windows/macOS/Linux.
backend/fixtures/source_evidence/*.txt -text
27 changes: 19 additions & 8 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ DRIFT is release intelligence for GPU and AI-infrastructure teams. It turns
primary release notes into cited, confidence-labelled, engineer-ready
answers: what changed, why it matters, and what to check next.

**Current phase:** `v0.7.0` is the current hosted Railway/Vercel release. It
hardens evidence byte integrity, makes human review notes database-only, and
raises the frontend briefing limit to ten. `v0.6.1` is the previously verified
hosted Railway revision, and `v0.5.1` is historical pre-review-gate evidence. The new local
**Current phase:** `v0.8.0` is the current source release. It adds a grounded
frontend chat box and makes the no-key fixture evidence inspectable against
checked-in synthetic source files; hosted deployment verification is pending.
`v0.7.0` is the current verified Railway/Vercel release: it hardens evidence
byte integrity, makes human review notes database-only, and raises the frontend
briefing limit to ten. `v0.6.1` is the previously verified hosted Railway
revision, and `v0.5.1` is historical pre-review-gate evidence. The new local
guardrail work adds claim-level evidence, a separate verifier, and a human
publication gate. `DRIFT_MODE=live`
can make a bounded `backend.pipeline` **draft** capture: persist/reload source
Expand All @@ -29,6 +32,12 @@ v2.30.7-1, TensorRT 11.1). The hosted `v0.6.1` app was then verified through
API-served banner pair. This is a small, bounded reviewed set — not broad or
continuous live-release analysis.

The fixture demo now ships typed claim evidence backed by explicit synthetic
source files, so the inspect-claim-evidence panel renders without an API key.
The suite is 150 tests at 100% backend
coverage; `main` branch protection requires the CI quality gate and the Codecov
`pytest` upload is confirmed (both verified 2026-07-17).

## Key commands

```powershell
Expand Down Expand Up @@ -170,9 +179,10 @@ The accepted deployment shape is a Vercel project rooted at `frontend/` and a
Railway FastAPI service built from the repository root with `Dockerfile` and
`railway.json`. The public frontend is
`https://dr1ftless.vercel.app` and the API is
`https://drift-api-prod.up.railway.app`. The verified hosted application is
`v0.6.1` in `DRIFT_MODE=live`, with the Vercel origin advertised through CORS.
On 2026-07-16, `/health` reported `v0.6.1`, `/briefing` returned the four
`https://drift-api-prod.up.railway.app`. The current verified hosted application
is `v0.7.0` in `DRIFT_MODE=live`, with the Vercel origin advertised through CORS;
`v0.6.1` was the prior verified revision. On 2026-07-16, `/health` reported
`v0.6.1`, `/briefing` returned the four
human-reviewed Insights published that day, `/docs` returned `200`, and
the Vercel HTML referenced the canonical API-served banner pair. The Swagger
banner frame follows the same light/dark preference as the canonical banners.
Expand Down Expand Up @@ -200,7 +210,8 @@ Railway URL for local TCP-proxy access; it is not evidence of a hosted run.
- `docs/BUILD_SEQUENCE.md` — implementation sequence and publication setup.
- `docs/adr/` — durable architectural decisions.
- `docs/INITIATIVES.md` — Codex project initiative/session evidence.
- `backend/fixtures/` — deterministic, citation-backed example insights.
- `backend/fixtures/` — deterministic, citation-backed example insights, each
carrying typed claim evidence.
- `backend/fixtures/evals/` — claim-grounding calibration cases.
- `notebooks/` — local manual capture/review workflow; contains no secrets.
- `assets/architecture/` — Mermaid source and themed SVG/PNG renders.
100 changes: 97 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,101 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) · Versioning:
The `0.1.0` entry is the initial repository baseline published on GitHub as
the annotated `v0.1.0` tag.

## [Unreleased]
## [0.8.0] - 2026-07-17

### Codex session record

- Carried `019f6a78-6fa2-7121-9059-85ac8ceb9904` from reviewed-evidence release
hardening and `v0.7.0` hosted verification through this `v0.8.0` source
release.

### Added

- Gave the three fixture Insights typed `claims` arrays backed by frozen,
checked-in synthetic source files. Every span, offset, source URL, and
source-content SHA-256 now follows the same invariant as a live claim; a
regression test rejects mismatched source text, hashes, URLs, offsets, or raw
item IDs. The **Inspect claim evidence** panel now renders in no-key fixture
mode without implying that example text is an upstream release note. The suite
passes 150 tests at 100% backend coverage.
- **Ask DRIFT** grounded-chat box in the frontend (`frontend/app/AskDrift.tsx`):
a single client component that posts a question to `/chat` and renders the
grounded answer, its source citations, the model/audit label, and the grounded
insight IDs, with explicit loading, no-match (HTTP 404), and error states. It
works in both fixture and live mode. The input now matches the `/chat`
contract (3–2,000 characters), reports server errors accurately, and announces
state changes accessibly. The `/chat` contract was verified against the
fixture backend and the production frontend build passes.
- Embedded the reviewed-briefing and claim-evidence screenshots in the README as
live-state visual evidence (`assets/screenshots/03-briefing.png` and
`04-briefing-claim-evidence.png`), alongside the branded Swagger and
architecture assets.
- **Presentation architecture diagram** — a hand-authored, presentation-grade
visual (`assets/architecture/arch-{dark,light}.svg`, generated by
`build_arch.py` + `build_arch_raster.mjs`) that dramatizes the six typed
stages as a first-look **trust boundary**: untrusted feeds → quarantined
machine drafts → the human review gate → trusted, published briefing. The
README and `docs/ARCHITECTURE.md` now lead with it, with the Mermaid pipeline
kept as the maintainable system-of-record in a collapsible section.

### Changed

- Restructured the README top for first impression: **The Problem → What DRIFT
Does → Try DRIFT in 60 Seconds**, leading with the hosted demo links and a
one-command `docker compose up` judge path. Reframed the closing **Disclaimer**
as a positive **Trust Model** (untrusted input → frozen source span → separate
verifier pass → human review gate) and kept the Codex/GPT-5.6 usage section
prominent.
- Made the Quick Start cross-platform: promoted `docker compose up` as the
one-command local path and added bash/curl equivalents beside every PowerShell
command (setup, endpoint calls, and the live capture command).
- Corrected the P1 tracker to name the implemented grounded-chat component
honestly. It uses `/chat`, whose retrieve-first backend already performs the
evidence lookup; the separate `/search` endpoint remains available in the API
rather than duplicating live retrieval and provider work in the browser.
- Renamed the tracked UI screenshots to clean kebab-case filenames
(`01-landing`, `02-api-docs`, `03-briefing`, `04-briefing-claim-evidence`) so
they embed reliably in Markdown.
- Rebuilt the Mermaid architecture diagram (`arch-pipeline.mmd`) into three
colour-coded trust zones (untrusted · quarantine · trusted) with the human
review gate as the crossing point, and regenerated all four light/dark
renders. The auto-laid Mermaid is kept acyclic — the "engineer also reviews"
loop-closing edge appears only in the hand-laid presentation diagram — so the
zones read left
to right.
- Renamed the Mermaid architecture assets for clarity: `architecture-diagram*`
→ `arch-pipeline*` (source, renders, and theme configs), pairing them with the
new hand-authored `arch-*` presentation diagram, and updated every reference
across the README, `docs/ARCHITECTURE.md`, `CONTRIBUTING.md`, and the asset
guides.
- Elevated the canonical DRIFT brand banners to share the presentation diagram's
visual system — trust-zone palette, node styling, gold human-review gate,
dot-grid field, and a subtle GPU compute-lattice backdrop (circuit traces,
vias, and a PCB edge-connector) behind the evidence-path card — via a new
`assets/brand/build_banner.py` generator (with a `build_banner_raster.mjs`
PNG export). The API-served SVG filenames
(`drift-banner-{dark,light}.svg`) are unchanged, so `backend/main.py` and the
Docker image keep serving them.
- Refreshed the README **Project Structure** tree to match the current backend,
frontend, assets, scripts, migrations, and tooling layout.
- Locked one **DRIFT signature gradient** (teal `#2dd4bf` → indigo `#818cf8`
dark / `#0d9488` → `#4f46e5` light) across the banner wordmark and the
presentation-diagram eyebrow, with the semantic node/trust colours kept for the
diagrams. The endpoints are the diagram's own source-teal → agent-indigo
hues; the locked palette is documented in `assets/brand/README.md`.
- Added a **Powered by GPT-5.6 tiers · Luna · Terra · Sol** credit to the brand
banner, and a GPU compute-lattice backdrop behind the evidence-path card.

### Repository operations

- Enabled branch protection on `main` (2026-07-17): the five CI quality-gate
checks (Ruff lint, Mypy type check, Tests and coverage, Frontend build, and
Documentation hygiene) are required, with strict up-to-date merges; admins
retain a bypass for pre-deadline hotfixes. Tag-only release checks are
intentionally excluded.
- Confirmed the Codecov `pytest` upload on the dashboard (2026-07-17): the
tokenless OIDC upload is queued and processed, and the repository and
`flag=pytest` coverage badges both resolve to 100%.

## [0.7.0] - 2026-07-16

Expand Down Expand Up @@ -452,7 +546,7 @@ with explicit live-path architecture and publication-ready quality gates.
- GitHub Actions gates for Ruff, mypy, pytest/coverage, Codecov upload,
frontend build, release quality, and documentation hygiene.
- Mermaid architecture source with light/dark SVG and PNG renders, plus
repository-native DRIFT hero banners.
repository-native DRIFT brand banners.
- Seven ADRs covering fixture-first execution, typed stages, provenance,
budget control, persistence, CI, and deployment topology.
- Contribution, security, runbook, architecture, build-sequence, and timed
Expand Down Expand Up @@ -483,7 +577,7 @@ with explicit live-path architecture and publication-ready quality gates.
`019f61fc-c32e-7d92-9d2e-0bd9083d08e7`.
- Full scope and submission guidance: [`docs/INITIATIVES.md`](docs/INITIATIVES.md).

[Unreleased]: #unreleased
[0.8.0]: #080---2026-07-17
[0.7.0]: #070---2026-07-16
[0.6.1]: #061---2026-07-16
[0.6.0]: #060---2026-07-16
Expand Down
11 changes: 6 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,12 @@ audit label.

## Documentation and architecture assets

The source of truth for the main architecture visual is
`assets/architecture/architecture-diagram.mmd`. Regenerate its SVG/PNG renders
with the instructions in `assets/architecture/README.md`; do not hand-edit a
rendered diagram. Architecture decisions belong in `docs/adr/`.
The source of truth for the main architecture visual is the pipeline Mermaid
`assets/architecture/arch-pipeline.mmd` and the hand-authored presentation-diagram generator
`assets/architecture/build_arch.py`. Regenerate the SVG/PNG renders with the
instructions in `assets/architecture/README.md`; do not hand-edit a rendered
diagram. Architecture decisions belong in `docs/adr/`.

The nine project initiatives and their Codex Session IDs are recorded in
The ten project initiatives and their Codex Session IDs are recorded in
[`docs/INITIATIVES.md`](docs/INITIATIVES.md); update that record if a future
initiative materially changes the baseline.
Loading
Loading