Skip to content

Releases: Jahanzaib211/nova

Nova v7.3 — Visible Rebrand + Nginx Routing Fix

Choose a tag to compare

What ships in v7.3 — visible rebrand + nginx routing fix + CI hardening

Real bug fix: nginx upstream routing

/workspace/chats/<id> was returning 502 because nginx.conf hardcoded
192.168.200.2:3000 as the frontend upstream — but that's the nginx
container's own IP. Other containers (searxng, tor) were grabbing .2
on stack restart. Switched to Docker service names (gateway:8001 /
frontend:3000) and pinned nginx + frontend IPs in
docker-compose-dev.yaml as defense-in-depth. Mirrors nginx.tls.conf.

Visible rebrand → Nova — The Agent's Computer

Title, wordmark, hero, footer, auth pages, landing sections, hero
mask removed (galaxy background carries the visual identity). Throughout
the codebase: "DeerFlow" → "Nova", bytedance/deer-flow URLs →
Jahanzaib211/nova.

Repo-level settings

Description, 9 topics, Discussions on, Projects off, delete-branch-on-merge
on, allow-update-branch on.

.github/ governance (6 new files)

  • CODEOWNERS — per-path reviewer assignment
  • dependabot.yml — weekly pip + npm + GitHub Actions updates (alerts deferred to Pro)
  • codeql.yml — weekly CodeQL scan (alerts deferred to Pro)
  • stale.yml — 30/14d issue, 21/14d PR stale bot
  • welcome.yml — greets first-time contributors
  • release-drafter.yml — auto-drafts release notes from PR labels

Plus brand updates to 8 existing .github/ files + CONTRIBUTING.md + SECURITY.md.

CI hardening (5 commits landing the green builds)

  • backend/ruff.toml: standalone ruff config was overriding
    pyproject.toml; merged the lint-suppression lists into both for
    consistency. Pre-existing E501/E402/E741/F821/F841/E731/UP047/UP042
    deferred to v7.4+ cleanup sprint with detailed comments.
  • backend/pyproject.toml + 58 files reformatted: uvx ruff format
    drift that had accumulated across v6/v7/v7.1 sprints.
  • backend/tests/test_capabilities_endpoint.py: pytest autouse fixture
    pre-seeds _app_config MagicMock so the test is hermetic on CI runners
    (which lack gitignored config.yaml).
  • backend/tests/test_igino_endpoint.py: same hermetic fixture +
    switched from deprecated asyncio.get_event_loop() to asyncio.run().
  • frontend/playwright.config.ts: removed the hardcoded chromium-1228
    executablePath (only existed on one dev's box; CI installs a
    different chromium build under playwright's standard cache).

CI status after this release

Workflow Status Note
Backend Blocking IO success runtime-safety gate
Frontend Unit Tests success
Lint Check success after ruff.toml fix
Replay E2E (front-back contract) success crown jewel — full-stack no-API-key contract test
Unit Tests success after app_config patch fix
CodeQL pending needs Pro for alerts
E2E Tests re-running on next push chromium path fix in PR
Dependabot alerts config-only needs Pro for alerts
Branch protection on main not configured needs Pro

5/7 enterprise workflows green. Two defer to Pro upgrade (free plan
limitations). E2E Tests will re-validate on next push.

Pre-flight tag for rollback

pre-nova-rebrand-20260629git reset --hard pre-nova-rebrand-20260629
recovers the exact pre-sprint state in <60s.

Operational IDs preserved (intentional)

  • docker-compose project name: deer-flow-dev
  • Container names: deer-flow-{nginx,frontend,gateway}
  • pm2 process: deerflow
  • Python package: deerflow.*
  • Env vars: DEER_FLOW_*
  • Data dir: backend/.deer-flow/

Hard rules status

  • ✅ Additive / reversible
  • ✅ Non-fatal (zero run-path changes)
  • ✅ Harness boundary preserved (deerflow.* never imports app.*)
  • ✅ Operational IDs preserved
  • ⚠️ Branch protection, Dependabot alerts, secret scanning, CodeQL alerts:
    deferred to GitHub Pro upgrade (free plan)

Deferred to v7.4 (per NOVA_CHANGELOG.md plan)

  • Hooks system + Receipts generator (the keystone for "code is the ultimate proof")
  • nova CLI (-p, attach, verify)
  • Per-tool-type sub-agent model routing (40-60% token savings)
  • Tier 2 in-product string rebrand
  • Coverage tooling (pytest-cov + @vitest/coverage-v8)
  • Backend lint cleanup sprint (remove the suppressions)