Skip to content

Fix code quality issues and enhance status task functionality#22

Merged
ddon merged 3 commits into
BeamLabEU:devfrom
timujinne:dev
Sep 10, 2025
Merged

Fix code quality issues and enhance status task functionality#22
ddon merged 3 commits into
BeamLabEU:devfrom
timujinne:dev

Conversation

@timujinne
Copy link
Copy Markdown
Contributor

Summary

• Fix code quality issues including trailing whitespace and unused imports
• Add enhanced status task functionality with hybrid repository detection
• Fix critical CSS integration regex patterns for exact dependency path matching
• Update README with hex version badge and location information

Key Changes

Enhanced Status Task (mix phoenix_kit.status)

  • Add hybrid repository detection with fallback strategies
  • Add comprehensive status diagnostics with detailed database connection reporting
  • Add application startup management for reliable status checking
  • Add intelligent repository detection supporting both configured and auto-detected repositories

Code Quality Improvements

  • Fix trailing whitespace issues across multiple files
  • Fix unused alias imports in tasks and modules
  • Fix dialyzer warnings by updating ignore patterns
  • Add proper error handling and diagnostics

CSS Integration Fixes

  • Fix critical CSS integration bug where regex patterns incorrectly matched file paths containing "phoenix_kit" substring
  • Fix CSS integration to properly detect only exact PhoenixKit dependency paths
  • Add improved pattern matching specificity to prevent installation failures

Asset Management Updates

  • Update asset rebuild system to consistently recommend rebuilds for better reliability
  • Remove complex asset checking logic in favor of straightforward rebuild recommendations
  • Add simplified asset rebuild workflow

Test Plan

  • Status task works with configured repositories
  • Status task works with auto-detected repositories
  • Status task provides detailed diagnostics in verbose mode
  • CSS integration correctly detects exact dependency paths
  • Asset rebuild system works consistently
  • Code passes all quality checks (format, credo, dialyzer)
  • All existing tests continue to pass

… matching

Fix regex patterns that incorrectly matched paths containing phoenix_kit substring
Fix false positive detection of test_phoenix_kit_v1_web as valid PhoenixKit integration
Add specific patterns for exact PhoenixKit dependency paths only
Update version to 1.2.3 with comprehensive changelog entry
Fix trailing whitespace issues across multiple files
Fix unused alias imports in tasks and modules
Fix dialyzer warnings by updating ignore patterns
Add hybrid repository detection with fallback strategies
Add comprehensive status diagnostics and error reporting
Add application startup management for status command
Update status task to use simplified asset rebuild logic
Update assets rebuild to recommend rebuild consistently
Update phoenix_kit.update to delegate status display to status task
Remove complex asset checking logic in favor of simple approach
Add hex version badge to README
Update README footer with location information
@ddon ddon changed the base branch from main to dev September 10, 2025 20:44
@ddon ddon merged commit a7793c6 into BeamLabEU:dev Sep 10, 2025
ddon pushed a commit that referenced this pull request Nov 12, 2025
…-011CV2Tf4gGv22yX1krCPeKq

Fix race condition in ensure_first_user_is_owner
ddon pushed a commit that referenced this pull request May 12, 2026
Code (PR #537 review items addressed):

- #1 BUG-MEDIUM: wrap `Annotations.delete/1` in `Repo.transaction/1` so
  comment-cascade + annotation-delete are atomic. Extracted into
  `delete_in_transaction/1` to keep the body flat (credo depth).
- #2 BUG-MEDIUM: sweep stale `resource_type = "annotation"` claims
  across 3 moduledocs (annotation.ex, v115.ex, etcher_adapter.ex). The
  implementation anchors comments to the file with
  `metadata.annotation_uuid` — docs now match reality.
- #5 BUG-LOW: narrow `delete_linked_comments` rescue to expected
  exception classes ([DBConnection.OwnershipError, Postgrex.Error,
  ArgumentError]) so logic bugs surface instead of being swallowed.
- #11 IMPROVEMENT-LOW: drop `normalize/1` — `Ecto.Changeset.cast/3`
  handles both atom- and string-keyed maps natively; the helper added
  silent failure-mode risk on typo'd keys.
- #12 IMPROVEMENT-LOW: drop in-repo `Code.ensure_loaded?(PhoenixKit.Annotations)`
  guard in MediaBrowser — Annotations is a core module, can't be
  missing.
- #19 NITPICK: drop `PhoenixKit.Modules.Storage` from
  AnnotationComposer's `@compile no_warn_undefined` (it's core, not
  optional — rename should fail loudly).
- #20 NITPICK: simplify `AnnotationComposerPosition.destroyed` guard.
- #21 NITPICK: fix misleading "Etcher's bootstrap uses `||` to preserve
  pre-existing slots" comment — PhoenixKit's JS owns the slots.
- #8 IMPROVEMENT-MEDIUM: gettext-wrap ~17 user-facing strings in
  AnnotationComposer (flash messages + heex literals + ARIA labels).

Credo / dialyzer:
- Alias `PhoenixKit.Annotations`, `PhoenixKit.Modules.Storage`,
  `PhoenixKit.Modules.Storage.EtcherAdapter`, `Storage.File` so the
  six "nested modules could be aliased" findings clear.
- Convert `first_attachment_thumbnail/1`'s single-clause `with` to
  `case` (credo readability).
- Add PhoenixKitComments-targeted entries to .dialyzer_ignore.exs for
  the annotations context + composer (optional sibling package,
  guarded at runtime).
- mix.lock picks up `etcher 0.1.0` via deps.get.

mix precommit: compile → format → credo --strict → dialyzer all clean.
Deferred to original author (Alex): #3 (race), #4 (upload rollback),
#6 (authz), #7 (schema-as-source), #9 (geometry validation), #10
(configurable component id), #13/#14 (locale-aware date + traverse_errors),
plus cosmetics #15-18, #22, #23. Disposition table in CLAUDE_REVIEW.md
updated separately.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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