Skip to content

Dev#126

Merged
koishi510 merged 52 commits into
mainfrom
dev
Mar 7, 2026
Merged

Dev#126
koishi510 merged 52 commits into
mainfrom
dev

Conversation

@koishi510
Copy link
Copy Markdown
Owner

Related Issue

Summary

Change Type

  • New Feature (feat)
  • Bug Fix (fix)
  • Refactoring (refactor)
  • Documentation (docs)
  • Dependency / Configuration (chore)

Self-Check Checklist

Run make check to execute all checks at once.

Backend (Go):

  • go build ./... passes
  • go vet ./... passes
  • gofmt produces no diff
  • golangci-lint run passes (or no new issues)

Frontend (Vue):

  • npm run lint passes
  • npm run typecheck passes
  • npm run build succeeds

General:

  • Removed all temporary debug output
  • No sensitive data in the code
  • CI checks pass

Test Steps

  1. Pull branch and install dependencies:
    make install
  2. Start the application:
    make dev-backend    # Terminal 1
    make dev-frontend   # Terminal 2
  3. Verification steps:
    • ...

koishi510 and others added 30 commits March 7, 2026 15:22
Decompose the 1200-line single-file index.html into a proper Vue 3 project
with component hierarchy, composables, typed constants, and global styles.
Convert render-sand.js to TypeScript as well.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Move all runtime assets into src/assets/, remove redundant @assets alias
(pointed to root assets/ outside src), fix sprite imports to use @/assets,
and move render-sand.ts tooling script to scripts/.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Decompose the 1200-line single-file index.html into a proper Vue 3 project
with component hierarchy, composables, typed constants, and global styles.
Convert render-sand.js to TypeScript as well.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Move all runtime assets into src/assets/, remove redundant @assets alias
(pointed to root assets/ outside src), fix sprite imports to use @/assets,
and move render-sand.ts tooling script to scripts/.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Standalone admin SPA (Alpine.js + Tailwind CDN) at /admin with user
  management, dashboard stats, env config editor, and user deletion
- Apple liquid glass overlay panels for auth, chat, community, memory,
  profile, and role selection
- Post-registration role selection flow (mom/dad/family) via PATCH /auth/me/role
- JWT auth with auto-refresh, guest mode interception, Pinia stores
- API client layer for chat, community, and echo endpoints
- Fix is_guest NOT NULL constraint across all User creation points
- Fix FastAPI 422 validation error display ([object Object] → readable messages)
Replace Python/uv backend tooling with Go-based backend.new, add
PostgreSQL management targets (postgres-up/down/logs), and update
all build, lint, format, typecheck, deps, and clean targets accordingly.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add a full admin panel served as a single embedded HTML file via go:embed.
Includes dashboard stats, user CRUD (search/filter/paginate/create/edit/delete),
and runtime config management with sensitive field masking and mutex protection.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove Python CI job and pre-commit hooks (ruff, mypy, uv)
- Remove docs:/chore:/[skip ci] skip conditions from CI
- Switch frontend hooks and CI from frontend/ to frontend.new/ (Vue 3)
- Add ESLint + vue-tsc setup for frontend.new
- Run gofmt on all Go files to satisfy format check hook
- Fix lint errors in useInputHandler.ts and useParallax.ts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove old Python backend/ and Next.js frontend/ from repo
- Rename backend.new/ -> backend/, frontend.new/ -> frontend/
- Rewrite .gitignore for Go + Vue (remove all Python/Next.js entries)
- Remove root Dockerfile (old Python multi-stage build)
- Update Makefile, pre-commit hooks, CI to use backend/ and frontend/

Legacy code archived to archive-legacy-{backend,frontend}.tar.gz (gitignored).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- .dockerignore: remove Python entries, keep Go/Node/Docker relevant ignores
- .env.example: replace old Python config with Go backend variables only
- scripts/dev-setup.sh: rewrite for Go + Vue + pre-commit workflow
- Remove duplicate backend/.env.example

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
koishi510 and others added 22 commits March 7, 2026 15:22
- Replace hardcoded localhost:8000 in apiClient.ts and auth.ts with
  import.meta.env.VITE_API_BASE_URL (falls back to localhost:8000)
- Add VITE_API_BASE_URL to root .env.example
- Remove old frontend/.env.local (Next.js leftover)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update .env.example comments to English and rewrite all documentation
files to reflect the current Go backend + Vue 3 frontend architecture.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Auto-create database user and database, interactively prompt for all
environment variables with sensible defaults, and auto-generate JWT secret.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add missing API endpoints (comments, collections, hot posts, tags, delete/update) to community.ts and rewrite CommunityPanel.vue with full question detail fetch, question/answer likes, bookmarks, nested comments, pagination, tag selection in compose, and hot posts tab.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Add ChatProfile type and getChatProfile() to chat.ts. Rewrite ChatPanel.vue with session_id for conversation continuity, module-level message persistence across panel open/close, visual effects from visual_metadata (5 animations + 7 color tones), memory update toast, and personalized greeting from companion profile.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Add || true to the ask() function to prevent set -e from treating
a non-empty user input as a failure.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Multi-stage build combining frontend (Nginx) and backend (Go) into a
single image. docker-compose runs app + postgres containers.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The shell environment had OPENAI_BASE_URL set to a different endpoint,
which godotenv.Load() would not override. Switched to Overload() so
.env is the source of truth. Also replaced go-openai library with a
raw HTTP client that supports Qwen3's enable_thinking field.
New module provides identity tags (music/sound/literature/memory) and
AI-generated memoirs using Qwen3. Memoir covers use SVG gradient data
URIs since ModelScope lacks text-to-image models. Includes full CRUD
for tags, memoir generation/listing/rating, all wired with auth.
Backend was not reading the root .env file because godotenv.Overload()
only looks in the current directory (backend/). Added loading of ../.env
so the project root config is picked up. Also migrated default LLM model
from Qwen2.5-72B-Instruct (delisted from ModelScope) to Qwen3-235B-A22B.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Allow editing username, nickname, email, and role (妈妈/爸爸/家人)
- Add avatar file upload with 2MB size limit and format validation
- Fix uniqueness checks to exclude current user when updating profile
- Proxy /uploads through Vite dev server to backend
- Use default avatar.png as fallback, scale custom avatars to fit frame

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace mom/dad/family roles with 溯源者(mom)/守护者(dad) identity system
- 溯源者 generates 8-char shell code, 守护者 enters it to bind
- Binding locks both partners' roles; unbinding unlocks them
- Car page avatar frames show both partners' avatars
- Fetch profile on car page open so avatars display immediately
- Memoirs are shared between bound partners
- Fix getErrorMessage to handle Gin's {"error":"..."} format
- Remove role select "不可更改" warning since roles are now changeable

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Make admin a separate boolean flag instead of a role value
- Add display tag system (certified > admin > AI > base role)
- Show avatars and display tags throughout community panel
- Replace emoji like/collection icons with flat symbols
- Add like and reply to all comments via unified fixed bottom bar
- Flatten comment display to chronological order with @username
- Fix answer not refreshing after posting
- Fix collection click on question cards

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Explicitly discard error return values from file.Close() and
os.Remove() to satisfy golangci-lint errcheck.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add .claude, .omc/, CLAUDE.md, PROGRESS.md, SKILL.md to .gitignore
and remove them from git tracking.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@koishi510 koishi510 requested a review from 4rthurCai as a code owner March 7, 2026 07:24
@koishi510 koishi510 merged commit 5e77d45 into main Mar 7, 2026
8 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants