mirror of
https://github.com/MeshEnvy/mesh-forge.git
synced 2026-08-06 08:53:08 +02:00
wip
This commit is contained in:
@@ -1,11 +0,0 @@
|
||||
---
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
when making changes to a project that has a changelog, add the appropriate unreleased change log entry
|
||||
|
||||
when preparing an MPM plugin release, don't forget to update @public/registry.json
|
||||
|
||||
changelog uses: major/minor/patch and does NOT use added/changed/removed
|
||||
|
||||
when preparing a release, do not touch git. no tagging, no commits
|
||||
@@ -1,83 +0,0 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to Mesh Forge will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Patch
|
||||
|
||||
- **Build:** Tailwind uses **`source(none)`** plus explicit **`@source`** globs for **`src/`**, **`components/`**, and **`index.html`** only so **`vendor/`** (~100k+ vendored files) is never scanned (previously made `vite build` look hung).
|
||||
- **Repo URLs:** optional **`/tree/<branch>/target/<env>`** path (branch segments may contain `/`); **`/owner/repo`** with no branch shows **`--branch--`** / **`--target--`** placeholders until chosen. Target picker stays disabled until a branch is selected; URL updates with branch and target.
|
||||
- **Repo page:** single-column layout shows **branch / target / Flash** above **About**; branch and target use a **Radix Popover combobox** (filter field + full list) instead of `<datalist>` so arrow keys work after a selection.
|
||||
- **Repo About sidebar:** uses GitHub REST **`description`** and **`homepage`** (cached with branch list refresh), not a README-derived blurb—matches GitHub’s About section (text + link icon). Removed unused **`readmePlainSummary`** helper.
|
||||
- **Repo page layout:** GitHub-style **About** sidebar (**Refresh branches** under blurb; **GitHub** icon opens the ref tree next to homepage or repo title); main column **toolbar** (branch, target, **Flash** only), CI/USB, then **README** body (no separate “README” heading; spacing only above README so a leading `---` is not doubled with a border). Removed **device compatibility** voting (works / does not work) from the repo page.
|
||||
- **Repo README:** render inline HTML via `rehype-raw` + `rehype-sanitize` (badges, images) in the main column.
|
||||
- **Repo builds:** friendlier **CI failed** copy (headline + body + **Technical details** `<details>`); primary button **Retry build** re-queues via **`retryBuild`**; **Flash** disabled while **queued/running**; GitHub **dispatch** retries **4×** with backoff on **5xx/429** and common network errors. Links: **View run** when `githubRunId` set, else **Mesh Forge workflow** when failed with no run. Shorter **422 / unexpected inputs** maintainer copy in `formatBuildErrorSummary`.
|
||||
- **RepoPage:** treat missing scan row (`null`) like loading so the UI does not crash before `ensureScan` creates the document.
|
||||
- Removed in-app **documentation** routes (`/docs`, ESP/nRF markdown pages). **`/docs/*`** and legacy **`/flasher`** URLs redirect to **home**. ESP **Web Serial** flashing only on **`/:owner/:repo` / tree** pages: when a build **succeeds**, the signed bundle is fetched automatically and **`EspFlasher`** appears (no separate upload page). Flasher options: baud, full erase, **no auto-reset**, **1200 baud** bootloader pulse. Unknown paths show **not found** instead of a blank screen.
|
||||
- Fixed **RepoPage** Rules of Hooks violation (blank page after default-branch redirect) by running all hooks before any `Navigate` return.
|
||||
- Standardized on **Bun** for installs and scripts; use **`bunx convex`** / **`bunx wrangler`** instead of npm/npx; removed `package-lock.json` in favor of `bun.lock`; Repo PlatformIO workflows upload R2 via `bunx wrangler`.
|
||||
- Home page: **Try a demo** shortcuts for `meshtastic/firmware` and `meshcore-dev/MeshCore` with GitHub links.
|
||||
- `bun run smoke` runs `bun run build` and `bunx convex codegen` for a quick CLI smoke without the browser.
|
||||
|
||||
### Major
|
||||
|
||||
- Replaced the Vike app with Vite, React, and React Router (GitHub-style `/:owner/:repo` and `/:owner/:repo/tree/*` routes, branch switcher, GitHub URL paste on the home page).
|
||||
- Replaced the Meshtastic-centric Convex model with `repoBranchList`, `repoRefScan`, `repoBuilds`, and `deviceReports`; removed legacy `builds` / `profiles` / `plugins` tables and related UI.
|
||||
- Target discovery runs in Convex via GitHub archive zip + INI scan (not per-branch GitHub Actions); CI builds remain GitHub Actions + PlatformIO + R2 with ingest callbacks.
|
||||
- Added an in-browser ESP flasher using esptool-js and Web Serial, consuming the same `.tar.gz` bundle as downloads.
|
||||
- Removed the plugin marketplace surface and froze `public/registry.json` to an empty object for this pivot.
|
||||
|
||||
## [0.4.0] - 2025-12-10
|
||||
|
||||
### Minor
|
||||
|
||||
- Added vendors.json mapping vendors to models and platformio targets
|
||||
- Refactored targets.ts to use vendors.json and architecture-hierarchy.json instead of hardware-list.json
|
||||
- Updated architecture-hierarchy.json generation to use actual PlatformIO environment names (removed normalization)
|
||||
- Removed normalization from lib/utils.ts since all inputs now use standardized PlatformIO names
|
||||
- Refactored build routes from dynamic parameterized routes to query string parameters for Vike SSG compatibility
|
||||
- Refactored Builder component into smaller reusable components (BuilderHeader, TargetSelector, VersionSelector, ModuleConfig, PluginConfig, BuildActions)
|
||||
- Extracted target selection and plugin compatibility logic into reusable hooks (useTargetSelection, usePluginCompatibility)
|
||||
|
||||
### Patch
|
||||
|
||||
- Fix Convex server functions being imported in browser by moving ArtifactType enum to client-safe location
|
||||
- Fix nested anchor tag hydration error in PluginCard component by converting nested links to buttons when parent is a link
|
||||
|
||||
## [0.3.0] - 2025-12-10
|
||||
|
||||
### Minor
|
||||
|
||||
- Added footer with links to legal pages (License, Privacy Policy, Terms of Service)
|
||||
- Added licensing notice page explaining GPLv3 licensing for generated projects
|
||||
- Added privacy policy page detailing data collection and usage
|
||||
- Added terms of service page with usage terms and disclaimers
|
||||
|
||||
### Patch
|
||||
|
||||
- Fix prerendering on dynamic routes
|
||||
|
||||
## [0.2.0] - 2025-12-10
|
||||
|
||||
### Minor
|
||||
|
||||
- Switched OAuth authentication provider from Google to GitHub
|
||||
- Integrated Giscus comments into build pages for discussion threads per build configuration
|
||||
|
||||
### Patch
|
||||
|
||||
- Made build hash label clickable in BuildProgress component to navigate to build detail page
|
||||
|
||||
## [0.1.0] - 2025-12-10
|
||||
|
||||
Initial release
|
||||
|
||||
[Unreleased]: https://github.com/MeshEnvy/mesh-forge/compare/v0.4.0...HEAD
|
||||
[0.4.0]: https://github.com/MeshEnvy/mesh-forge/releases/tag/v0.4.0
|
||||
[0.3.0]: https://github.com/MeshEnvy/mesh-forge/releases/tag/v0.3.0
|
||||
[0.2.0]: https://github.com/MeshEnvy/mesh-forge/releases/tag/v0.2.0
|
||||
[0.1.0]: https://github.com/MeshEnvy/mesh-forge/releases/tag/v0.1.0
|
||||
+19
-15
@@ -243,8 +243,12 @@ export default function RepoPage() {
|
||||
return (
|
||||
<div className="max-w-6xl mx-auto px-6 py-10 text-slate-200">
|
||||
<section className="rounded-2xl border border-slate-700/90 bg-slate-950/90 p-6 md:p-8 shadow-xl shadow-black/30">
|
||||
<div className="grid grid-cols-1 gap-8 lg:grid-cols-[minmax(0,1fr)_17.5rem] lg:gap-10 items-start">
|
||||
<div className="min-w-0 space-y-5 order-1">
|
||||
<div
|
||||
className="grid grid-cols-1 gap-8 lg:grid-cols-[minmax(0,1fr)_17.5rem] lg:gap-10 items-start
|
||||
[grid-template-areas:'repo-main''repo-aside''repo-readme']
|
||||
lg:[grid-template-areas:'repo-main_repo-aside''repo-readme_repo-aside']"
|
||||
>
|
||||
<div className="min-w-0 space-y-5 [grid-area:repo-main]">
|
||||
<div className="flex flex-nowrap items-end gap-2 overflow-x-auto border-b border-slate-800 pb-3 [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden">
|
||||
<ComboboxField
|
||||
label="Branch"
|
||||
@@ -401,21 +405,9 @@ export default function RepoPage() {
|
||||
/>
|
||||
) : null}
|
||||
</div>
|
||||
|
||||
<div className="mt-8 prose prose-invert prose-sm max-w-none prose-hr:my-6">
|
||||
{!effectiveRef ? (
|
||||
<p className="text-slate-500 not-prose text-sm">Select a branch to load the README.</p>
|
||||
) : readmeMd === null ? (
|
||||
<p className="text-slate-500 not-prose">Loading…</p>
|
||||
) : (
|
||||
<ReactMarkdown remarkPlugins={[remarkGfm]} rehypePlugins={[rehypeRaw, rehypeSanitize]}>
|
||||
{readmeMd || '*No README.*'}
|
||||
</ReactMarkdown>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<aside className="order-2 border-b border-slate-800 pb-8 lg:border-b-0 lg:border-l lg:border-slate-800 lg:pb-0 lg:pl-8 space-y-4">
|
||||
<aside className="[grid-area:repo-aside] border-b border-slate-800 pb-8 lg:border-b-0 lg:border-l lg:border-slate-800 lg:pb-0 lg:pl-8 space-y-4">
|
||||
<h2 className="text-xs font-semibold text-slate-500 uppercase tracking-wide">About</h2>
|
||||
<div>
|
||||
<p className="text-xs text-slate-500 mb-1">{owner}</p>
|
||||
@@ -481,6 +473,18 @@ export default function RepoPage() {
|
||||
</Button>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<div className="[grid-area:repo-readme] prose prose-invert prose-sm max-w-none prose-hr:my-6">
|
||||
{!effectiveRef ? (
|
||||
<p className="text-slate-500 not-prose text-sm">Select a branch to load the README.</p>
|
||||
) : readmeMd === null ? (
|
||||
<p className="text-slate-500 not-prose">Loading…</p>
|
||||
) : (
|
||||
<ReactMarkdown remarkPlugins={[remarkGfm]} rehypePlugins={[rehypeRaw, rehypeSanitize]}>
|
||||
{readmeMd || '*No README.*'}
|
||||
</ReactMarkdown>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user