Skip to content

Releases: dizziedbliss/SkillIssues

SkillIssues v1.6.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 19:50
9c7baea

Changed

  • A new app icon, for the window, the installer and the Windows setup: the wordmark's "i" turned into a bang on a solid tile.

Download the file for your system below: SkillIssues-Installer.exe for Windows (or SkillIssues-Setup-*.exe, the full offline installer), *.dmg for macOS (Apple silicon), *.AppImage for Linux. Or get the newest from https://skillissues.dizziedbliss.lol/download.

The Windows files aren't code-signed yet, so Windows may warn that it doesn't recognise them: choose More info → Run anyway.

SkillIssues v1.5.1

Choose a tag to compare

@github-actions github-actions released this 26 Oct 23:00
6397fd9

Security

  • Electron 44.9.3, with the fixes for the advisories against 44.3.0.
  • Safer issue descriptions: the sanitiser that cleans them (DOMPurify) is updated for two serious bypasses.

Download the file for your system below: SkillIssues-Installer.exe for Windows (or SkillIssues-Setup-*.exe, the full offline installer), *.dmg for macOS (Apple silicon), *.AppImage for Linux. Or get the newest from https://skillissues.dizziedbliss.lol/download.

The Windows files aren't code-signed yet, so Windows may warn that it doesn't recognise them: choose More info → Run anyway.

SkillIssues v1.5.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 22:46
2c59322

Added

  • A new installer for Windows. One clean window with the SkillIssues look: agree to the terms, press Install, and watch it download (with its size and speed) and install. Cancelling asks first. Run it again when SkillIssues is installed to Update, Repair or Remove it. It downloads the newest version from GitHub and checks it against the release's checksum before running anything. The full offline installer is still on the releases page.

Changed

  • A calmer, clearer app. Lines and chips are quiet now, and red is kept for what matters: the main button, where you are, what you've earned, and section headings. Light mode uses warmer, slightly dimmed paper and softer ink, easier on the eyes over a long session.
  • Your profile, rebuilt. Your level sits large at the top with its bar, your merges, languages and streak beside it. Next up leads with what you're doing (pull requests in review with where they stand, issues you've claimed, your learning path), then the quests you're closest to finishing. Your pull requests are one list, each once, with the XP it earned. Hover a badge to see how you earned it.
  • Your contributions show your numbers, your year, every pull request with All, Merged and Open, where your XP came from, and every quest.
  • Finding issues is quicker. One search bar everywhere, with Filters beside it; filters are a row of pills that say what they mean when you open them; the levels and your languages sit in one row you can clear. Search (/) opens as a palette with results as you type.
  • Tidier everywhere else: issue pages show six labels before "+ more", the learning path is a list you can start with one click, Settings is a row per setting with a shorter language list, themes appear as miniatures of themselves, and the menu holds what's about you while the top bar holds where you work.

Download the file for your system below: SkillIssues-Installer.exe for Windows (or SkillIssues-Setup-*.exe, the full offline installer), *.dmg for macOS (Apple silicon), *.AppImage for Linux. Or get the newest from https://skillissues.dizziedbliss.lol/download.

The Windows files aren't code-signed yet, so Windows may warn that it doesn't recognise them: choose More info → Run anyway.

SkillIssues v1.3.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 17:36

Easier on the eyes. The Default and Midnight themes moved from pure white and pure black to warm paper and ink, with softer lines. The red is still fully saturated, now set for each mode so text on it and in it is easy to read: every pairing passes WCAG AA. Your own themes are unchanged; ones built on Default or Midnight pick up the new colours for anything they don't set.

The installer shows the wordmark alone. The mark stays the app's icon, nothing more.


Download the file for your system below: SkillIssues-Setup-*.exe for Windows, *.dmg for macOS (Apple silicon), *.AppImage for Linux. Or get the newest from https://skillissues.dizziedbliss.lol/download.

SkillIssues v1.2.1

Choose a tag to compare

@github-actions github-actions released this 21 Oct 16:57

When your fork is deleted on GitHub, the app now says so, and Fork again makes a new one and points your folder at it. Your commits stay, ready to push.

Pull requests show where they stand on GitHub: open, merged, or closed. A closed one offers Open a new pull request, and Working on shows each state.

A new look for the Windows installer: dark, like the app, with the SkillIssues mark.


Download the file for your system below: SkillIssues-Setup-*.exe for Windows, *.dmg for macOS (Apple silicon), *.AppImage for Linux. Or get the newest from https://skillissues.dizziedbliss.lol/download.

SkillIssues v1.2.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 16:16

Updates ask first. When a new version is out, the title bar says Update available. Open it to read what's new, then download it when you choose. Nothing downloads or restarts on its own; after the download you restart into it, or it installs when you close the app. And after an update, the app shows you what changed.

A proper installer on Windows. It now opens with what SkillIssues does, shows the license and terms, and lets you choose where to install it, for just you or everyone on the computer.

