Commit Graph

124 Commits

Author SHA1 Message Date
Oleksandr Kozachuk db0eb9ebc4 web: stop browser autofill on the name + master fields
The master and pass-overlay inputs are now type=text with a CSS visual mask
(-webkit-text-security) instead of type=password, so the browser never treats
them as password fields — no autofill, no save prompt, no 'suggest strong
password'. Added autocomplete=off + autocapitalize/autocorrect off and
data-1p-ignore / data-lpignore / data-bwignore on the name + master + pass.
2026-06-08 21:59:16 +02:00
Oleksandr Kozachuk d44a54002b parser: default mode for a bare name is now R (six S/KEY words), not C
Matches the prefix-name default, the README, and the app's own help text (which
already says the default is six memorable words). Explicit modes are unaffected,
so existing catalogs round-trip unchanged.
2026-06-08 21:51:03 +02:00
Oleksandr Kozachuk 14d404744c web: fix mobile horizontal overflow
main is a grid; its items default to min-width:auto, so the console card (pre /
no-wrap lines) refused to shrink and pushed the whole page wider than the phone
screen, clipping the About panel text. Set grid-template-columns: minmax(0,1fr)
so cards shrink to the viewport and the console scrolls internally instead.
2026-06-08 21:41:35 +02:00
Oleksandr Kozachuk 349bbe1557 web: link RFC 2289 in the About panel 2026-06-08 21:24:59 +02:00
Oleksandr Kozachuk f8e8a9981a help: note the S/KEY (RFC 2289) heritage + xkcd 936 memorable-words idea
The default R mode is the six-word S/KEY form. Mention it in the help command
(CLI + web console) and the web About panel, with a link to xkcd 936.
2026-06-08 21:15:15 +02:00
Oleksandr Kozachuk ba884037b0 web: state the no-server/in-browser privacy clearly + self-host fonts
- Make the privacy promise true: bundle the fonts (Poppins/Inter/JetBrains Mono
  latin subsets + the text-security mask font) under helwasm/assets/fonts/ and
  drop the Google Fonts + jsDelivr links. The page now makes zero external
  requests once loaded — it talks to no third party.
- Say it plainly throughout the UI: a "Private by design" callout in the About
  panel, the meta description, the quick-gen and console hints, and the footer —
  nothing you type leaves the browser, no server, no account, no tracking.
2026-06-08 20:42:33 +02:00
Oleksandr Kozachuk 3031105000 feat(web): polish the WASM site - UX, help, parsing, assets
- About panel (collapsible, closed by default with a pulsing "Help" badge)
  explaining the tool; the `help` command now prints a full command reference
  instead of "HELP" (benefits the CLI too).
- Live generation as you type; Store button; masked output that stays mono-width
  (gen masks only the password column, never the header); command history with
  Up/Down (persisted); console auto-scroll; Export fixed (uses `dump`); Import.
- Name field normalizes to its canonical parsed form on blur; quick-gen and Store
  resolve the real entry name, so a leading prefix like `*P0 test1` is handled
  correctly (new hel_parse / hel_parse_name wasm helpers).
- Parser: prefix-only forms now parse with defaults - `*P0 test1` ->
  `*P0 test1 R 99 <today>`, `*P0 test1 R`, `*P0 test1 20R` - via new qpname/npname
  rules mirroring qname/nname; the fully-qualified form is unchanged.
- Favicons + web app manifest + enso asset; pkg rebuilt.
2026-06-08 20:11:24 +02:00
Oleksandr Kozachuk 03c5dadccb feat: WASM web app (browser LesS/KEY) backed by the hel core
Run the real hel core in the browser via WebAssembly, replacing the plain-JS
ooke.github.io/sk reimplementation so the web and the CLI share one generator.

- hel core: new storage module (native fs / wasm localStorage) backs
  init/source/dump/correct; the pipe and pb branches are gated out of wasm;
  the wasm editor is completed (EditorRef) and its password prompt no longer
  blocks the single JS thread (synchronous hel_get_password instead of a
  thread::sleep poll).
