Skip to content

Commit 790458a

Browse files
committed
Merge branch 'feature/survey-api'
# Conflicts: # .version # api/version.go
2 parents f14422f + b474b0d commit 790458a

File tree

130 files changed

+36551
-20421
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+36551
-20421
lines changed

.claude/skills/test/SKILL.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ The test suite runs in the following order, with each stage only running if the
2323
**Default**: PostgreSQL development environment (`make test-integration`)
2424

2525
**Optional**: Oracle ADB can be used if explicitly requested by the user during skill invocation. In that case:
26+
2627
- Use `make test-integration-oci` instead of `make test-integration`
2728
- May need to reset database with `make reset-db-oci` if requested
2829

@@ -101,7 +102,7 @@ If API tests passed, run CATS security fuzzing:
101102
make cats-fuzz
102103
```
103104

104-
This takes approximately 9 minutes. The output will show progress through various fuzzers.
105+
This takes approximately 25-30 minutes. The output will show progress through various fuzzers. Check status every 5 minutes until the 20 minute mark, and then every minute until the 25 minute mark, and then every 30 seconds thereafter.
105106

106107
### Step 5: Parse and Analyze CATS Results
107108

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,15 @@
1313
!oapi-codegen-config.yml
1414
!.golangci.yml
1515
!vacuum-ruleset.yaml
16+
!arazzo-spectral.yaml
17+
!asyncapi-spectral.yaml
18+
!oas-spectral.yaml
19+
!ruleset-all.yaml
1620
!make-containers-dev*.sh
1721
!Dockerfile*
1822
!.dockerignore
1923
!config-example.yml
24+
!config-test-integration-pg.yml
2025
!auth/migrations/*.sql
2126
!.claude/settings.local.json
2227
!package.json

.version

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"major": 1,
3-
"minor": 3,
4-
"patch": 3
3+
"minor": 1,
4+
"patch": 0
55
}

CLAUDE.md

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ OAuth 2.0 testing harness with PKCE (RFC 7636) support for manual and automated
147147
| `POST /refresh` | Refresh access token |
148148

149149
**Quick JWT Retrieval**:
150+
150151
```bash
151152
make start-oauth-stub
152153
curl -X POST http://localhost:8079/flows/start -H 'Content-Type: application/json' -d '{"userid": "alice"}'
@@ -162,6 +163,7 @@ Standalone Go application for testing WebSocket collaborative features.
162163
- **Location**: `wstest/` directory
163164

164165
**Usage**:
166+
165167
```bash
166168
./wstest --user alice --host --participants "bob,charlie" # Host mode
167169
./wstest --user bob # Participant mode
@@ -349,6 +351,9 @@ When completing any task involving code changes, follow this checklist:
349351
- Run `make build-server` and fix any build issues
350352
- Run `make test-unit` and fix any test failures
351353
4. Suggest a conventional commit message
354+
5. If the task is associated with a GitHub issue, the task is NOT complete until:
355+
- The commit that resolves the issue references the issue (e.g., `Fixes #123` or `Closes #123` in the commit message body)
356+
- The issue is closed as "done"
352357

353358
**Note**: Build and test steps are only required when Go files are modified. For non-Go changes (documentation, scripts, configuration), only linting is required.
354359

@@ -357,6 +362,7 @@ When completing any task involving code changes, follow this checklist:
357362
**ALWAYS use conventional commits**
358363

359364
**Conventional Commit Format**:
365+
360366
- Use the format: `<type>(<scope>): <description>`
361367
- Types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`, `perf`, `ci`, `build`, `revert`
362368
- Scope: Optional, indicates the area of change (e.g., `api`, `auth`, `websocket`, `docs`)
@@ -428,12 +434,12 @@ JWT Middleware → Auth Context → Resource Middleware → Endpoint Handlers
428434

429435
- Always use a normal oauth login flow with the "tmi" provider when performing any development or testing task that requires authentication
430436
- The oauth-client-callback-stub can receive callbacks from the TMI oauth provider with the token, and you can retrieve the token from the oauth-client-callback-stub with a REST api call.
431-
- start stub: make start-oauth-stub
432-
- stop stub: make oauth-stub-stop
433-
- get JWT:
434-
- start the stub
435-
- perform a normal authorization request, using http://localhost:8079 as the callback url and specifying a user name as a login_hint
436-
- retrieve the JWT from http://localhost:8079/creds?userid=<username-hint>
437+
- start stub: make start-oauth-stub
438+
- stop stub: make oauth-stub-stop
439+
- get JWT:
440+
- start the stub
441+
- perform a normal authorization request, using http://localhost:8079 as the callback url and specifying a user name as a login_hint
442+
- retrieve the JWT from http://localhost:8079/creds?userid=<username-hint>
437443

438444
### TMI OAuth Provider login_hints
439445

@@ -456,7 +462,7 @@ curl "http://localhost:8080/oauth2/authorize?idp=tmi&login_hint=qa-automation"
456462

457463
# Without login_hint - generates random user like 'testuser-12345678@tmi.local'
458464
curl "http://localhost:8080/oauth2/authorize?idp=tmi"
459-
````
465+
```
460466

461467
**Automation Integration**:
462468

@@ -479,6 +485,7 @@ OAuth 2.0 Client Credentials Grant (RFC 6749 Section 4.4) for webhooks, addons,
479485
| `DELETE /me/client_credentials/{id}` | Delete and revoke credential |
480486

481487
**Token Exchange**:
488+
482489
```bash
483490
curl -X POST http://localhost:8080/oauth2/token \
484491
-d "grant_type=client_credentials" -d "client_id=tmi_cc_..." -d "client_secret=..."
@@ -495,7 +502,7 @@ curl -X POST http://localhost:8080/oauth2/token \
495502

496503
TMI uses staticcheck for Go code quality analysis. The project has intentionally kept some staticcheck warnings:
497504

498-
- **Auto-Generated Code**: `api/api.go` contains 338 ST1005 warnings (capitalized error strings)
505+
- **Auto-Generated Code**: `api/api.go` contains many ST1005 warnings (capitalized error strings)
499506
- File is generated by oapi-codegen from OpenAPI specification
500507
- Manual edits would be overwritten on next OpenAPI regeneration
501508
- Not worth customizing oapi-codegen templates for style compliance
@@ -515,18 +522,6 @@ TMI uses staticcheck for Go code quality analysis. The project has intentionally
515522

516523
## Agent Instructions
517524

518-
This project uses **bd** (beads) for issue tracking. Run `bd onboard` to get started.
519-
520-
### Quick Reference
521-
522-
```bash
523-
bd ready # Find available work
524-
bd show <id> # View issue details
525-
bd update <id> --status in_progress # Claim work
526-
bd close <id> # Complete work
527-
bd sync # Sync with git
528-
```
529-
530525
### Landing the Plane (Session Completion)
531526

532527
**When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.
@@ -539,7 +534,6 @@ bd sync # Sync with git
539534
4. **PUSH TO REMOTE** - This is MANDATORY:
540535
```bash
541536
git pull --rebase
542-
bd sync
543537
git push
544538
git status # MUST show "up to date with origin"
545539
```

0 commit comments

Comments
 (0)