Skip to content

Releases: aJesus37/hCTF

v0.8.8

21 Mar 02:41
9a7c337

Choose a tag to compare

What's Changed

  • fix(update): check dir writability to avoid ETXTBSY on running binary by @aJesus37 in #46

Full Changelog: v0.8.7...v0.8.8

v0.8.7

21 Mar 02:23
c210bbb

Choose a tag to compare

What's Changed

  • chore: rename hCTF2 → hCTF throughout codebase by @aJesus37 in #42
  • docs: fix outdated, contradicting, and incorrect content across docs by @aJesus37 in #43
  • feat(export): add sql_enabled/sql_dataset_url/sql_schema_hint to challenge export/import by @aJesus37 in #44
  • feat(update): add self-update command with stable/beta channels by @aJesus37 in #45

Full Changelog: v0.8.3...v0.8.7

v0.8.5

15 Mar 19:34
ab69c5c

Choose a tag to compare

What's New in v0.8.5

This release closes 9 GitHub issues with bug fixes and UX improvements.

Added

  • Footer "Heavens CTF 2 (hCTF2)" text is now a clickable link to the GitHub repository
  • Admin dashboard Questions list now shows Challenge name instead of Challenge ID for each question
  • Admin dashboard Hints list now shows which Challenge → Question each hint belongs to, both in view and edit mode
  • Hints are now unlocked sequentially: hint N can only be unlocked after hint N-1 has been unlocked. Locked-out hints show a disabled "Unlock hint N first" button.
  • Team profile scoring tab now shows "Available Challenges" section listing challenges with unsolved questions the team can still gain points from
  • Teams page now shows a "View Team Profile" button next to your team's name, and highlights your team with a "My Team" badge in the All Teams list

Changed

  • docker-compose.yml now uses the pre-built ghcr.io/ajesus37/hctf2:latest image instead of building from source; docker compose up -d works out of the box without requiring Go or a local build

Fixed

  • Team profile "All Activity" now correctly shows the total number of questions per challenge instead of only counting solved questions
  • Competition scoreboard chart toggle no longer resets to "Show Chart" when no evolution data is available yet; chart button is hidden instead
  • Evolution API now returns empty arrays [] instead of null for intervals and series when no data exists
  • Solved questions now display the previously submitted correct flag in the (disabled) input field when revisiting a challenge
  • SQL Playground no longer fails with "Table with name hint_unlocks does not exist" when no hints have been unlocked; the table is now always created in DuckDB even when empty
  • Demo seed now unlocks hints for several users, populating the hint_unlocks table with realistic data

Full Changelog: v0.8.4...v0.8.5

What's Changed

  • fix(demo): fix seed crash on BusyBox ash due to semicolon in schema string by @aJesus37 in #12
  • feat(ui): add GitHub repo link to footer by @aJesus37 in #22
  • docs: update docker-compose to use pre-built image by @aJesus37 in #23
  • fix(teams): fix question count in team profile all activity by @aJesus37 in #24
  • fix(competitions): fix competition scoreboard chart by @aJesus37 in #25
  • fix(challenges): show submitted flag in solved question form by @aJesus37 in #26
  • fix(demo): fix hint_unlocks table in SQL Playground by @aJesus37 in #27
  • feat(admin): show challenge/question titles in admin dashboard by @aJesus37 in #28
  • feat(hints): enforce sequential hint unlocking by @aJesus37 in #29
  • feat(teams): show unsolved challenges in team profile and add own team link by @aJesus37 in #30
  • chore: v0.8.5 release — consolidate changelog by @aJesus37 in #31

Full Changelog: v0.8.3...v0.8.5

v0.8.4

15 Mar 15:37

Choose a tag to compare

Fixed

  • Demo seed crashed on startup with dataset: not found — BusyBox ash (Alpine's shell) treated the trailing semicolon inside the double-quoted TITANIC_SCHEMA variable as a command terminator; removed the semicolon to fix parsing
  • Removed dead DEMO_MODE=true env var from demo docker-compose.yml (it was set but never read anywhere)

Full Changelog: v0.8.3...v0.8.4

v0.8.3

15 Mar 15:29

Choose a tag to compare

What's Changed

  • fix(analytics): restore Umami support missing from v0.8.0 by @aJesus37 in #11

Full Changelog: v0.8.2...v0.8.3

v0.8.2

15 Mar 15:06

Choose a tag to compare

What's Changed

  • chore: update CHANGELOG for v0.8.0 by @aJesus37 in #6
  • docs(brand): expand hCTF2 to Heavens CTF 2 by @aJesus37 in #7
  • fix(demo): restore Titanic SQL challenges, hints, competition, multi-question seed by @aJesus37 in #8
  • fix(ui+demo): restore orphaned UI and demo fixes missing from v0.8.0 by @aJesus37 in #9
  • chore: release v0.8.2 by @aJesus37 in #10

Full Changelog: v0.8.0...v0.8.2

v0.8.0

15 Mar 14:31

Choose a tag to compare

What's Changed

  • ci: refactor workflows — split jobs, share binary via artifact by @aJesus37 in #3
  • ci: skip lint on main push, add module cache, use go-version-file by @aJesus37 in #4
  • feat(cli): add full CLI with cobra subcommands and charmbracelet TUI by @aJesus37 in #5

Full Changelog: v0.6.2...v0.8.0

v0.6.2

10 Mar 21:53

Choose a tag to compare

What's Changed

  • perf(docker): switch to scratch base image (13 MB) by @aJesus37 in #2

Full Changelog: v0.6.1...v0.6.2

v0.6.1

08 Mar 20:49

Choose a tag to compare

What's Changed

  • fix(lint): resolve all golangci-lint errors by @aJesus37 in #1

New Contributors

Full Changelog: v0.6.0...v0.6.1

v0.8.6

19 Mar 00:50

Choose a tag to compare

What's New in v0.8.6

Fixed

  • CI test suite no longer panics with function "sub" not defined — the sub arithmetic template function was added to cmd/serve.go in v0.8.5 but was missing from the test server's FuncMap in handlers_test.go

Full Changelog: v0.8.5...v0.8.6

What's Changed

  • fix(tests): add missing sub template function to test server FuncMap by @aJesus37 in #32
  • chore: release v0.8.6 by @aJesus37 in #33

Full Changelog: v0.8.5...v0.8.6