- helwasm: hel_load_script for bulk import, a panic hook in hel_init, dropped
  the ok_add / web-sys leftovers; build.sh runs wasm-bindgen into a committed
  pkg/ so GitHub Pages can serve the static dir with no CI.
- UI: rewritten index.html + style.css in the kaizenkodo.org style — responsive,
  masked-but-copyable passwords with click-to-reveal, a quick-generate card plus
  a full command console, localStorage persistence, and paste import/export.
2026-06-08 18:43:19 +02:00
Oleksandr Kozachuk 74d3296882 feat: Notion backend for the catalog + set command + ls/source/save UX
Persist the entry catalog to a Notion page instead of an external script.

- `hel store notion:<ref>` reads the dump from stdin and writes it into a
  single code block on the page; `hel load notion:<ref>` prints it back.
  `<ref>` is a page id (UUID) or a page title (case-insensitive search).
  Token from HEL_NOTION_TOKEN. Networking lives in helcli (ureq + serde_json);
  the core lib and the wasm build are untouched. argv is dispatched before the
  REPL starts, so the subcommands never read ~/.helrc or prompt for a master.

- `set <key> <value>`: runtime config (e.g. hel_dump, hel_notion_token) from
  ~/.helrc instead of env vars. The map is exported (uppercased) into spawned
  pipe/source children, so `set hel_notion_token ...` reaches `hel store`.
  Values are redacted in history.

- `ls` now matches case-insensitively.
- `source` echoes `source <target>`.
- `save` prints a `< removed` / `> added` diff against the last load/save
  snapshot so removals are noticed before they persist.
