Compare commits
1
Commits
a6f094614e
..
dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f473c0a0f |
No files matched your search
+2
-2
@@ -4,7 +4,6 @@
|
|||||||
# Python virtual environment
|
# Python virtual environment
|
||||||
/.venv/
|
/.venv/
|
||||||
.agents/
|
.agents/
|
||||||
.claude/
|
|
||||||
|
|
||||||
# Binary zip archives
|
# Binary zip archives
|
||||||
*.zip
|
*.zip
|
||||||
@@ -27,4 +26,5 @@
|
|||||||
CURRENT_JOB.md
|
CURRENT_JOB.md
|
||||||
# <<< MAM managed block <<<
|
# <<< MAM managed block <<<
|
||||||
.env
|
.env
|
||||||
docker-compose.yaml
|
docker-compose.yaml
|
||||||
|
.claude
|
||||||
+1
-1
@@ -9,7 +9,7 @@ This module implements the standalone backend REST API server, SQLite database s
|
|||||||
```
|
```
|
||||||
+-------------------------------------------------------------+
|
+-------------------------------------------------------------+
|
||||||
| SQLite (anl.db) |
|
| SQLite (anl.db) |
|
||||||
| 11 Relational Tables (fProjects, Members, Pubs, Lectures) |
|
| 11 Relational Tables (Projects, Members, Pubs, Lectures) |
|
||||||
+-------------------------------------------------------------+
|
+-------------------------------------------------------------+
|
||||||
▲ ▲
|
▲ ▲
|
||||||
│ (cmd/seed) │ (SQL query)
|
│ (cmd/seed) │ (SQL query)
|
||||||
|
|||||||
+5
-7
@@ -8,7 +8,6 @@ services:
|
|||||||
args:
|
args:
|
||||||
- NEXT_PUBLIC_API_BASE_URL=${NEXT_PUBLIC_API_BASE_URL:-}
|
- NEXT_PUBLIC_API_BASE_URL=${NEXT_PUBLIC_API_BASE_URL:-}
|
||||||
container_name: anl-app
|
container_name: anl-app
|
||||||
user: "${UID:-1000}:${GID:-1000}"
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- "${APP_PORT:-8080}:8080"
|
- "${APP_PORT:-8080}:8080"
|
||||||
@@ -21,15 +20,14 @@ services:
|
|||||||
- AUTO_MIGRATE=true
|
- AUTO_MIGRATE=true
|
||||||
- ADMIN_TOKEN=${ADMIN_TOKEN:?ADMIN_TOKEN must be set -- see .env.example}
|
- ADMIN_TOKEN=${ADMIN_TOKEN:?ADMIN_TOKEN must be set -- see .env.example}
|
||||||
volumes:
|
volumes:
|
||||||
- ./volumes/data:/app/data
|
- anl-db-data:/app/data
|
||||||
# - anl-db-data:/app/data
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: [ "CMD", "curl", "-f", "http://localhost:8080/api/v1/health" ]
|
test: ["CMD", "curl", "-f", "http://localhost:8080/api/v1/health"]
|
||||||
interval: 15s
|
interval: 15s
|
||||||
timeout: 3s
|
timeout: 3s
|
||||||
retries: 3
|
retries: 3
|
||||||
start_period: 5s
|
start_period: 5s
|
||||||
|
|
||||||
# volumes:
|
volumes:
|
||||||
# anl-db-data:
|
anl-db-data:
|
||||||
# name: anl-sqlite-storage
|
name: anl-sqlite-storage
|
||||||
@@ -74,6 +74,15 @@ export default function MembersPage() {
|
|||||||
>
|
>
|
||||||
sjkoh@knu.ac.kr
|
sjkoh@knu.ac.kr
|
||||||
</a>
|
</a>
|
||||||
|
<span className="text-ink-mute">|</span>
|
||||||
|
<a
|
||||||
|
href="https://github.com/sjkoh12"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="text-ink hover:text-cobalt-dark hover:underline"
|
||||||
|
>
|
||||||
|
GitHub Profile ↗
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="lg:col-span-4 flex justify-center items-center">
|
<div className="lg:col-span-4 flex justify-center items-center">
|
||||||
|
|||||||
File renamed without changes.
@@ -134,7 +134,7 @@ export default function Header() {
|
|||||||
{/* Brand logo */}
|
{/* Brand logo */}
|
||||||
<Link
|
<Link
|
||||||
href="/"
|
href="/"
|
||||||
className="group flex items-center gap-3 min-w-0 nav:shrink-0"
|
className="group flex items-center gap-3 min-w-0 desktop:shrink-0"
|
||||||
onClick={() => setOpen(false)}
|
onClick={() => setOpen(false)}
|
||||||
>
|
>
|
||||||
<div className="relative flex items-center justify-center w-9 h-9 sm:w-10 sm:h-10 rounded-xl overflow-hidden shadow-sm border border-line group-hover:border-cobalt/40 group-hover:shadow-md group-hover:scale-105 transition-all duration-300 shrink-0">
|
<div className="relative flex items-center justify-center w-9 h-9 sm:w-10 sm:h-10 rounded-xl overflow-hidden shadow-sm border border-line group-hover:border-cobalt/40 group-hover:shadow-md group-hover:scale-105 transition-all duration-300 shrink-0">
|
||||||
@@ -162,16 +162,18 @@ export default function Header() {
|
|||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Stacked wordmark — the cobalt initials spell out ANL */}
|
<div className="flex flex-col leading-none min-w-0">
|
||||||
<div className="font-sans flex flex-col min-w-0 text-[0.8rem] sm:text-[0.875rem] font-semibold leading-[1.15] tracking-tight text-ink transition-colors group-hover:text-cobalt-dark">
|
<span className="headline-ko text-lg text-ink sm:text-xl font-bold tracking-tight group-hover:text-cobalt-dark transition-colors">
|
||||||
<span className="whitespace-nowrap"><span className="text-cobalt">A</span>I Agent</span>
|
ANL
|
||||||
<span className="whitespace-nowrap"><span className="text-cobalt">N</span>etworking</span>
|
</span>
|
||||||
<span className="whitespace-nowrap"><span className="text-cobalt">L</span>aboratory</span>
|
<span className="kicker mt-1 transition-colors group-hover:text-cobalt-dark truncate">
|
||||||
|
AI Agent Networking LAB
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
|
|
||||||
{/* Desktop nav — small caps, wide tracking (visible at >= 1000px; compact spacing below 1240px) */}
|
{/* Desktop nav — small caps, wide tracking (visible at >= 1240px) */}
|
||||||
<div className="hidden items-center gap-3 nav:flex desktop:gap-4">
|
<div className="hidden items-center gap-4 desktop:flex">
|
||||||
<nav className="flex items-center gap-2" aria-label="Main Navigation">
|
<nav className="flex items-center gap-2" aria-label="Main Navigation">
|
||||||
{navItems.map((item) => {
|
{navItems.map((item) => {
|
||||||
const active = isActive(item.href);
|
const active = isActive(item.href);
|
||||||
@@ -180,7 +182,7 @@ export default function Header() {
|
|||||||
key={item.href}
|
key={item.href}
|
||||||
href={item.href}
|
href={item.href}
|
||||||
aria-current={active ? "page" : undefined}
|
aria-current={active ? "page" : undefined}
|
||||||
className={`group relative flex items-baseline gap-1.5 text-[0.78rem] font-semibold uppercase tracking-[0.1em] desktop:tracking-[0.18em] transition-all px-2 desktop:px-3 py-1.5 rounded-md ${
|
className={`group relative flex items-baseline gap-1.5 text-[0.78rem] font-semibold uppercase tracking-[0.18em] transition-all px-3 py-1.5 rounded-md ${
|
||||||
active
|
active
|
||||||
? "bg-cobalt-dark text-white dark:text-ivory shadow-sm font-bold"
|
? "bg-cobalt-dark text-white dark:text-ivory shadow-sm font-bold"
|
||||||
: "text-ink hover:text-cobalt-dark hover:bg-paper/60"
|
: "text-ink hover:text-cobalt-dark hover:bg-paper/60"
|
||||||
@@ -202,8 +204,8 @@ export default function Header() {
|
|||||||
<ThemeToggle />
|
<ThemeToggle />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Mobile controls (visible under 1000px) */}
|
{/* Mobile controls (visible under 1240px) */}
|
||||||
<div className="flex items-center gap-2 nav:hidden">
|
<div className="flex items-center gap-2 desktop:hidden">
|
||||||
<ThemeToggle />
|
<ThemeToggle />
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
@@ -228,7 +230,7 @@ export default function Header() {
|
|||||||
{open && (
|
{open && (
|
||||||
<nav
|
<nav
|
||||||
id="mobile-menu"
|
id="mobile-menu"
|
||||||
className="mobile-menu-panel border-t border-ink bg-ivory nav:hidden"
|
className="mobile-menu-panel border-t border-ink bg-ivory desktop:hidden"
|
||||||
aria-label="Mobile Navigation"
|
aria-label="Mobile Navigation"
|
||||||
>
|
>
|
||||||
<ul className="container-content flex flex-col py-2">
|
<ul className="container-content flex flex-col py-2">
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 389 KiB After Width: | Height: | Size: 301 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 301 KiB |
@@ -29,8 +29,6 @@ const config: Config = {
|
|||||||
theme: {
|
theme: {
|
||||||
extend: {
|
extend: {
|
||||||
screens: {
|
screens: {
|
||||||
// Header swaps the mobile menu for the inline nav (compact spacing until `desktop`).
|
|
||||||
nav: "1000px",
|
|
||||||
desktop: "1240px",
|
desktop: "1240px",
|
||||||
},
|
},
|
||||||
colors: {
|
colors: {
|
||||||
|
|||||||
Reference in new issue
Block a user