feat!: snake_case assistant_ table and key names (0.1.0-RC.2) #3

Merged
KofTwentyTwo merged 3 commits from feature/snake-case-table-names into develop 2026-10-12 20:17:10 +00:00
KofTwentyTwo commented 2026-10-12 19:05:20 +00:00 (Migrated from github.com)

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

## 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)
Sign in to join this conversation.