Working on. A new page in the menu lists every issue you've started in the app and what's next for each. Commit, push and the pull request are now separate steps:

  • Commit takes a title and, if you like, a description.
  • Push sends only your commits, never uncommitted changes.
  • Pull request is yours to write. Tick Close #number when it's merged if your change fixes the issue.

For you. Explore's default list now picks issues that suit you (your languages, your level, what you've merged before), look likely to get merged, and have waited. Each card says why it's there.

Fixes

  • Copying the sign-in code works, and says so.
  • Connecting GitHub for pushing no longer says you're signed in as "nobody".
  • Open in VS Code finds the folder on Windows.
  • Giving up a path, releasing a claim and deleting a theme ask first.
  • Explore keeps its filters and page when you open an issue and come back.
  • Issue descriptions show attached images and colour their code.
  • The app is smaller to download.

Download the file for your system below: SkillIssues-Setup-*.exe for Windows, *.dmg for macOS (Apple silicon), *.AppImage for Linux. Or get the newest from https://skillissues.dizziedbliss.lol/download.

SkillIssues v1.1.1

Choose a tag to compare

@github-actions github-actions released this 21 Oct 14:13

SkillIssues v1.1.1 Release

SkillIssues — the intelligent developer issue matching and desktop contribution engine.

Highlights

  • Desktop App Suite: Native workspace creation, automated branch handling, live Git progress tracker, and VS Code 1-click launcher.
  • Web-to-Desktop Deep Linking: Browse issues on the web and immediately start solving them inside the desktop client via skillissues://.
  • Continuously Growing Catalog: Real open-source issues from eligible repositories, crawled continuously, with difficulty ratings and author metadata.
  • Sandboxed Git Operations: Workspace isolation and subprocess safeguards around every fork/clone/branch/push.

Download Desktop Client

Download the installer for your operating system below!

SkillIssues v1.1.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 11:21

SkillIssues v1.1.0 Release

SkillIssues — the intelligent developer issue matching and desktop contribution engine.

Highlights

  • Desktop App Suite: Native workspace creation, automated branch handling, live Git progress tracker, and VS Code 1-click launcher.
  • Web-to-Desktop Deep Linking: Browse issues on the web and immediately start solving them inside the desktop client via skillissues://.
  • Continuously Growing Catalog: Real open-source issues from eligible repositories, crawled continuously, with difficulty ratings and author metadata.
  • Sandboxed Git Operations: Workspace isolation and subprocess safeguards around every fork/clone/branch/push.

Download Desktop Client

Download the installer for your operating system below!

SkillIssues v1.0.0 — Production Deployment & Unified Client Architecture

Choose a tag to compare

@github-actions github-actions released this 13 Oct 18:31

SkillIssues — an open-source issue discovery platform and desktop contribution engine. Browse real GitHub issues by difficulty, start working on one from the desktop app with one click (fork, clone, branch — all automatic), and track your contribution through to a merged PR.

Download the desktop client

  • Windows: SkillIssues.Setup.1.0.0.exe
  • macOS (Apple Silicon): SkillIssues-1.0.0-arm64.dmg
  • Linux: SkillIssues-1.0.0.AppImage

🚀 Production Deployment & Unified Client Architecture

1.0.0 is the release where SkillIssues actually went live, and where the web and desktop
clients stopped drifting apart. The app now runs on a real VPS behind CI-gated deploys, and
both clients share one typed API layer and one set of UI components instead of reimplementing
the product twice.

Added

