Skip to content

FIX UI: simplify profile controls and settings - #143

Open
konard wants to merge 8 commits into
releasefrom
issue-140-3e9c034ade4f
Open

FIX UI: simplify profile controls and settings#143
konard wants to merge 8 commits into
releasefrom
issue-140-3e9c034ade4f

Conversation

@konard

@konard konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

Fix profile UI (issue #140)

Closes #140.

This PR simplifies the profile page, keeps owner-only tasks private, removes secret/private-key profile UI, and moves owner settings into a header modal as requested in review.

What changed

Public view

  • Widgets declared in the profile Org document render directly inside the profile.
  • Owner task checklist and the new-task row stay hidden from anonymous/public viewers.
  • Public profile editor copy now only describes visitor-visible profile data.

Owner editor and header actions

  • The header social.org action is now a menu with Open public workspace, Copy social.org, and Download social.org.
  • The header Settings button opens a modal for owner-only settings.
  • Owner settings include SSH public keys, theme selection, and language selection.
  • Removed the Short info editor block, Private zone, and private-key field entirely.
  • Supports more than one SSH public key, one per line, with duplicate normalization before save.
  • Keeps compact social-link editor rows from the previous review response.

Repository SSH API

  • Crater now stores actor SSH public keys in actor_ssh_public_keys with (actor_handle, public_key) as the key.
  • Existing actor_ssh_keys data is migrated into the plural table on setup.
  • GET/PUT /actor/:username/keys/ssh return both legacy publicKey and plural publicKeys for compatibility.

Earlier cleanup still included

  • Removed the bonus card flow and raw Org profile editors.
  • Removed the Solver profile / OAuth-style connection card.

How to reproduce / verify

  1. Visit /@<handle> as a public viewer with a seeded public profile. The README and inline widgets render, while owner tasks, secrets, and editor controls are absent.
  2. Visit the same profile as the owner. The header shows one social.org menu button with open/copy/download actions.
  3. Click the header Settings button. SSH public keys, theme, and language controls appear in the settings modal.
  4. Add duplicate SSH public-key lines and save from the modal. The request sends a deduplicated publicKeys array and profile metadata keeps sshPublicKeys plus a legacy sshPublicKey mirror.

Tests

  • pnpm lint -> 0 errors, 19 existing warnings.
  • pnpm check -> 0 errors, 63 existing warnings.
  • pnpm test:e2e e2e/profile-repository.spec.ts -> 12 passed.
  • pnpm build -> passed.
  • Previous local verification on this PR also passed pnpm test, pnpm test:integration, full pnpm test:e2e, and added crater/spec/lepos_ssh_key_store_spec.cr; local Crystal execution was not available because crystal and shards are not installed in this workspace.

Screenshots

Public view (README + inline widgets only for visitors; no owner task controls or secrets):

Public profile

Owner view (header social.org menu plus header Settings modal with SSH keys/theme/language):

Owner profile

Adding .gitkeep for PR creation (default mode).
This file will be removed when the task is complete.

Issue: https://github.com/lefinepro/kefine/issues/140
@konard konard self-assigned this Jun 5, 2026
…tors

Addresses issue #140 (FIX UI) — simplify the profile page, reduce
duplication, and keep internal/secret data out of the public view.

Public view:
- Render declared widgets directly inside the profile (KefineProfileWidgets)
  instead of only behind the command palette.
- Keep tasks ("Profile tasks" / new-task row) private — they only render
  for the owner, never in the public view.

Owner editor:
- Split into clearly labelled "Public profile" and "Private zone" sections
  for a consistent public/private separation.
- Remove the raw Org textarea editors (Profile tasks / workspace widgets).
- Move secret data (SSH key + private key) into the private settings zone.
- Auto-generate the private key as a random string (persisted via the
  publickey cookie) and show it read-only.
- Relocate copy/download/save actions into a single footer.

Removals:
- Remove the "$100 bonus" card flow entirely: bonus card panel/input
  components, the bin-lookup API route, the dead verifyProfileCard flow in
  KefineWorkspace, and the bonus e2e spec. The referral bonus is unaffected.

Tests:
- Rewrite e2e/profile-repository.spec.ts to assert tasks stay private and
  declared widgets render inline in the public profile.

Screenshots of the owner and public views added under docs/screenshots/.
@konard konard changed the title [WIP] FIX UI FIX UI: inline profile widgets, private tasks, remove bonus & raw editors Jun 5, 2026
@konard
konard marked this pull request as ready for review June 5, 2026 11:52
@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

Working session summary

That earlier background monitor has now finished too — it confirms the same result I already verified directly: CI run 27013228765 completed successfully.

Everything is done and confirmed:

  • PR FIX UI: simplify profile controls and settings #143 is ready for review with an updated title, full description, and before/after screenshots.
  • All CI checks pass (CI workflow: Lint, Type Check, Unit/Integration/E2E Tests, Build, Crater Smoke; plus Lighthouse CI).
  • Working tree is clean; branch issue-140-3e9c034ade4f is up to date with release.

No further action needed.


This summary was automatically extracted from the AI working session output.

@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost: $10.253337

📊 Context and tokens usage:

Claude Opus 4.8: (3 sub-sessions)

  1. 116.7K / 1M (12%) input tokens, 24.1K / 128K (19%) output tokens
  2. 116.5K / 1M (12%) input tokens, 33.4K / 128K (26%) output tokens
  3. 41.8K / 1M (4%) input tokens, 7.2K / 128K (6%) output tokens

Total: (15.9K new + 377.2K cache writes + 11.7M cache reads) input tokens, 77.8K output tokens, $10.253338 cost

🤖 Models used:

  • Tool: Anthropic Claude Code
  • Requested: opus
  • Model: Claude Opus 4.8 (claude-opus-4-8)

📎 Log file uploaded as Gist (6210KB)


Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

✅ Ready to merge

This pull request is now ready to be merged:

  • All CI checks have passed
  • No merge conflicts
  • No pending changes

Monitored by hive-mind with --auto-restart-until-mergeable flag

@Payel-git-ol

Copy link
Copy Markdown
Contributor

You can remove the Solver profile as well as the oauth link.

@konard
konard marked this pull request as draft June 5, 2026 12:13
@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 AI Work Session Started

Starting automated work session at 2026-06-05T12:13:24.132Z

The PR has been converted to draft mode while work is in progress.

This comment marks the beginning of an AI work session. Please wait for the session to finish, and provide your feedback.

Addresses PR #143 review feedback from the issue author: the Solver
profile card (an OAuth-style workspace connection element) is removed
from the profile's private zone. Cleans up the component, derived state,
copy handlers, e2e coverage, locale strings (en/ru/hy), and the
ProfileMetadata solver fields. The private zone now shows only the
SSH public key and the auto-generated private key.

Refs #140
@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

Done — removed the Solver profile card and its OAuth-style connection link from the Private zone in d7c3c25.

This also cleans up everything tied to it:

  • deleted the KefineSolverProfileCard component
  • removed the derived solver state, copy handlers, and the createSolverProfile/copySolverToken functions in the profile page
  • dropped the solver locale strings (en/ru/hy) and the ProfileMetadata solver fields
  • removed the now-obsolete solver-token e2e test

The Private zone now shows only the SSH public key and the auto-generated private key. Owner screenshot in the PR description is regenerated to reflect this. Lint/type-check pass with 0 errors.

@konard
konard marked this pull request as ready for review June 5, 2026 12:22
@Payel-git-ol

Copy link
Copy Markdown
Contributor
image Links are too big

@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost: $4.135584

📊 Context and tokens usage:

Claude Opus 4.8: (2 sub-sessions)

  1. 116.6K / 1M (12%) input tokens, 20.7K / 128K (16%) output tokens
  2. 39.6K / 1M (4%) input tokens, 6.0K / 128K (5%) output tokens

Total: (7.0K new + 133.0K cache writes + 4.9M cache reads) input tokens, 32.0K output tokens, $4.135584 cost

🤖 Models used:

  • Tool: Anthropic Claude Code
  • Requested: opus
  • Model: Claude Opus 4.8 (claude-opus-4-8)

📎 Log file uploaded as Gist (3077KB)


Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

✅ Ready to merge

This pull request is now ready to be merged:

  • All CI checks have passed
  • No merge conflicts
  • No pending changes

Monitored by hive-mind with --auto-restart-until-mergeable flag

@konard
konard marked this pull request as draft June 5, 2026 12:31
@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 AI Work Session Started

Starting automated work session at 2026-06-05T12:31:43.674Z

The PR has been converted to draft mode while work is in progress.

This comment marks the beginning of an AI work session. Please wait for the session to finish, and provide your feedback.

@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

Fixed the oversized social-link rows in commit 79a7657. The owner editor now uses compact form-control sizing for social links, the owner screenshot was refreshed, and I added an E2E assertion that keeps the social-link input font size <= 15px and row height <= 44px. Local verification passed: pnpm lint, pnpm check, pnpm test, pnpm test:integration, targeted profile E2E, full pnpm test:e2e, and pnpm build.

@konard
konard marked this pull request as ready for review June 5, 2026 12:45
@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Model: GPT-5.5
  • Provider: OpenAI
  • Public pricing estimate: $10.183632

📊 Context and tokens usage:

  • 300.2K / 1.1M (29%) input tokens, 23.6K / 128K (18%) output tokens

Total: (300.2K + 6.1M cached) input tokens, 23.6K output tokens, $10.183632 cost

🤖 Models used:

  • Tool: OpenAI Codex
  • Requested: gpt-5.5
  • Model: GPT-5.5 (gpt-5.5)

📎 Log file uploaded as Repository (37586KB)


Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

✅ Ready to merge

This pull request is now ready to be merged:

  • All CI checks have passed
  • No merge conflicts
  • No pending changes

Monitored by hive-mind with --auto-restart-until-mergeable flag

@kogeletey

Copy link
Copy Markdown
Collaborator

Short info block remove, ssh key in a publick and support more 1 ssh key, privatekey is remove field

@konard
konard marked this pull request as draft June 5, 2026 12:57
@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 AI Work Session Started

Starting automated work session at 2026-06-05T12:57:01.400Z

The PR has been converted to draft mode while work is in progress.

This comment marks the beginning of an AI work session. Please wait for the session to finish, and provide your feedback.

@konard konard changed the title FIX UI: inline profile widgets, private tasks, remove bonus & raw editors FIX UI: inline profile widgets, private tasks, public SSH keys Jun 5, 2026
@konard
konard marked this pull request as ready for review June 5, 2026 13:21
@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

Working session summary

Implemented and pushed the review updates to PR #143:

#143

What changed:

  • Removed the profile Short info editor block.
  • Removed the profile Private zone and private-key field.
  • Moved SSH public keys into the Public profile section.
  • Added multiline SSH public-key support with deduped publicKeys payloads.
  • Updated Crater SSH storage/API for multiple public keys with legacy publicKey compatibility.
  • Refreshed owner screenshot and PR description.
  • Marked the PR ready for review.

Verification:

  • Local: pnpm check, pnpm lint, pnpm test, pnpm test:integration, focused profile E2E, full E2E, and pnpm build passed.
  • CI for commit 7370609 is green: CI and Lighthouse both completed successfully.
  • Worktree is clean.

This summary was automatically extracted from the AI working session output.

@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Model: GPT-5.5
  • Provider: OpenAI
  • Public pricing estimate: $18.130161

📊 Context and tokens usage:

  • 642.8K / 1.1M (61%) input tokens, 47.1K / 128K (37%) output tokens

Total: (642.8K + 9.6M cached) input tokens, 47.1K output tokens, $18.130161 cost

🤖 Models used:

  • Tool: OpenAI Codex
  • Requested: gpt-5.5
  • Model: GPT-5.5 (gpt-5.5)

📎 Log file uploaded as Repository (59815KB)


Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

✅ Ready to merge

This pull request is now ready to be merged:

  • All CI checks have passed
  • No merge conflicts
  • No pending changes

Monitored by hive-mind with --auto-restart-until-mergeable flag

@kogeletey

Copy link
Copy Markdown
Collaborator

download and open copy in button on header hide, open the menu of download button and open social org profile, download and more. In a settings add support ssh key adding, theme settings and language

@konard
konard marked this pull request as draft June 5, 2026 14:07
@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 AI Work Session Started

Starting automated work session at 2026-06-05T14:07:13.085Z

The PR has been converted to draft mode while work is in progress.

This comment marks the beginning of an AI work session. Please wait for the session to finish, and provide your feedback.

@konard konard changed the title FIX UI: inline profile widgets, private tasks, public SSH keys FIX UI: simplify profile controls and settings Jun 5, 2026
@konard
konard marked this pull request as ready for review June 5, 2026 14:27
@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

Working session summary

Implemented and pushed commit 3fee40c to issue-140-3e9c034ade4f.

Updated PR 143: #143

What changed:

  • Header social.org action is now a dropdown menu: open, copy, download.
  • Owner settings now include SSH public keys, theme, and language controls.
  • SSH public keys moved out of the public profile zone into Settings.
  • Refreshed owner screenshot showing the open header menu and settings panel.
  • Added focused Playwright coverage for the new menu/settings behavior.

Verification:

  • pnpm check passed: 0 errors, existing warnings.
  • pnpm lint passed.
  • pnpm test passed: 221 tests.
  • pnpm test:e2e e2e/profile-repository.spec.ts passed: 12 tests.
  • pnpm build passed.
  • Fresh GitHub CI and Lighthouse CI for 3fee40c both passed.
  • PR is marked ready for review and working tree is clean.

This summary was automatically extracted from the AI working session output.

@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Model: GPT-5.5
  • Provider: OpenAI
  • Public pricing estimate: $16.683917

📊 Context and tokens usage:

  • 544.0K / 1.1M (52%) input tokens, 38.3K / 128K (30%) output tokens

Total: (544.0K + 9.5M cached) input tokens, 38.3K output tokens, $16.683917 cost

🤖 Models used:

  • Tool: OpenAI Codex
  • Requested: gpt-5.5
  • Model: GPT-5.5 (gpt-5.5)

📎 Log file uploaded as Repository (61138KB)


Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

✅ Ready to merge

This pull request is now ready to be merged:

  • All CI checks have passed
  • No merge conflicts
  • No pending changes

Monitored by hive-mind with --auto-restart-until-mergeable flag

@kogeletey

Copy link
Copy Markdown
Collaborator

Settings into modal on header please for profile

@konard
konard marked this pull request as draft June 5, 2026 15:36
@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 AI Work Session Started

Starting automated work session at 2026-06-05T15:36:14.755Z

The PR has been converted to draft mode while work is in progress.

This comment marks the beginning of an AI work session. Please wait for the session to finish, and provide your feedback.

@konard
konard marked this pull request as ready for review June 5, 2026 15:43
@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

Working session summary

Implemented the latest PR feedback in commit a681f0c: profile Settings now opens from the header as a modal, with SSH public keys, theme, language, and modal save controls moved out of the inline editor.

Updated and pushed PR #143: #143

Verified locally:

  • pnpm lint passed
  • pnpm check passed
  • pnpm test:e2e e2e/profile-repository.spec.ts passed, 12 tests
  • pnpm build passed

Also refreshed the owner screenshots and updated the PR description. The PR is marked ready for review. Fresh CI and Lighthouse runs for a681f0c have started and were still in progress at the final check.


This summary was automatically extracted from the AI working session output.

@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Model: GPT-5.5
  • Provider: OpenAI
  • Public pricing estimate: $4.605303

📊 Context and tokens usage:

  • 186.3K / 1.1M (18%) input tokens, 11.0K / 128K (9%) output tokens

Total: (186.3K + 2.2M cached) input tokens, 11.0K output tokens, $4.605303 cost

🤖 Models used:

  • Tool: OpenAI Codex
  • Requested: gpt-5.5
  • Model: GPT-5.5 (gpt-5.5)

📎 Log file uploaded as Gist (20136KB)


Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard

konard commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

✅ Ready to merge

This pull request is now ready to be merged:

  • All CI checks have passed
  • No merge conflicts
  • No pending changes

Monitored by hive-mind with --auto-restart-until-mergeable flag

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.

3 participants