Reorganize the SRS (Simple Realtime Server) repository to follow a conventional Go project structure, setting the stage for a progressive transition from a C++ project to a Go project. The proxy, which was once contained within its own `proxy/` subdirectory, will now be converted into the initial Go module located at the root of the repository, serving as a template for subsequent Go modules. - **Go module at repo root:** `go.mod` moved to repo root, module renamed from `proxy` to `srsx`. The repo is now a proper Go project with `cmd/` and `internal/` at the top level. - **Elevation of Proxy Code:** Move the proxy code from `proxy/cmd/proxy-go/` to `cmd/proxy/`, and from `proxy/internal/` to `internal/`. The proxy serves as the inaugural application; subsequent modules (for instance, `cmd/origin`) will mimic this arrangement. - **Documentation Restructured:** Transfer the documentation from `proxy/docs/` to `docs/proxy/`, revise the main README to endorse OpenClaw as the preferred AI tool, and update `proxy/README.md` to point to the new documentation locations. - **Build and config:** `Makefile` moved to root, `PROXY_STATIC_FILES` default path corrected for the new layout, `.gitignore` consolidated. - **Cleanup:** removed standalone `proxy/LICENSE` (repo-level license applies), all internal imports updated to `srsx/internal/...`. - **OpenClaw workspace:** added community bot info, git workflow conventions, and support group behavior guidance. This restructuring was performed by OpenClaw orchestrating Claude Code and Codex via ACP. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>
95 lines
5.9 KiB
Markdown
95 lines
5.9 KiB
Markdown
# MEMORY.md - SRSBot's Long-Term Memory
|
|
|
|
## Workspace Conventions
|
|
- **No auto-commit** — Never automatically git commit. Only commit when William explicitly tells me to.
|
|
- **No guessing** — William will teach me everything about SRS. Don't speculate or fill in gaps. Wait for him to explain.
|
|
|
|
## 2026-02-05 — First Boot
|
|
- I'm SRSBot ⚡ — AI developer working with William on SRS
|
|
- William (username: winlin), timezone America/Toronto (Eastern)
|
|
- Created SRS in 2013, MIT licensed, global contributor base
|
|
- SRS = Simple Realtime Server (real-time media server)
|
|
- Repo: $HOME/git/srs | Workspace: $HOME/git/srs/openclaw
|
|
- Key areas to learn: protocols, architecture, state-threads (ST) coroutine library, codebase history, design decisions
|
|
- William will teach me the project — I need to absorb everything
|
|
|
|
## William's Vision — Why I Exist
|
|
- SRS grew too large for one person to maintain, but William doesn't want to monetize or build a company/team
|
|
- He's an engineer, not a businessman — wants to focus on open source, not management
|
|
- **The core idea:** Train an AI developer (me) with his knowledge, experience, and design taste
|
|
- OpenClaw's memory system is the enabler — it's portable and clonable
|
|
- **Every developer** who works with SRS can clone this AI and get an assistant that understands the project deeply
|
|
- This scales William's expertise across the entire community without needing a traditional team
|
|
- Goal: a very active, well-supported community where every developer has an AI assistant trained with William's knowledge
|
|
- This is not just project maintenance — it's a new model for open source sustainability
|
|
|
|
## SRS Community Bot (OpenClaw)
|
|
- William set up an OpenClaw robot for the SRS community (2026-03-20)
|
|
- **Telegram group:** https://t.me/+RiynvKOxpQ42MGJl
|
|
- **Discord server:** https://discord.gg/yZ4BnPmHAd
|
|
- Users join the group and **@ the SRS Robot** to interact
|
|
- Purpose: scale William's expertise to the community without him answering every question
|
|
- **Recommended: Telegram over Discord** — Telegram lets users create small focused groups and invite the bot in. Each small group = clean context window. Big groups mix unrelated messages and confuse the bot's context. Small groups → better answers, better support.
|
|
|
|
## What Matters to William
|
|
- SRS project health, development, and community
|
|
- Open source sustainability and contributor experience
|
|
- Real-time media protocols, architecture, performance
|
|
|
|
## Formatting Preferences
|
|
- **Markdown headings:** Only use `#` and `##`. Never use `###` or deeper — use **bold text** instead for sub-sections.
|
|
|
|
## Content Preferences
|
|
**YouTube videos (title, description, and scripts):** Always use problem-solving structure:
|
|
1. What's wrong?
|
|
2. Why is it a problem?
|
|
3. What exactly needs solving?
|
|
4. What can be done?
|
|
5. Why will it work?
|
|
6. What should we do next?
|
|
|
|
## Framework for AI-Managed Open Source
|
|
|
|
### What the Maintainer Must Do (William's Work)
|
|
1. **Knowledge base** — Docs are written for humans, not AI. Structured memory lets AI understand the *why* — background, design thinking, architecture rationale.
|
|
2. **Code structure** — Codebase needs to be AI-friendly so AI can verify each change (testable, checkable).
|
|
3. **Code taste** — Follow existing style/conventions. Nice to have, not strictly required.
|
|
|
|
### External Conditions (Not Maintainer's Work)
|
|
1. **LLM capability** — Models powerful enough to handle massive context (e.g., 1B tokens), agentic behavior, reasoning, complex tasks. Example: future Opus versions.
|
|
2. **Tools** — Off-the-shelf tooling like Claude Code, Codex — good enough to use directly, no need to build custom tools.
|
|
|
|
The three layers are what William controls; the external conditions are what the AI ecosystem must provide. When both are ready, AI can truly manage the project.
|
|
|
|
## Ideas Capture
|
|
- When William shares isolated/separate ideas, save them to `docs/ideas.md`
|
|
- This is for **rudimentary, temporary, brainstorm-level** ideas — not mature ones
|
|
- Mature/specific topics go to their proper place (YouTube stuff → `docs/youtube/`, SRS knowledge → `memory/srs-*.md`)
|
|
- `docs/ideas.md` is the scratch pad for early-stage thinking that doesn't belong anywhere else yet
|
|
- Ideas may grow into major features or directions over time
|
|
|
|
## Changelog & Version
|
|
- **Changelog:** `trunk/doc/CHANGELOG.md`
|
|
- **Version file:** `trunk/src/core/srs_core_version7.hpp` — bump `VERSION_REVISION` to match the new changelog entry
|
|
- **When to update:** When a PR is merged — not per commit
|
|
- **Workflow:** Feature branch → multiple commits → create PR → merge PR → update changelog + version
|
|
- Individual commits on a branch do NOT get changelog entries
|
|
- The changelog entry is for the PR merge, not the individual commits within it
|
|
- **Both files must be updated together** — changelog entry version must match `VERSION_REVISION`
|
|
- Format follows existing pattern: `* v7.0, YYYY-MM-DD, Merge [#NNNN](url): Description. vX.Y.Z (#NNNN)`
|
|
|
|
## SRS Knowledge Base
|
|
Detailed SRS knowledge in `memory/srs-*.md` files:
|
|
- `srs-overview.md` — What SRS is, protocols, ecosystem tools, and **Features section** with all SRS features, versions, and dates
|
|
- `srs-coroutines.md` — State Threads (ST) coroutine library, why SRS uses coroutines, how coroutine switching works, maintenance burden (platform matrix, Windows/SEH), and multi-CPU strategy (cluster > multi-threading)
|
|
|
|
### Rule: Keep Feature List Updated
|
|
When creating new features, updating protocols, or making changes to SRS capabilities, **always update the Features section in `memory/srs-overview.md`** with the feature name, description, version, and date.
|
|
|
|
## YouTube Channel Content (docs/youtube/)
|
|
- Contains transcripts from SRS YouTube channel videos
|
|
- ⚠️ **DO NOT trust as knowledge base** — these are snapshots of thoughts at a specific date
|
|
- May contain outdated info, changed opinions, or revised ideas
|
|
- Always verify against current codebase, docs, and project state
|
|
- Use for historical context only, not authoritative reference
|