Move release manifest into lib/ to fix dependency direction
Architecture review (hai-architecture / APoSD) of the shipped redesign found one structural smell: the shared lib/ layer imported the release manifest from components/ — data in the presentation layer, dependency pointing the wrong way. - move components/release-links.generated.ts -> lib/; update the four importers and the README. lib/ no longer imports from components/. - downloads.ts: reuse PlatformDownload["id"] instead of re-declaring the union. No behavior change (download counter + tracked hrefs identical); build + e2e 12/12.
This commit is contained in:
1 parent
74e2d3fed6
commit
d833ff4776
6 files changed
+6
-6
No files matched your search
+1
-1
@@ -6,7 +6,7 @@ Next.js landing page for the AgentCompany desktop release lane.
|
|||||||
|
|
||||||
| Surface | Source |
|
| Surface | Source |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Download cards | `landing/components/release-links.generated.ts` |
|
| Download cards | `landing/lib/release-links.generated.ts` |
|
||||||
| Platform FAQ | `landing/lib/platform-support.ts` |
|
| Platform FAQ | `landing/lib/platform-support.ts` |
|
||||||
| Hero, How It Works, software JSON-LD features | `landing/lib/product-narrative.ts` |
|
| Hero, How It Works, software JSON-LD features | `landing/lib/product-narrative.ts` |
|
||||||
| Runtime download URLs | generated from `scripts/generate-landing-release-links.mjs` |
|
| Runtime download URLs | generated from `scripts/generate-landing-release-links.mjs` |
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { Download } from "reicon-react/icons/Download";
|
|||||||
import { Container } from "../ui/container";
|
import { Container } from "../ui/container";
|
||||||
import { Reveal } from "../ui/reveal";
|
import { Reveal } from "../ui/reveal";
|
||||||
import { SectionHeading } from "../ui/section-heading";
|
import { SectionHeading } from "../ui/section-heading";
|
||||||
import { platformDownloads, releaseVersion } from "../release-links.generated";
|
import { platformDownloads, releaseVersion } from "../../lib/release-links.generated";
|
||||||
import { DOWNLOAD_COUNT_SEED, getTrackedDownloadHref } from "../../lib/downloads";
|
import { DOWNLOAD_COUNT_SEED, getTrackedDownloadHref } from "../../lib/downloads";
|
||||||
|
|
||||||
export function DownloadSection() {
|
export function DownloadSection() {
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { platformDownloads, type PlatformDownloadAsset } from "../components/release-links.generated";
|
import { platformDownloads, type PlatformDownload, type PlatformDownloadAsset } from "./release-links.generated";
|
||||||
|
|
||||||
export const DOWNLOAD_COUNT_SEED = 13674;
|
export const DOWNLOAD_COUNT_SEED = 13674;
|
||||||
export const DOWNLOAD_DEDUP_WINDOW_HOURS = 24;
|
export const DOWNLOAD_DEDUP_WINDOW_HOURS = 24;
|
||||||
export const DOWNLOAD_DEDUP_WINDOW_MS = DOWNLOAD_DEDUP_WINDOW_HOURS * 60 * 60 * 1000;
|
export const DOWNLOAD_DEDUP_WINDOW_MS = DOWNLOAD_DEDUP_WINDOW_HOURS * 60 * 60 * 1000;
|
||||||
|
|
||||||
export type ReleaseDownloadAsset = PlatformDownloadAsset & {
|
export type ReleaseDownloadAsset = PlatformDownloadAsset & {
|
||||||
platformId: "macos" | "windows" | "linux";
|
platformId: PlatformDownload["id"];
|
||||||
platformTitle: string;
|
platformTitle: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import {
|
|||||||
type PlatformDownload,
|
type PlatformDownload,
|
||||||
type PlatformDownloadAsset,
|
type PlatformDownloadAsset,
|
||||||
type ReleaseArchitecture,
|
type ReleaseArchitecture,
|
||||||
} from "../components/release-links.generated";
|
} from "./release-links.generated";
|
||||||
|
|
||||||
const ARCHITECTURE_ORDER: ReleaseArchitecture[] = ["arm64", "x64", "x86"];
|
const ARCHITECTURE_ORDER: ReleaseArchitecture[] = ["arm64", "x64", "x86"];
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { releaseVersion } from "../components/release-links.generated";
|
import { releaseVersion } from "./release-links.generated";
|
||||||
|
|
||||||
export const landingHeroNarrative = {
|
export const landingHeroNarrative = {
|
||||||
eyebrow: "AgentCompany Desktop",
|
eyebrow: "AgentCompany Desktop",
|
||||||
|
|||||||
File renamed without changes.
Reference in new issue
Block a user