chore Close the two refactors and the profile dropdown

Record the DONE transitions and closing-note evidence for the persistence split, the password-hashing port, and the profile drop-down. The dropdown item moves out of BLOCKED, with the accepted deviation noted: Settings points at /profile, since account settings live there and there is no separate page.

Commit
e8512c8123f21b13c79c1168012cafddfa2fdec3
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
RAIL.org
index 5c3f46a4..0a99f274 100644..100644
@@ -7,6 +7,46 @@
7 7 #+TAGS: [ Impact : minor major ]
8 8 #+TAGS: [ Misc : doctrine ]
9 9
10 Added: * DONE Split hito.app into use-case and adapter libs :refactor:app:major:
11 Added: CLOSED: [2026-09-09 Wed 12:14] SCHEDULED: [2026-09-09 Wed 11:33]
12 Added: :PROPERTIES:
13 Added: :ID: B999926A-3FF6-4118-9FE1-5C9CE905A00D
14 Added: :END:
15 Added: :LOGBOOK:
16 Added: - CLOSING NOTE [2026-09-09 Wed 12:14] :: model=kiro-cli commit=260d559 tests=247 pass; boundary now structural: hito.app depends on hito.core only; adapters in new hito.persistence lib
17 Added: :END:
18 Added: The Clean Architecture review found that the Dependency Rule holds by
19 Added: convention rather than by construction at the persistence
20 Added: boundary. hito.app is one dune library holding the use case (Service),
21 Added: the port (Repository), and the adapters (Sqlite_repo, Memory_repo,
22 Added: Codec, Migrations). Its dune stanza depends on caqti,
23 Added: caqti-driver-sqlite3, safepass and uri, so nothing stops Service from
24 Added: calling Caqti directly. Today service.ml opens only Lwt, so the
25 Added: discipline holds, but the compiler does not enforce it.
26 Added:
27 Added: Split hito.app into a use-case library that depends on hito.core and the
28 Added: port only, and an adapter library that holds the SQLite adapter, the
29 Added: codec and the migrations. Then the boundary is structural.
30 Added:
31 Added: Note: two further deviations were reviewed and accepted, not
32 Added: captured. Lwt appears in the port and in every use-case
33 Added: signature. Entities cross outward into the view, because pages.mli takes
34 Added: Evidence.Workout.t and Repository.record rather than view models.
35 Added: * DONE Move password hashing behind a port :refactor:app:minor:
36 Added: CLOSED: [2026-09-09 Wed 13:33] SCHEDULED: [2026-09-09 Wed 11:33]
37 Added: :PROPERTIES:
38 Added: :ID: 034E3D12-4797-4F0B-A369-79BD39F0876E
39 Added: :END:
40 Added: :LOGBOOK:
41 Added: - CLOSING NOTE [2026-09-09 Wed 13:33] :: model=kiro-cli commit=060df21 tests=251 pass; Password_hash.S port in hito.app; Bcrypt_hash adapter in hito.persistence; Service.Make (R)(H); Trainee names no hashing lib
42 Added: :END:
43 Added: The Clean Architecture review found that Trainee is bound to one hashing
44 Added: library: trainee.ml calls Bcrypt.hash and Bcrypt.verify from
45 Added: safepass. An entity-like type therefore carries an outer-circle
46 Added: mechanism, and the algorithm cannot change without touching the type.
47 Added:
48 Added: Keep the credential opaque and move hashing behind a port, so the
49 Added: algorithm becomes a detail of an adapter.
10 50 * DONE Add a time graph of feedback elements to the logbook :feat:ui:
11 51 CLOSED: [2026-09-06 Sun 14:23] SCHEDULED: [2026-09-06 Sun 13:43]
12 52 :PROPERTIES:
@@ -40,10 +80,13 @@
40 80 Remove the black line after the masthead
41 81
42 82 - result :: model=kiro-cli commit=d6b3b97 tests=241 pass
43 Removed: * BLOCKED Add profile dropdown actions :feat:app:
44 Removed: SCHEDULED: [2026-09-06 Sun 13:09]
83 Added: * DONE Add profile dropdown actions :feat:app:
84 Added: CLOSED: [2026-09-09 Wed 13:37] SCHEDULED: [2026-09-06 Sun 13:09]
45 85 :PROPERTIES:
46 86 :ID: db8901b3-f932-4c88-8d0d-7ddadfb97f32
87 Added: :END:
88 Added: :LOGBOOK:
89 Added: - CLOSING NOTE [2026-09-09 Wed 13:37] :: model=kiro-cli commit=8fc7223 tests=251 pass; details/summary dropdown with Profile, Settings, Sign out; accepted deviation: Settings points at /profile (no separate settings page)
47 90 :END:
48 91 Source: application feedback (VPS, trainee t1, sequence 5, submitted 2026-09-05T22:18:25Z)
49 92