-
Notifications
You must be signed in to change notification settings - Fork 1
Configuration & Encryption Security
HalpTask prioritizes data integrity, user customization, and hardware-grade file encryption. This document details file configuration settings, visual theme palettes, and the underlying AES-256-GCM encryption architecture.
Configuration settings are stored in YAML format at ~/.config/halptask/config.yaml.
# HalpTask Configuration File
auto_save: true
check_updates: true
data_file: ~/.config/halptask/data.txt
archive_file: ~/.config/halptask/archive.dat
default_item_type: bullet # Options: "bullet" or "task"
encrypted: false
indent_spaces: 2
leader_key: " "
show_which_key: true
show_item_ids: true # Options: true or false
theme: default # Options: "default", "tokyonight", "catppuccin", "dracula", "nord"| Option | Type | Default | Description |
|---|---|---|---|
auto_save |
Boolean | true |
Automatically saves tree modifications to disk in real-time. |
check_updates |
Boolean | true |
Checks for new GitHub release versions on launch non-intrusively. |
data_file |
String | ~/.config/halptask/data.txt |
Path to default Markdown storage file. |
archive_file |
String | ~/.config/halptask/archive.dat |
Path to compressed archive storage file. |
default_item_type |
String | bullet |
Default node type when creating new items (bullet or task). |
encrypted |
Boolean | false |
Specifies whether default data file uses AES-256 encryption. |
indent_spaces |
Integer | 2 |
Number of visual indentation spaces per tree depth level. |
leader_key |
String | " " |
Primary key trigger for leader menu popup (default <space>). |
show_which_key |
Boolean | true |
Renders WhichKey leader popup menu upon key press. |
show_item_ids |
Boolean | true |
Renders permanent #ID numbers next to items in tree view. |
theme |
String | default |
Visual TUI color theme palette. |
HalpTask features 5 professionally styled color palettes:
-
default: Classic Lip Gloss purple/blue theme with crisp high-contrast text. -
tokyonight: Popular TokyoNight storm palette featuring deep blues and neon purple accents. -
catppuccin: Soft, warm mocha aesthetic with pastel pastel blue and teal tones. -
dracula: High-contrast vampire dark mode with pink, purple, and green highlights. -
nord: Cool arctic ice blue palette inspired by Nord colors.
-
Interactive Modal: Press
<space> c cto open the Config Dashboard, highlight Theme, and pressSpaceort. -
Quick Leader Toggle: Press
<space> c tin Normal mode to instantly cycle through available themes!
HalpTask features robust file-level encryption to keep sensitive tasks, legal notes, and credentials safe.
- Symmetric Cipher: AES-256-GCM (Galois/Counter Mode), providing both confidentiality and authenticated data integrity verification.
- Key Derivation Function (KDF): PBKDF2 using HMAC-SHA-256 with 100,000 iterations.
-
Salt & Nonce:
- Cryptographically secure 16-byte random salt generated via
crypto/rand. - Unique 12-byte random initialization nonce per save operation to prevent replay or pattern attacks.
- Cryptographically secure 16-byte random salt generated via
-
File Header Header: Encrypted files begin with the signature
# HALPTASK-ENCRYPTED-v1.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Header: # HALPTASK-ENCRYPTED-v1\n β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Salt: 16 bytes (raw salt) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Nonce: 12 bytes (GCM nonce) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Payload: AES-256-GCM ciphertext + 16-byte Auth Tag β
β (Encrypts Protobuf v1 binary payload) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
HalpTask uses Protobuf v1 binary protocol (.pb) for data persistence:
- High Performance & Compact: Zero-dependency binary serialization with varint and length-delimited wire encoding.
-
Schema Versioning: Root
TreeProtoembedsschema_version = 1for future backward/forward compatibility. -
Item Hierarchy & Metadata: Preserves item IDs, title text, task statuses (
TASK_STATUS_TODO,TASK_STATUS_IN_PROGRESS,TASK_STATUS_DONE), tags, fold states, timestamps, sequence numbers, and attached Markdown notes (note). -
Legacy Markdown Auto-Migration: Legacy
.txt/.mdfiles are parsed and upgraded to.pbProtobuf binary payloads while preserving a.bakbackup file.
To prevent data corruption or accidental lockouts, HalpTask implements safety mechanisms:
-
Passphrase Prompt Modal (
ModePassphrasePrompt): When opening an encrypted file, HalpTask prompts for your secret passphrase before attempting decryption or loading the UI. - Auto-Save Protection: If an encrypted file is opened but has not yet been unlocked with a valid passphrase, auto-save is automatically suspended. This prevents empty or unencrypted data from overwriting your encrypted file.
-
Encryption Toggles:
-
<space> e e: Toggle encryption state on/off for current file. -
<space> e p: Change encryption passphrase.
-
HalpTask - High-Performance TUI Bullet Outliner & Task Manager for Vim Users. Developed in Go with Charm Bubble Tea & Lip Gloss.