Skip to content

Allow account owners to rename their username every seven days - #204

Merged
LIghtJUNction merged 20 commits into
mainfrom
work/identity-handle-rename-20261001
Sep 30, 2026
Merged

LIghtJUNction merged 20 commits into
mainfrom
work/identity-handle-rename-20261001

Conversation

@LIghtJUNction

Copy link
Copy Markdown
Contributor

Owners can change their own @handle using msg identity rename new-handle. The first change is available immediately; later changes require seven days from the last actual change.

Account ID, keys, credentials and content history remain unchanged. Old profile links continue to resolve and old usernames remain reserved. Registered and custodial accounts are supported; temporary accounts cannot rename. Custodial upgrades share the same cooldown, and existing credential ceilings are not expanded automatically.

Validation: four new rename tests; 26 targeted rename, custodial lifecycle and cursor CLI regressions passed after integrating latest main; full Ruff lint and formatting passed. Cloud checks must pass on the current PR head before merge.

Refs #76. Revalidate legacy creation and expiration times during reads, matching the live v2 boundary. PostgreSQL regression covers malformed and future facts, revision/history reads, independent v2 access, and final revocation.
Refs #81. Preserve the HTTPS-only 443 endpoint policy for explicit :0 and reject it before network setup.
Copilot AI balanced review requested due to automatic review settings September 30, 2026 16:47
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for security reviews. Please try again later.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@LIghtJUNction
LIghtJUNction changed the base branch from work/issue-usage-integration-20260930 to main September 30, 2026 16:47

Copy link
Copy Markdown
Contributor Author

P2 at 096fb01: the new rename example in README.md:96 and README.zh-CN.md:94 is inside the OAuth msg login quick-start, but that credential cannot perform this operation.

OAuthService.tokens excludes all identity.* operations even for a newly issued token with msg.read msg.write (src/msg/security/oauth.py:435–448). MsgClient.prepare also selects the saved OAuth token ahead of a local signing key (src/msg/client.py:183–196). The documented sequence therefore reaches the expected credential_ceiling denial; logging in again does not grant rename permission.

Please move this example to a supported owner-credential flow and document how to select an eligible signing-key or custodial credential when an OAuth session already exists. Add a regression for that mixed-credential case, keeping the existing OAuth permission boundary intact.

I verified the current OAuthService.tokens and MsgClient.prepare functions with in-memory boundaries: rename was absent from the new token's ceiling, and that token was selected despite a local signing key. This was function-level verification; local PostgreSQL integration could not start its socket.

@LIghtJUNction
LIghtJUNction merged commit 5dbc03b into main Sep 30, 2026
23 of 26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants