You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+22-1Lines changed: 22 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,19 +2,27 @@
2
2
3
3
All notable changes to this project will be documented in this file.
4
4
5
-
## [Unreleased]
5
+
## [0.3.0] - 2026-07-03
6
6
7
7
### Added
8
8
9
+
-**Mobile Drawer Navigation**: Replace hamburger-expanded nav with slide-in drawer panel (`#mobile-drawer`) — tree-structured navigation with always-expanded 2-level hierarchy (section labels + child links with connector dots and trunk lines), close button, backdrop overlay with blur, ESC/backdrop/link-click to dismiss, auto-close on resize to desktop, View Transitions compatible via `astro:after-swap`. Theme toggle (`ToggleTheme`) and language toggle (`ToggleLanguage`) moved into drawer footer for mobile, hidden on desktop via `hidden md:flex` wrappers
10
+
-**Search Modal (`SearchModal.astro`)**: Global `Ctrl+K` / `⌘K` search with Fuse.js fuzzy matching across blog posts, projects, adopters, events, and static pages — lazy-loaded `/search-index.json`, results grouped by type with `<mark>` match highlighting, keyboard navigation (↑↓/Enter/Esc), bilingual support (zh/en), dark mode. `SearchButton.astro` in header triggers modal; `search-index.json.ts` endpoint aggregates all content collections at build time
11
+
-**Adopter Modal (`AdopterModal.astro`)**: Layout-level adopter detail modal — macOS/iOS-style frosted glass, URL hash routing (`#adopter-{slug}`), retry mechanism (20 attempts × 50ms) for DOM readiness, `loadAdopterData()` re-reads embedded JSON on every open/swap for multi-cycle reliability
12
+
-**Project Detail Page Icons**: `[slug].astro` now renders project icon image (`data.icon`) when available, with first-letter gradient circle fallback for projects without icons
9
13
-**New Projects — MemFlywheel & Domux**: Add MemFlywheel (file-native memory flywheel for AI Agents, category `memory-system`) and Domux (low-latency smart-home command model based on Gemma-4-E2B-it, category `llm`) to `/projects` page, project detail pages, and stats cache
10
14
-**Project Card External Links**: ProjectCard component supports `links` field (HuggingFace, ModelScope) with brand SVG icons, styled same as GitHub button, positioned next to GitHub button in card footer
-**Landscape 4-Column Layout**: Expand landscape from 3 to 4 columns (30%+26%+22%+22%) — new Column 4 adds Memory System (MemFlywheel) and LLM (Domux) sections with violet/rose theming; all ecosystem arrows proportionally repositioned
13
17
-**Tech Blog Posts**: Add 2 new tech blog posts — "MemFlywheel:给 AI Agent 装上文件原生记忆飞轮" and "Domux:150ms 内的智能家居指令理解模型", with architecture/benchmark images from GitHub repos, watermarked via `scripts/watermark-images.ts`
14
18
-**Content Schema `links` Field**: Add `links: z.array(z.string()).optional()` to project collection schema in `content.config.ts`
19
+
-**Events Data (`events.ts`)**: Extract event data to shared `src/data/events.ts` for reuse across events page and search index
15
20
16
21
### Changed
17
22
23
+
-**Header Layout Redesign**: Desktop nav keeps horizontal links; mobile nav delegates to drawer. `ToggleTheme` and `ToggleLanguage` wrapped in `hidden md:flex` divs (fixes Tailwind v4 `inline-flex` overriding `hidden`). BasicScripts mobile menu handlers cleaned up — no longer toggles `h-screen`/`bg-page`/`overflow-hidden` on header
24
+
-**Adopter Modal Moved to Layout**: Modal HTML + JS moved from `adopters.astro` (page-level) to `AdopterModal.astro` (layout-level in `Layout.astro`) — fixes View Transitions issue where page-level `is:inline` script wouldn't re-execute after navigation
25
+
-**Landscape Mobile Scaling**: Replace CSS-only `transform: scale()` with JS `scaleLandscape()` that dynamically sets wrapper height (`naturalHeight × scale`) — fixes excess scroll space caused by CSS transform not affecting layout box. Listens to `resize` and `astro:after-swap`
18
26
-**Footer Hugging Face & ModelScope Links**: Add Hugging Face (`https://huggingface.co/iFlytekOpenSource`) and ModelScope (`https://modelscope.cn/organization/iflytek`) links to footer "Related Sites" column and social icon bar (inline SVG icons via `iconHtml` field)
19
27
-**Footer `iconHtml` Support**: Extend `Footer.astro``Link` interface with `iconHtml` field to support custom inline SVG icons for brands not available in tabler icon set
20
28
-**Footer WeChat QR Modal**: Add WeChat QR code modal — clicking WeChat link in footer opens a modal with group QR code image; supports ESC key, backdrop click, and Astro View Transitions re-binding
@@ -28,6 +36,19 @@ All notable changes to this project will be documented in this file.
28
36
-**Secondary Links**: Replaced Privacy/Terms/License with Security Policy, Community Values, and CLA
29
37
-**Header Actions**: Remove GitHub button from header action bar
30
38
-**README**: Add Hugging Face and ModelScope links to the Links section
39
+
-**Code Quality**: Add `is:inline` to AdopterModal JSON `<script>` tag (silences astro(4000) hint); remove deprecated `position="right"` from `LandingLayout.astro` Header — 0 errors, 0 warnings, 0 hints
40
+
-**Gitignore**: Add `TEST_REPORT.md` to temporary files section
41
+
42
+
### Fixed
43
+
44
+
-**Search View Transitions**: `const` DOM refs became stale after page swap — changed to `let` with `refreshRefs()` + `attachElementListeners()` called in `astro:after-swap`
45
+
-**Adopter Multi-Cycle Failure**: Modal broke after multiple open/close/navigation cycles — fixed by calling `loadAdopterData()` in every `openModal()`, `syncHash()`, and `astro:after-swap` handler
46
+
-**Adopter Direct URL Hash**: Navigating to `/adopters#adopter-xxx` didn't show card when DOM wasn't ready — fixed with retry mechanism (20 attempts × 50ms)
47
+
-**Same-Page Hash Navigation**: Search results linking to same page with hash (e.g. `/adopters#adopter-agentguard`) didn't trigger `hashchange` — fixed with `e.preventDefault()` + manual `window.location.hash` assignment
48
+
-**aria-hidden Accessibility Warning**: Focused element retained inside hidden modal — fixed by calling `document.body.focus()` and `focused.blur()` before hiding
49
+
-**"博客" Nav Link**: Added `href: getBlogPermalink()` to navigation config — was missing, causing the link to render as a non-navigable element
50
+
-**Window Resize Losing Header Elements**: BasicScripts resize handler was adding `hidden` class to `#header > div > div:last-child` (the entire right-side container including search box) — removed the offending line
51
+
-**Mobile Toggle Visibility**: Desktop `ToggleTheme`/`ToggleLanguage` visible in mobile menu due to Tailwind v4 class ordering (`inline-flex` overriding `hidden`) — fixed by wrapping in `hidden md:flex` divs
0 commit comments