Production deployment (first real deploy of this project)

  • CI/CD pipeline: .github/workflows/ci.yml gates every push — backend (vet, gofmt,
    build, test), web/desktop (typecheck and a real production build, not just a type check),
    and a buildx build of all five Docker targets plus docker compose config on both compose
    files. .github/workflows/deploy.yml builds and pushes
    ghcr.io/dizziedbliss/skillissues-{api,ingestd,migrate,web} on every push to main, gated on
    CI passing, then deploys to the VPS over SSH. Rollback is a workflow_dispatch with an older
    immutable sha- tag.
  • One root Dockerfile with named targets (api, ingestd, migrate, web,
    repoimport) built from the repo root, replacing four scattered Dockerfiles, so the web
    target can actually see the shared packages/* it imports. New root .dockerignore keeps
    the build context to tens of MB instead of shipping the multi-GB dataset.
  • compose.prod.yaml: a from-scratch production compose file — Caddy as the only
    internet-facing service (automatic TLS, same-origin /api/* routing so there's no CORS and
    no cross-site cookie problem), Postgres/Redis sized for the 4GB/2vCPU VPS, explicit memory and
    CPU limits and log rotation on every service, DB_MAX_CONNS made configurable.
  • Disk guardrails: ingest.max_pages_per_repo caps how deep the crawler paginates into any
    one repository; ingest.max_db_size_mb pauses enqueuing/claiming once the database crosses a
    configured size. Both live settings, both surfaced on GET /health/detail alongside current
    DB size, so the ceiling is visible before it's hit.
  • Automated backups: a systemd timer running daily pg_dump with 14-day retention on the
    host.
  • The production repository catalog was populated for the first time: 287,998 eligible
    repositories
    imported from the Kaggle metadata snapshot; ingestd has been crawling live
    since.

Shared client architecture

  • packages/api-client: one typed client for every API endpoint, used by both clients —
    Issue/Contribution/Profile types, ApiError that keeps status and detail so a 401
    is never confused with a 429 or a network failure, AbortController/cancellation support,
    pluggable transport (fetchTransport for web, an IPC-routed transport for desktop), and the
    recommendations ETag/stale-cache fallback that used to be duplicated and drifting in both
    clients.
  • packages/ui: shared React components — Modal (body scroll lock, Escape-to-close,
    focus trap, backdrop click — none of which either client had before), ConfirmDialog,
    Toast, IssueCard/IssueList, WorkingList/SubmissionList, DifficultyTabs,
    SectionTabs, Badge, ProgressBar, Skeleton.
  • Desktop renderer rewritten in React + TypeScript, replacing 1,780 lines of plain-JS
    innerHTML rebuilds. The old renderer blanked and refetched up to six endpoints from fifteen
    call sites on nearly every interaction (including a single bookmark click) — the rewrite
    moves to per-resource state with per-resource refetch, request sequencing so a fast
    filter→page→search sequence can't let a stale response win, and real React reconciliation, so
    scroll position now survives a list update.
  • Web's App.tsx rebuilt onto the same shared packages, cut from 1,691 to roughly 1,100
    lines of routing and web-specific glue — its hand-rolled issue card, login form, working/
    submission lists, and detail modal are now the shared packages/ui components.
  • npm workspaces at the repo root (web, desktop, packages/*) so @skillissues/* resolves
    as a real node_modules symlink, with one lockfile for the whole tree.

Issue lifecycle

  • Closed-issue detection, on demand only (no background sweep): the existing fork/clone
    freshness check and a new GitHub issues webhook handler persist a closed/reopened state
    using GitHub's own updatedAt. A new batched POST /issues/freshness lets a client check
    only the handful of issues it's actually displaying.
  • Sticky saved issues carry their lifecycle (none/working/submitted/merged) as a
    badge; saved issues never disappear regardless of issue or contribution state.
  • Re-solve: starting a fresh attempt on an already-submitted or already-merged issue works
    end to end in both clients, backed by the existing idempotent fork and partial-unique-index
    contribution model.
  • Real submitted_at, separate from the fork/start time (created_at) both clients were
    previously mislabeling as the submission time.
  • A "View issue" action was added to working/submission cards on both clients (desktop's
    working cards were missing it entirely).

Changed

  • OAuth is now the only supported login path in both clients' UI; the legacy PAT-login
    endpoint stays registered server-side but is disabled by default behind a live setting.
  • FRONTEND_URL is parsed once as a proper multi-value list instead of being treated as a
    single string everywhere, fixing cookie Secure detection, the OAuth redirect target, and the
    CORS Access-Control-Allow-Origin header.
  • Issue-body "not ready yet" responses now carry a structured {"status":"queued","reason":...}
    instead of an ambiguous error shape, and the web client retries with real exponential backoff.
  • A failed /saved, /working, or /contributions fetch now keeps the previously loaded list
    and shows a retry affordance instead of silently rendering empty — this previously made
    real data look like it had disappeared whenever the client hit the unauthenticated rate limit.
  • GET /recommendations now accepts difficulty/page/limit filters through the shared
    client, matching what the backend already supported.

Removed

  • The co-contribution commit-trailer feature (GET /github/co-contribution-trailer and both
    clients' UI for it) — removed per product decision, not a regression.
  • The PAT login form from both clients' UI.
  • database/migrations/ and database/schema.sql as a second, never-applied, out-of-sync
    schema source — the embedded goose migrations under backend/internal/migrate/migrations/
    are the only schema source now.
  • The stale k8s/ manifests, which referenced images nothing built and committed a plaintext
    database password.

Fixed

  • The web production Docker image's HEALTHCHECK always failed: it resolved localhost to
    ::1 while nginx only listens on IPv4, so the check failed even while the container correctly
    served real traffic.
  • CI never installed the shared packages/markdown module's own dependencies, so every build
    that exercised it was silently relying on a dev machine's leftover node_modules.
  • The deploy workflow could run and attempt an SSH deploy even when its own CI job had failed,
    caught only by an unrelated empty-tag guard; the condition now requires either an actual CI
    success or an explicit manual rollback dispatch.
  • cmd/ingestd logging a prefix and length of the GitHub token at startup — removed outright;
    credentials are never logged, not even partially.
  • A swallowed QueryRow error in GET /health/detail and a discarded UPDATE error in
    submitContribution, both now surfaced.
  • Account deletion (authPurge) previously discarded its own delete errors and always reported
    success; it now wraps the deletes in a transaction and returns the real error on failure.