Skip to content

Dev#108

Merged
koishi510 merged 50 commits into
mainfrom
dev
Mar 4, 2026
Merged

Dev#108
koishi510 merged 50 commits into
mainfrom
dev

Conversation

@koishi510
Copy link
Copy Markdown
Owner

Related Issue

Summary

Change Type

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

Self-Check Checklist

Backend:

  • Code runs correctly in local environment
  • Ran uv run ruff format . and uv run ruff check . --fix
  • Ran uv run mypy app/
  • (If dependencies changed) Ran uv lock && uv export > requirements.txt and committed both files

Frontend:

  • (If frontend changed) Ran npm run lint in frontend/
  • (If frontend changed) Ran npm run build in frontend/ without errors

General:

  • Removed all temporary debug output (print/console.log)
  • No sensitive data (API keys, credentials) in the code

Test Steps

  1. Pull branch and sync environment:
    uv sync
    cd frontend && npm install && cd ..
  2. Run the application:
    # Terminal 1 - Backend
    uv run uvicorn app.main:app --reload --port 8000
    # Terminal 2 - Frontend
    cd frontend && npm run dev
  3. Verification steps:
    • ...

koishi510 and others added 30 commits March 5, 2026 02:26
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>
koishi510 and others added 20 commits March 5, 2026 02:26
- .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 user.ts API module (getUserProfile, updateUserProfile, getMyQuestions, getMyAnswers, changePassword). Rewrite ProfilePanel.vue with inline nickname editing, 4-stat grid, tabbed my-questions/my-answers lists with pagination and status badges, change password form, and remove non-existent echo API references.

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>
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.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove coach_issue.yml (Recovery Coach removed)
- Update component options in bug_report and feature_request
- Update AI issue template: remove TTS/Coach, fix env var names
- Fix repo URL in config.yml
- Switch dependabot from pip to gomod

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…install

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…in permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Replace Math.random() with crypto.getRandomValues() to address
code scanning alert about insecure random number generation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@koishi510 koishi510 requested a review from 4rthurCai as a code owner March 4, 2026 18:27
@koishi510 koishi510 merged commit 6313e7e into main Mar 4, 2026
11 of 12 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