2026-06-08 16:53:23 +02:00
Kiyomichi Kosaka 38e7df982f Merge pull request #1 from ok2/codex/fix-typo,-bug,-comments,-and-improve-tests
Fix typos and improve radix output
2025-06-08 17:01:17 +02:00
Kiyomichi Kosaka ff4215fbab Fix typos and improve Radix 2025-05-23 13:47:58 +02:00
Oleksandr Kozachuk d4eeea73d8 Improve readline history. 2023-07-18 14:22:15 +02:00
Oleksandr Kozachuk b3260e04fb Do not print error on adding, when exactly the same already exist, it ignores it then silently. 2023-02-02 10:54:08 +01:00
Oleksandr Kozachuk 464ac458d2 Simplify call_cmd_with_input. 2023-01-11 14:29:10 +01:00
Oleksandr Kozachuk 8db5e66f83 Small refactoring/simplification of radix code. 2023-01-10 13:58:25 +01:00
Oleksandr Kozachuk ab79a100d3 Small changes for the html. 2023-01-09 13:53:58 +01:00
Oleksandr Kozachuk ccc318b2ad Increase the max history size for hel to 10000. 2023-01-07 13:55:37 +01:00
Oleksandr Kozachuk a180291e94 Fix handling of empty password. 2023-01-07 13:46:33 +01:00
Oleksandr Kozachuk 122aeaf75b Refactor read_password function to take just the name as argument, not the prompt. 2023-01-07 13:40:00 +01:00
Oleksandr Kozachuk 54c2c0e5a1 Store pass command without password to history. 2023-01-07 13:18:39 +01:00
Oleksandr Kozachuk 2b56aed28e Refactor history handling: store only save and usefull commands, save them in LKEval state, do not safe pass command into history. 2023-01-07 13:16:47 +01:00
Oleksandr Kozachuk 4ee1d38be7 pass command accepts now optionally the password from command line, instead of stdin. 2023-01-07 12:06:41 +01:00
Oleksandr Kozachuk 44c6f371a8 Wrap lines in HTML. 2023-01-06 17:31:57 +01:00
Oleksandr Kozachuk ed894b8b16 Remove warning. 2023-01-06 17:22:52 +01:00
Oleksandr Kozachuk e0b5c0280e Integrate the REPL, now WASM32 works, just some functions missing. 2023-01-06 17:21:28 +01:00
Oleksandr Kozachuk 77f7db7dec Add possibility to add input instead of calling readline. 2023-01-06 17:13:42 +01:00
Oleksandr Kozachuk e9dba54750 Develop wasm support further. 2023-01-06 16:16:04 +01:00
Oleksandr Kozachuk 3416ea96ae Remove deadlock_detection feature from parking_lot, because it is incompatible with wasm32 2023-01-06 15:27:58 +01:00
Oleksandr Kozachuk 127f386e35 Fix compilation and tests. 2023-01-06 15:08:52 +01:00
Oleksandr Kozachuk 6f78130fab Rename command "leave" to "keep", sounds more appropreate. 2023-01-06 14:53:08 +01:00
Oleksandr Kozachuk 538a32a471 Switch from Rc<RefCell> to Arc<Mutex<T>> or Arc<ReentrantMutex<RefCell<T>>>. 2023-01-06 13:12:58 +01:00
Oleksandr Kozachuk a2978c1230 Fix printing correct password and reading master password. 2023-01-05 15:25:08 +01:00
Oleksandr Kozachuk fd3914dacb Renamed the dump command to save, added command dump to dump the db to stdout. 2023-01-03 11:58:48 +01:00
Oleksandr Kozachuk 1b96ca3239 Some WASM changes, not ready yet. 2023-01-03 11:15:40 +01:00
Oleksandr Kozachuk 69f65a5be0 Make helwasm compilable for wasm32-unknown-unknown target. 2023-01-01 19:46:14 +01:00
Oleksandr Kozachuk 7563645518 Fix tests, move rpassword usage to utils.rs to implement something different for wasm. 2023-01-01 19:04:56 +01:00
Oleksandr Kozachuk eced302282 Split project into three workspaces: hel (the library), helcli (the tool) and helwasm (the wasm code). Move wasm incompatible code to extra modules in utils.rs to be implementable separately for wasm. 2023-01-01 18:50:16 +01:00
Oleksandr Kozachuk cff9e3f90d Make the height a bit better. 2022-12-31 17:16:02 +01:00
Oleksandr Kozachuk d3f00e7268 Add first prototype index.html 2022-12-31 17:08:32 +01:00
Oleksandr Kozachuk 984a416ae7 Fix space recognicion, support all kinds of spaces. 2022-12-28 19:34:24 +01:00
Oleksandr Kozachuk 41a3248084 Fix tests. 2022-12-28 17:18:37 +01:00
Oleksandr Kozachuk 78d5f46d43 Fix outuput in gen. 2022-12-28 14:57:54 +01:00
Oleksandr Kozachuk 5b20968ade Fix ld command sort order. 2022-12-24 16:01:27 +01:00
Oleksandr Kozachuk b89dd0936e Expand the commands. 2022-12-24 15:59:22 +01:00
Oleksandr Kozachuk 46fb2c6b40 Add leave command, to directly save the generated password and restructure the parser a bit. 2022-12-24 15:00:07 +01:00
Oleksandr Kozachuk a69fceb126 Add ld command, like ls but sort by date. Fix quit command in scripts, output passwords with spaces when no prefix given (align output by name, somewhat). 2022-12-24 13:53:53 +01:00
Oleksandr Kozachuk f0ce3b4d96 Change password struct to use name as String instead of Rc<String>, fix gen command. 2022-12-23 20:14:07 +01:00
Oleksandr Kozachuk 13ea63d687 Fix gen command, but still has issues. 2022-12-22 19:28:38 +01:00
Kiyomichi Kosaka 3373f17332 Fix for gen command (not finished yet). 2022-12-22 15:07:56 +00:00
Kiyomichi Kosaka 03b2d43c6c Fix generation of single random passwords. 2022-12-22 12:10:13 +00:00