From 382d43054940f73d3bb8853802c323b40ab96477 Mon Sep 17 00:00:00 2001
From: dongjiang
Date: Mon, 3 Aug 2026 15:20:33 +0800
Subject: [PATCH] feat(events): add new hackathon event with bilingual
descriptions
- Add new online hackathon "Driving Real Hardware with Astron Agent"
(2026-07-31) featuring Astron Agent + Tuya T5 hardware integration
- Add `descriptionEn` field to `Event` interface, provide English
descriptions for all 12 events
- Events page and search index support bilingual description switching
via existing `data-lang-zh` / `data-lang-en` language toggle
- Update CHANGELOG.md with new event and dependency fix notes
Signed-off-by: dongjiang
---
CHANGELOG.md | 6 ++++++
src/data/events.ts | 25 +++++++++++++++++++++++++
src/pages/events.astro | 8 +++++++-
src/pages/search-index.json.ts | 1 +
4 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cf4f90c..f130228 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,10 +4,16 @@ All notable changes to this project will be documented in this file.
## [Unreleased]
+### Added
+
+- **New Event: Driving Real Hardware with Astron Agent (2026-07-31)**: Online hackathon exploring how to connect user intent with real devices using Astron Agent — featuring Tuya T5 hardware walkthrough (reading sensor data, conditional logic, screen prompts) with a Mock API path for participants without dev boards
+- **Bilingual Event Descriptions**: Added `descriptionEn` field to the `Event` interface and English descriptions for all 12 events. Events page (`events.astro`) and search index (`search-index.json.ts`) now switch between Chinese and English descriptions via the existing `data-lang-zh` / `data-lang-en` language toggle
+
### Fixed
- **Security: 10 Dependency Vulnerabilities Resolved (1 critical, 6 high, 3 moderate)**: `npm audit` reduced from 10 vulnerabilities to 0 — fixed `tar` PAX numeric path type confusion (critical), `astro` reflected XSS via unescaped View Transition animation properties / spread attribute names / `transition:*` directive values (GHSA-4g3v-8h47-v7g6, GHSA-f48w-9m4c-m7f5, GHSA-7pw4-f3q4-r2p2), `sharp` inherited libvips CVE-2026-33327 / CVE-2026-33328 / CVE-2026-35590 / CVE-2026-35591, `svgo` removeScripts executable script bypass + DOCTYPE Billion Laughs DoS (GHSA-2p49-hgcm-8545, GHSA-xpqw-6gx7-v673), `brace-expansion` exponential-time `{} ` group expansion DoS (GHSA-3jxr-9vmj-r5cp), `fast-uri` host confusion via literal backslash authority delimiter and failed IDN canonicalization (GHSA-v2hh-gcrm-f6hx, GHSA-4c8g-83qw-93j6)
- **Production Build Missing Responsive Layout**: `astro-compress` v2.4.1 CSS minifier silently drops all Tailwind CSS v4 responsive breakpoint queries (`@media (width>=48rem)` etc.) because its CSS parser doesn't support Media Queries Level 4 range syntax — the production build on Vercel rendered every page as mobile-only layout. Disabled `CSS: true` in `astro-compress` config to preserve responsive styles; CSS files grow from ~124 KB to ~142 KB uncompressed
+- **CI Build Failure After Astro 7.1.6 Upgrade**: `astro.config.ts` imported `unified` from `@astrojs/markdown-remark`, a transitive dependency nested under `@astrojs/mdx/node_modules/` that npm doesn't hoist to top-level `node_modules` on fresh installs (CI & Vercel). Added `@astrojs/markdown-remark` as a direct dependency to fix module resolution
### Changed
diff --git a/src/data/events.ts b/src/data/events.ts
index e30a686..ff9914d 100644
--- a/src/data/events.ts
+++ b/src/data/events.ts
@@ -9,17 +9,31 @@ export interface Event {
type: 'conference' | 'meetup' | 'hackathon' | 'workshop' | 'webinar';
status?: 'upcoming' | 'ongoing' | 'past';
description: string;
+ descriptionEn: string;
location: string;
link?: string;
}
export const events: Event[] = [
+ {
+ title: 'Driving Real Hardware with Astron Agent',
+ titleZh: '用 Astron Agent 驱动真实硬件',
+ date: '2026-07-31',
+ type: 'hackathon',
+ description:
+ '带大家探索如何用 Agent 连接用户意图与真实设备,完成从产品想法到可演示硬件 Demo 的完整闭环。结合 Tuya T5 硬件场景,演示读取传感器数据、条件判断与屏幕提示等实体动作,手边没有开发板也可通过 Mock API 验证工作流。',
+ descriptionEn:
+ 'Explore how to connect user intent with real devices using Astron Agent — from product idea to a working hardware demo. Featuring a Tuya T5 walkthrough: reading sensor data, conditional logic, and driving screen prompts. No dev board? Verify the workflow first with Mock API, then switch to real hardware.',
+ location: 'Online',
+ link: 'https://mp.weixin.qq.com/s/cO_c12PBRisePxSMQLuiIA',
+ },
{
title: '2nd AI Innovation Exchange Conference · Tianjin',
titleZh: '智汇津城·破界新生——第 2 届人工智能创新发展交流会',
date: '2026-07-11',
type: 'meetup',
description: '技术分享:企业级 Agentic AI 智能体应用架构与知识工程实践',
+ descriptionEn: 'Tech sharing: enterprise Agentic AI agent architecture and knowledge engineering practices',
location: 'Tianjin, China',
link: 'https://mp.weixin.qq.com/s/N7qphWxzAMByttJ9OcxWBQ',
},
@@ -29,6 +43,8 @@ export const events: Event[] = [
date: '2026-06-27',
type: 'meetup',
description: '技术分享:基于 Astron-Agent 的智能代理架构与知识工程实践',
+ descriptionEn:
+ 'Tech sharing: Astron-Agent based intelligent agent architecture and knowledge engineering practices',
location: 'Shanghai, China',
link: 'https://mp.weixin.qq.com/s/ZgygUsKPZQGeL8cB1x2D_g',
},
@@ -38,6 +54,7 @@ export const events: Event[] = [
date: '2025-10-24',
type: 'hackathon',
description: '年度 AI 开发者盛会,基于 Astron Agent 平台的创新挑战赛',
+ descriptionEn: 'Annual AI developer festival — innovation challenge based on the Astron Agent platform',
location: 'Hefei, China',
link: 'https://luma.com/9zmbc6xb',
},
@@ -47,6 +64,7 @@ export const events: Event[] = [
date: '2025-09-20',
type: 'meetup',
description: '社区线下交流,分享 Astron Agent 最佳实践与企业落地案例',
+ descriptionEn: 'Community meetup sharing Astron Agent best practices and enterprise adoption stories',
location: 'Zhengzhou, China',
link: 'https://github.com/iflytek/astron-agent/discussions/672',
},
@@ -56,6 +74,7 @@ export const events: Event[] = [
date: '2025-06-15',
type: 'workshop',
description: '走进校园,为高校学子介绍 AI Agent 开发技术与开源生态',
+ descriptionEn: 'Campus outreach introducing AI Agent development and open-source ecosystem to university students',
location: 'Hangzhou, China',
link: 'https://mp.weixin.qq.com/s/oim_Z0ckgpFwf5jOskoJuA',
},
@@ -65,6 +84,7 @@ export const events: Event[] = [
date: '2025-05-18',
type: 'meetup',
description: '聚焦 Agentic AI 与 RPA 的融合,探讨企业自动化新范式',
+ descriptionEn: 'Focusing on the convergence of Agentic AI and RPA — exploring new enterprise automation paradigms',
location: 'Qingdao, China',
link: 'https://github.com/iflytek/astron-agent/discussions/740',
},
@@ -74,6 +94,7 @@ export const events: Event[] = [
date: '2025-04-10',
type: 'workshop',
description: '系统化的 Astron Agent 开发培训,从入门到实战',
+ descriptionEn: 'Structured Astron Agent developer training — from onboarding to hands-on practice',
location: 'Online',
link: 'https://www.aidaxue.com/astronCamp',
},
@@ -83,6 +104,7 @@ export const events: Event[] = [
date: '2025-03-22',
type: 'meetup',
description: '技术分享:AI Agent 在企业中的落地实践',
+ descriptionEn: 'Tech sharing: AI Agent deployment practices in enterprise environments',
location: 'Chongqing, China',
},
{
@@ -91,6 +113,7 @@ export const events: Event[] = [
date: '2026-02-25',
type: 'conference',
description: '在世界移动通信大会上展示企业级 AI Agent 工作流平台',
+ descriptionEn: 'Showcasing enterprise AI Agent workflow platform at Mobile World Congress Barcelona',
location: 'Barcelona, Spain',
link: 'https://www.iflytek.com/en/news-events/mwc2026.html',
},
@@ -100,6 +123,7 @@ export const events: Event[] = [
date: '2026-03-15',
type: 'meetup',
description: '社区线下交流,聚焦 RPA 与 Agent 的深度集成',
+ descriptionEn: 'Community meetup focusing on deep integration of RPA and Agent',
location: 'Hefei, China',
},
{
@@ -108,6 +132,7 @@ export const events: Event[] = [
date: '2026-05-20',
type: 'hackathon',
description: '面向工业场景的 AI Agent 创新挑战赛',
+ descriptionEn: 'AI Agent innovation challenge for industrial scenarios',
location: 'Online + Hefei',
link: 'https://awesome-astron-workflow.dev/activities/astron-industrial-intelligence-hackathon',
},
diff --git a/src/pages/events.astro b/src/pages/events.astro
index 97df25e..783484c 100644
--- a/src/pages/events.astro
+++ b/src/pages/events.astro
@@ -171,7 +171,13 @@ const newsPosts = posts
>
{event.title}
- {event.description}
+
+ {event.description}
+
diff --git a/src/pages/search-index.json.ts b/src/pages/search-index.json.ts
index 8164ff9..c4eb411 100644
--- a/src/pages/search-index.json.ts
+++ b/src/pages/search-index.json.ts
@@ -126,6 +126,7 @@ export async function GET() {
titleEn: event.title,
url: event.link || '/events',
excerpt: event.description,
+ excerptEn: event.descriptionEn,
tags: [event.type],
});
}