summaryrefslogtreecommitdiff
path: root/docs/STATE.md
AgeCommit message (Collapse)Author
4 hoursweb: ship glibc C.utf8 so the web TUI shows åäöAnders Betts
The cross-built bokftui is static glibc; in the Alpine web image it found no locale data, setlocale() failed and åäö were invalid bytes. The cross build now copies Debian's C.utf8 into the image and the image build runs bokfweb --check-locale, so a TUI without UTF-8 fails the build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 hoursdocs: state after the v0.1.69 deployAnders Betts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 hoursweb: bokftui in the browser (ttyd + bokfweb login gate); per-user login limitv0.1.69Anders Betts
New image bokf-web (Dockerfile target "web", compose service "web" on 127.0.0.1:8790): Caddy routing with forward_auth, the bokfweb login gate (C, authenticates with bokfd's session.open, per-address limit, cookie + terminal handle, one login handed to the TUI via /redeem) and ttyd running bokftui in web mode in an isolated throwaway HOME. TLS stays with the host's reverse proxy. BOKF_WEB=1 blocks every local file and viewer path in the TUI. bokfd's login limiter is now per user name instead of one global counter (5 wrong guesses from anyone locked out everybody), and a full counter table no longer disables it. The cross build and deploy.sh build and ship both images. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5 hourstui: context menu on → / ^O; no F-keys, ^N or ^EnterAnders Betts
→ (where no caret uses it) and ^O (everywhere, also in table cells) open "Åtgärder": a box at the right edge with every action of the view and its key. Screens declare their actions with tui_set_actions(); choosing one feeds its key to the widget, so the menu and accelerators share one path. Function keys, Ctrl+N (now n), Ctrl+Enter and Ctrl+F are gone and no extended keyboard protocol is enabled, so the TUI works in a browser terminal; save/post/validate/preview/template/attach are menu actions. make check rejects F-keys, ^N and ^Enter in clients/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5 hoursdocs: state after the v0.1.68 deployAnders Betts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5 hoursuser.set_password: change your own password; TUI "Byt lösenord"v0.1.68Anders Betts
Needs the current password (wrong ones rate limited like logins) and a password session, requires at least 10 characters, closes the user's other sessions and is audited without secrets. The TUI main menu gets "Byt lösenord" with masked prompts; ^R keeps working with the new password. Masked prompt buffers are wiped before they are freed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 hourstui: "Byt bolag" in the main menuAnders Betts
Reopens the org picker (cursor on the current org) and switches the running session: the org's name, role, current fiscal year and series are reloaded and the remembered list selections cleared. The context reload now clears the previous org's values first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 hourstui: 'g' + a letter searches list rowsAnders Betts
The goto prompt decides on its first key: digits jump to a row number as before, any other printable key searches the row texts of the list or menu (case-insensitive, also åäö), with up/down stepping through the matches. Keys typed into the prompt no longer reach the screen's key hook, and Enter in the action menu closes an open prompt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 hourstui: aligned voucher detail, up/down between vouchers, list sortingAnders Betts
The detail pads every column by display width, blanks zero amounts and shows row texts and a Summa line. Up/Down step to the previous/next voucher in the list order; 's' cycles the list sort (number or date, ascending or descending, saved in tui.conf). The list fetches all pages of voucher.list instead of stopping at 200. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7 hourstui: one shared field editor, in-place form editing, value-only focusAnders Betts
Forms edit fields in place in the value column instead of a bottom prompt, highlight only the focused value and scroll when taller than the screen; long text scrolls horizontally instead of wrapping. Fixes: typing after Backspace/Del no longer wipes the field, 'q' is text in row tables, the caret resets between cells, dialogs decode arrow keys, full buffers never take half a UTF-8 character, an invalid amount stays editable. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
17 hoursdocs: state after the v0.1.67 deployAnders Betts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
17 hourssru, tui: round every account to whole kronor; fix the årsredovisning ↵v0.1.67Anders Betts
Stäng skip Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
17 hoursdocs: state after the v0.1.66 deployAnders Betts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
18 hoursreports: ignore IB rows on P&L accounts; bokfctl --dry-runv0.1.66Anders Betts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
19 hoursdocs: state after the v0.1.65 deployAnders Betts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
19 hoursreports: VAT report skips the momsomföring and imported closingsv0.1.65Anders Betts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
20 hoursMerge eff/imported-closings; skip only SIE-imported Stäng closingsAnders Betts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
20 hoursreports, sie: carry earlier IB vouchers, restart P&L at year startAnders Betts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
20 hoursreports: income statement skips imported Stäng closingsAnders Betts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
26 hoursdocs: resume snapshot after the Kunder draft pilotAnders Betts
27 hourstui: kundutkast, <UTKAST>, explicit Spara och F2-åtgärderAnders Betts
27 hoursdocs: state after the v0.1.64 deployAnders Betts
27 hoursdocs: TUI interaction model (draft lifecycle, explicit Spara, F2 actions)v0.1.64Anders Betts
30 hoursdocs: state after the v0.1.63 deployAnders Betts
30 hoursdocuments: org name in the invoice and payslip headers, document_header_colorv0.1.63Anders Betts
31 hoursdocs: resume snapshot after the invoice wave and the Hetzner voucherAnders Betts
40 hoursdocs: state after the v0.1.62 deployAnders Betts
41 hoursdocs: state after the v0.1.61 deployAnders Betts
42 hoursdocs: state after the v0.1.60 deployAnders Betts
42 hourssettings: per-feature voucher series and console invoice number; tui: F9 hintsv0.1.60Anders Betts
48 hoursdocs: state after the v0.1.59 deployAnders Betts
2 daysdocs: state after the v0.1.58 deployAnders Betts
2 daysdocs: state after the v0.1.57 deployAnders Betts
2 daystui: flat menu, System hub, remembered attachment directoryv0.1.57Anders Betts
2 daysdocs: state after the v0.1.56 deployAnders Betts
2 daystui: Bolaget hub, drop the Företag sectionv0.1.56Anders Betts
2 daysdocs: state after the v0.1.55 deployAnders Betts
2 daystui: payroll screens, Företag/System menu and settings splitv0.1.55Anders Betts
2 daysdocs: resume snapshot after the payroll server wavesAnders Betts
2 daysdocs: prune STATE into a decision archive; record the branch ruleAnders Betts
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3 daysdeploy: cross-compile static aarch64 for the Alpine imagev0.1.54Anders Betts
3 daystui: bank prefill vouchers and auto-match after postingAnders Betts
3 daystui: split bokftui into screen filesAnders Betts
3 dayscommands: split the command table by domainAnders Betts
3 daysdocs: invoicing waves 1-3 completev0.1.51Anders Betts
3 daysdeploy: pass BOKFD_SECRET_KEY through compose; document waves 1-2Anders Betts
3 daysinvoice: skip the Swish QRv0.1.50Anders Betts
3 daysinvoice: allow setting the bankgiro, document wave 1Anders Betts
3 daysdb: schema v9 for invoicing, vouchers source rebuildAnders Betts
3 daysinvoicing: design chapter with layout, numbering and SMTPAnders Betts