Conversation
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>
- 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related Issue
Summary
Change Type
Self-Check Checklist
Backend (Go):
go build ./...passesgo vet ./...passesgofmtproduces no diffgolangci-lint runpasses (or no new issues)Frontend (Vue):
npm run lintpassesnpm run typecheckpassesnpm run buildsucceedsGeneral:
Test Steps