Metadata-Version: 2.4
Name: mgf-fed-web
Version: 0.2.0
Summary: The Magogi Foundation federation dashboard — a read-mostly FastAPI + Jinja web tool that composes + displays the schema-governed fed-resources/ state produced by the mgf-fedres spine (status/roadmap/architecture/focus/suggestions + sync + feedback rounds + live activity). It never authors project state. Sibling under the mgf.* namespace.
Project-URL: Homepage, https://codeberg.org/magogi-admin/mgf-fed-web
Project-URL: Issues, https://codeberg.org/magogi-admin/mgf-fed-web/issues
Project-URL: Changelog, https://codeberg.org/magogi-admin/mgf-fed-web/src/branch/main/CHANGELOG.md
Author: Bassam Alsanie, mgf-fed-web contributors
License: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Keywords: dashboard,fastapi,fed-resources,federation,magogi,web
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: fastapi>=0.110
Requires-Dist: jinja2>=3.1
Requires-Dist: mgf-brand-web<0.6,>=0.5
Requires-Dist: mgf-fedres<0.2,>=0.1
Requires-Dist: uvicorn>=0.29
Provides-Extra: dev
Requires-Dist: httpx>=0.27; extra == 'dev'
Requires-Dist: import-linter>=2.0; extra == 'dev'
Requires-Dist: mgf-test-supervisor<0.2,>=0.1.2; extra == 'dev'
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest-timeout<3,>=2.3; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff<0.16,>=0.4; extra == 'dev'
Provides-Extra: standards
Requires-Dist: mgf-common[standards]<1.0,>=0.47; extra == 'standards'
Description-Content-Type: text/markdown

# mgf-fed-web

**The Magogi Foundation federation dashboard** — a read-mostly web tool that, **per
project**, composes and displays the schema-governed `fed-resources/generated/` state
that the **`mgf-fedres`** spine produces: status, roadmap, architecture, focus,
suggestions, sync state, feedback rounds, and live activity. Part of the Magogi
Foundation federation, under the `mgf.*` namespace.

```
mgf-brand-web 0.2        CSS tokens + the operator-instrument layer (mounted at /static/brand)
        |
mgf-fedres   0.1         the shared spine — schemas + version-aware reader + sync engine
        |                + SourceProvider seam + live NDJSON + run-records + the `fedres` CLI
        |
mgf-fed-web  <-- you are here   the federation console (FastAPI + Jinja, htmx-optional)
            composes + displays generated/ · NEVER authors project state
            8 lenses · sync matrix · feedback rounds · Follow-live
```

## What this is

A federated, **read-mostly** dashboard. The one rule that makes it trustworthy: **the
web is never a second source of truth.** Each project *generates* its
`fed-resources/generated/` set from its own real artifacts; `mgf-fed-web` only
**composes and displays** them, tags anything it computes itself `derived`, and relies
on the spine's freshness gate (`regenerate → byte-identical`) so "in sync" is real.

- **The lenses** — the same render code at either scope (one project, or the federation
  overview): **Roadmap · In progress · Stalled · Next best · Decisions · Changed ·
  Coupling · Architecture**, each answering a question from reported facts.
- **The sync matrix** — every project × its first-class sync state
  (`IN_SYNC / STALE / TAMPERED / UNKNOWN / UNREADABLE / CHECKING / SYNCING / ERROR`),
  with `Check sync` (non-mutating) and `Force-sync` (regenerate-only on governed repos).
- **Feedback rounds** — a non-operative human↔AI loop: compose + deliver `feedback.json`
  into a project's inbox; render its `response.json`; never auto-commit into a governed repo.
- **Follow-live** — a telemetry-tagged mode on the In-progress lens that tails the spine's
  `live/` NDJSON; ephemeral, never gated, never styled as provenance.
- **Honest-absence everywhere** — a missing / stale / unreadable resource renders the
  explicit state with the one action that fixes it; never a blank, never stale-as-current.

All the read / sync / live logic lives in **`mgf-fedres`**; this distribution is a thin
presentation layer over it, rendered with the **`mgf-brand-web`** instrument kit.

## Status

**Skeleton / pre-implementation (0.1.0, Pre-Alpha).** Only the DOC-01 documentation
baseline + the packaging shape (the FastAPI/Jinja distribution + the `mgf.fed_web`
namespace package) exist. The FastAPI app — the routes, templates, lenses, sync UI,
feedback loop, and Follow-live — is **M2+ and not yet built** (the spine, `mgf-fedres`,
is built first).

The authoritative contract for this tool — the spec, the build brief, and the working
dashboard wireframe — lives in the spine repo under
[`mgf-fedres/docs/planning/mgf-fed-web/`](https://codeberg.org/magogi-admin/mgf-fedres/src/branch/main/docs/planning/mgf-fed-web/),
alongside the end-to-end [`PLAN.md`](https://codeberg.org/magogi-admin/mgf-fedres/src/branch/main/docs/planning/PLAN.md)
(this tool is Phase B).

## License

MIT © The Magogi Foundation
