Serein
Rust로 만든 가볍고 성능 좋은 Discord 전용 네이티브 클라이언트
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Pair-aidance, mutual help and human/AI cooperation platform.
This repository is under active cleaning for public publication. Internal documentation, agent workflows, tests and operational tooling have been archived locally and are not published here.
Public repository — progressive cleanup phase.
Full product documentation is not yet published here.
After running php artisan migrate --seed, the following demo accounts are available for local development:
All demo emails use the reserved .test domain and arREADME 전문 보기 ↗Pair-aidance, mutual help and human/AI cooperation platform.
This repository is under active cleaning for public publication. Internal documentation, agent workflows, tests and operational tooling have been archived locally and are not published here.
composer install
npm install && npm run build
cp .env.example .env
php artisan key:generate
touch database/database.sqlite
php artisan migrate --seed
php artisan storage:link
php artisan serve
Public repository — progressive cleanup phase. Full product documentation is not yet published here.
After running php artisan migrate --seed, the following demo accounts are available for local development:
| Name | Organization | Role | Password | |
|---|---|---|---|---|
[email protected] | Demo Admin | Main | Super Admin | password |
[email protected] | Demo Main Member 1 | Main | Member | password |
[email protected] | Demo Main Member 2 | Main | Member | password |
[email protected] | Demo LaunchPals Member 1 | LaunchPals | Admin | password |
[email protected] | Demo LaunchPals Member 2 | LaunchPals | Member | password |
| Local Apache server (as an example for testing) : https://test.laravel |
| Property | Main | LaunchPals |
|---|---|---|
| Slug | main | launchpals |
| Platform name | BouclePro | LaunchPals |
| Locale | fr | en |
| Loop mode | multi (multiple loops) | mono (single loop) |
| Primary loop | — | LaunchPalsCircle |
| Default org | Yes | No |
| Admin | [email protected] | [email protected] |
| Demo language | French | English |
All demo emails use the reserved .test domain and are safe for public documentation.
Dashboard seeders are skipped in production environments (app()->environment('production')).
Pour reproduire un bug de production, auditer des données réelles ou répéter une release, on travaille sur un jumeau local de la PROD — jamais sur la PROD.
PROD ──(pg_dump lecture seule)──▶ baseline locale ──(TEMPLATE)──▶ bouclepro_prod_work
aucune écriture neutralisée, immuable jetable, recréable
pg_dump en lecture seule.remember_token, clés IA, jetons d'invitation). Elle est scellée IS_TEMPLATE = true avec CONNECTION LIMIT = 0 : elle ne sert que de modèle, on ne travaille jamais dessus.bouclepro_prod_work, jetable et recréable en quelques secondes.bouclepro_prod_work.Organization = Tenant reste la règle : le seed QA n'alimente que main et launchpals et ne touche aucune autre Organization.Les empreintes de mot de passe de la PROD sont conservées : personne ne connaît les mots de passe des comptes réels. C'est précisément pourquoi l'étape QA est nécessaire pour ouvrir une session sur le jumeau.
1. Confirmer la version déployée en PROD. Elle est affichée dans le pied de page du site de production. C'est elle qui nommera la baseline — pas la version locale de develop, qui peut être plus récente.
2. Produire un dump PROD frais, en lecture seule, avec un chemin explicite :
ai/scripts/pg-dump.sh prod-dump _local/sync_prod/dumps/production_<version>_<horodatage>.dump
Toujours passer le chemin : la destination par défaut n'est pas l'emplacement canonique.
3. Choisir une baseline, ou en créer une. Lister celles qui existent déjà :
psql -h 127.0.0.1 -U bouclepro -d postgres \
-c "SELECT datname, datistemplate, datconnlimit FROM pg_database
WHERE datname LIKE 'bouclepro_prod_baseline_%' ORDER BY datname;"
Pour en créer une depuis le dump — --dry-run d'abord, puis la même commande sans :
export DATABASE_TARGET=bouclepro_prod_baseline_<version_prod>_<AAAAMMJJ>
./_local/sync_prod/create-prod-baseline.sh \
--dump _local/sync_prod/dumps/<le dump>.dump \
--name "$DATABASE_TARGET" \
--dry-run
DATABASE_TARGET doit valoir exactement --name. Ne pas utiliser --yes : la confirmation demande de saisir le nom de la base, et c'est la garde.
4. Recréer le jumeau, BASE= toujours explicite :
BASE=<la baseline choisie> ./_local/sync_prod/reset-prod-work.sh
5. Vérifier les migrations, et ne migrer que s'il y en a en attente :
php artisan migrate:status --env=prodwork
php artisan migrate --env=prodwork # seulement si Pending > 0
6. Injecter les comptes QA — dans le jumeau uniquement :
php artisan db:seed --class=UserSeeder --env=prodwork
7. Vérifier les comptes QA, en lecture seule : les cinq comptes du tableau Seed Data présents, non bannis, dans les Organizations attendues. Un seeder qui sort en succès ne garantit pas un compte connectable — UserSeeder utilise firstOrCreate, donc il n'écrase rien si l'email existe déjà.
8. Lancer le rehearsal :
./_local/sync_prod/rehearsal-serve.sh # http://127.0.0.1:8097
9. Tester les connexions et l'isolation tenant : un membre d'une Organization ne doit atteindre aucune surface d'une autre.
reset-prod-work.sh sans BASE= : son défaut historique pointe encore vers une baseline ancienne, et le jumeau obtenu passerait pour un jumeau courant.develop soit plus récent est normal : c'est migrate:status qui tranche.bouclepro (environnement de développement), ni sur bouclepro_test./login n'est pas forcément un défaut : vérifier banned_at avant de conclure.APP_URL et le port servi plutôt que du produit. Le script le rappelle au démarrage.Ce workflow s'appuie sur deux répertoires volontairement laissés hors du dépôt — non suivis par git, absents du dépôt public :
_local/sync_prod/ — outils de référence du workflow PROD → LOCAL (create-prod-baseline.sh, reset-prod-work.sh, rehearsal-serve.sh), ainsi que les dumps, rapports et journaux ;ai/scripts/ — outillage d'exploitation, dont pg-dump.sh.Les chemins cités sont relatifs à la racine du dépôt. Les identifiants de production vivent hors du dépôt et ne sont jamais affichés.
pg-dump.sh mirror-import, prod-mirror, import, reset — ces sous-commandes écrasent la base de développement locale ; elles relèvent de l'ancien modèle « restauration par-dessus bouclepro », remplacé par le couple baseline / jumeau.QaAccountsSeeder — déprécié, délègue à UserSeeder.LegacyDataOrganizationSeeder — hors de ce workflow : il réécrit organization_id en masse sur plusieurs tables.BouclePro Core is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).
Commercial licenses, plugin exceptions, and integration exceptions may be discussed on a case-by-case basis.
Existing third-party dependencies keep their own licenses.