srs/openclaw/MEMORY.md
Winlin ebf8b712c9 Proxy: restructure repo as Go project with proxy as first module (#4652)
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>
2026-03-22 08:11:28 -04:00

5.9 KiB

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