Applies the owner naming rule (2026-10-12): "table names should always be lowercase and use _, and qbits should always be prefixed with their name". This is a metadata-only change for 0.1.0-RC.2. The physical tables in docs/schema-postgres.sql were already assistant_*, so there is no DDL.
unchanged (QQQ's standard hasAccess suffix; the assistant base already follows the rule)
Security key type
assistantUserId
assistant_user_id
All-access key
assistantUserIdAllAccess
assistant_user_id_all_access
The old names stay as @Deprecated(since = "0.1.0-RC.2")LEGACY_* constants until 0.2.0.
The new UPGRADE.md covers the stored references to update: the all-access session key, saved views and reports, and audit_table names, with sample Postgres SQL. It also covers hosts whose physical tables used the camelCase names.
README, CHANGELOG and CLAUDE.md now use the new names.
Unchanged: Java classes, field names, the assistantAdmin app, the assistantRetention process, the routes and the assistant supplemental meta-data.
Tests
./mvnw clean verify: green, 71 tests, 0 failures. That includes the golden and red-team evals, with the red-team table-hiding checks updated to the new names.
New NamingTest checks that:
every assistant table matches ^assistant_[a-z0-9_]+$
the legacy names are no longer registered
the legacy constants hold the RC.1 values
the possible-value source uses the table name.
Adopters
kof22 Website-Backend #114 (unmerged) maps the tables with inferBackendName, which becomes a no-op. It must grant the new all-access key when it picks up RC.2. Permission grants are unchanged.
For the release captain. Please do not merge without the RC.2 release plan.
## Summary
Applies the owner naming rule (2026-10-12): *"table names should always be lowercase and use _, and qbits should always be prefixed with their name"*. This is a metadata-only change for **0.1.0-RC.2**. The physical tables in `docs/schema-postgres.sql` were already `assistant_*`, so there is no DDL.
| Kind | RC.1 | RC.2 |
|---|---|---|
| Tables | `assistantConversation`, `assistantMessage`, `assistantTurn`, `assistantTurnEvent`, `assistantToolCall`, `assistantFeedback`, `assistantPolicy`, `assistantUsageDaily` | `assistant_conversation`, `assistant_message`, `assistant_turn`, `assistant_turn_event`, `assistant_tool_call`, `assistant_feedback`, `assistant_policy`, `assistant_usage_daily` |
| Conversation possible-value source | `assistantConversation` | `assistant_conversation` |
| Permissions | `assistant.hasAccess`, `assistant.admin` | unchanged (QQQ's standard `hasAccess` suffix; the `assistant` base already follows the rule) |
| Security key type | `assistantUserId` | `assistant_user_id` |
| All-access key | `assistantUserIdAllAccess` | `assistant_user_id_all_access` |
- The old names stay as `@Deprecated(since = "0.1.0-RC.2")` `LEGACY_*` constants until 0.2.0.
- The new **UPGRADE.md** covers the stored references to update: the all-access session key, saved views and reports, and `audit_table` names, with sample Postgres SQL. It also covers hosts whose physical tables used the camelCase names.
- README, CHANGELOG and CLAUDE.md now use the new names.
- Unchanged: Java classes, field names, the `assistantAdmin` app, the `assistantRetention` process, the routes and the `assistant` supplemental meta-data.
## Tests
- `./mvnw clean verify`: green, 71 tests, 0 failures. That includes the golden and red-team evals, with the red-team table-hiding checks updated to the new names.
- New `NamingTest` checks that:
- every assistant table matches `^assistant_[a-z0-9_]+$`
- the legacy names are no longer registered
- the legacy constants hold the RC.1 values
- the possible-value source uses the table name.
## Adopters
- kof22 Website-Backend #114 (unmerged) maps the tables with `inferBackendName`, which becomes a no-op. It must grant the new all-access key when it picks up RC.2. Permission grants are unchanged.
For the release captain. Please do not merge without the RC.2 release plan.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Applies the owner naming rule (2026-10-12): "table names should always be lowercase and use _, and qbits should always be prefixed with their name". This is a metadata-only change for 0.1.0-RC.2. The physical tables in
docs/schema-postgres.sqlwere alreadyassistant_*, so there is no DDL.assistantConversation,assistantMessage,assistantTurn,assistantTurnEvent,assistantToolCall,assistantFeedback,assistantPolicy,assistantUsageDailyassistant_conversation,assistant_message,assistant_turn,assistant_turn_event,assistant_tool_call,assistant_feedback,assistant_policy,assistant_usage_dailyassistantConversationassistant_conversationassistant.hasAccess,assistant.adminhasAccesssuffix; theassistantbase already follows the rule)assistantUserIdassistant_user_idassistantUserIdAllAccessassistant_user_id_all_access@Deprecated(since = "0.1.0-RC.2")LEGACY_*constants until 0.2.0.audit_tablenames, with sample Postgres SQL. It also covers hosts whose physical tables used the camelCase names.assistantAdminapp, theassistantRetentionprocess, the routes and theassistantsupplemental meta-data.Tests
./mvnw clean verify: green, 71 tests, 0 failures. That includes the golden and red-team evals, with the red-team table-hiding checks updated to the new names.NamingTestchecks that:^assistant_[a-z0-9_]+$Adopters
inferBackendName, which becomes a no-op. It must grant the new all-access key when it picks up RC.2. Permission grants are unchanged.For the release captain. Please do not merge without the RC.2 release plan.
🤖 Generated with Claude Code