b0f86ed4bbfix: saveOrg finally block — button always resets regardless of success/error/close order
James
2026-03-20 01:44:42 -0400
5e77fa13fdfix: save button stuck — move reset to finally block, remove mid-session loadOrgs calls
James
2026-03-20 01:43:33 -0400
71d481c43bfix: confirmRemoveInactive now auto-saves immediately; save button no longer gets stuck
James
2026-03-20 01:42:25 -0400
3a1520cc91fix: snapshot orgId+members before async save — closing modal mid-flight no longer breaks it
James
2026-03-20 01:37:11 -0400
579047a54dfeat: add contact saves immediately without needing Save Changes
James
2026-03-20 01:35:36 -0400
f8afed6a61fix: saveOrg also fetches fresh version before writing — same stale version bug
James
2026-03-20 01:30:30 -0400
8f6c6898c7fix: fetch fresh version before saving contacts — rescrape bumps version making eVersion stale
James
2026-03-20 01:29:51 -0400
ae01ef8531fix: orgToMap missing version field — always caused version_conflict on save; stop rollback on catch
James
2026-03-20 01:26:32 -0400
ffbe134708fix: scrape selection — drop Set, query checkboxes by data-idx directly on save
James
2026-03-20 01:23:35 -0400
dc30969119fix: track scrape selections in JS Set instead of querying DOM checked state
James
2026-03-20 01:10:38 -0400
00c77396e4fix: saveRescrapeSelection was missing — now actually saves; Members → Contacts throughout
James
2026-03-20 01:06:54 -0400
be7308cd88ux: rename Ignore → Keep on not-found members
James
2026-03-20 01:03:33 -0400
3e93fee954ux: select all aligned left with checkboxes; add selected → save my selection (saves immediately)
James
2026-03-20 01:02:16 -0400
e0910a943bfix: save button stuck — version sequencing; add Ignore button to not-found people
James
2026-03-20 00:53:53 -0400
fb1a4fdabafeat: scraped people are editable inline (name/title/email/biz+personal phone) before adding
James
2026-03-20 00:48:16 -0400
7871abf835fix: single quotes inside string literals in updateMember oninput attrs — broke orgs page JS
James
2026-03-20 00:45:16 -0400
ce80aeeb4afeat: member inline edit (name/title/email/biz+personal phone); expand/collapse rows; add form includes phone fields
James
2026-03-20 00:41:03 -0400
5291edfa94feat: remove scrape cap; not-found people require explicit confirm-to-remove
James
2026-03-20 00:24:57 -0400
41d3844a18feat: rescrape max 20; select all checkbox in scrape results
James
2026-03-20 00:16:09 -0400
8f143308bffix: addRescrapeSelected onclick was mangling JSON in HTML attribute — use stored window variable instead
James
2026-03-20 00:10:37 -0400
23a009e60dfeat: global org members registry — rescrape, add/delete; deal member picker with search + new person saves to global org
James
2026-03-19 23:38:19 -0400
063c12d324fix: member cards not rendering — broken nested template literal; rewrite as renderMemberCard helper with safe string concat
James
2026-03-19 22:45:54 -0400
ba5591ca2cchore: auto-commit uncommitted changes
James
2026-03-18 06:02:21 -0400
aca4789b6cfix: DealOrgPerms missing VisibleLists field — permissions appeared to not save because visible_lists was silently dropped on unmarshal
James
2026-03-17 21:32:06 -0400
3765adaf55fix: savePermissions preserves members; surface actual error message on failure
James
2026-03-17 21:29:43 -0400
06ff5268bafix: remove role from global org registry — role is deal-specific, not org-level
James
2026-03-17 21:25:36 -0400
412f9f7b12feat: orgs page — full edit (all fields), delete with deal-membership warning, OrgDeals + DeleteOrg endpoints
James
2026-03-17 21:23:29 -0400
83a3a43bfffeat: edit org from deal — PATCH /orgs/{dealOrgId} updates org details + role; full field set in ListDealOrgs response
James
2026-03-17 21:17:23 -0400
df096438e3fix: addManualPerson shows error when name+email empty; fix duplicate id=templateList
James
2026-03-17 21:08:15 -0400
875593c0c2feat: remove org from deal — ⋯ menu on org card with Permissions + Remove from deal
James
2026-03-17 21:01:19 -0400
8dfd8c8b1dfeat: deal name field in wizard step 1; inline validation errors on required fields; no more alert() dialogs
James
2026-03-17 16:57:03 -0400
cd2b67edd2feat: template system — save/load request templates in DB; Use Template button; wizard uses ImportTemplate; save-as-template after import
James
2026-03-17 15:21:50 -0400
4a7698ed20fix: reset all org form fields on open/close — stale data from previous org was polluting second org entry
James
2026-03-17 14:10:08 -0400
ec7b4c9706fix: AddOrgToDeal accepts no domain (derives from website); frontend derives domain fallback from website field
James
2026-03-17 13:36:35 -0400
ec0b60d44cfix: CreateSection/CreateRequest/CreateRequestList now use lib.EntryWrite — no more raw DB calls in handlers
James
2026-03-17 13:21:49 -0400
eb37f682ebchore: auto-commit uncommitted changes
James
2026-03-17 00:01:24 -0400
912fd55bf3feat: delete project, seller logos on cards, org reuse on scrape
James
2026-03-16 19:22:39 -0400
fe7543a0c8chore: auto-commit uncommitted changes
James
2026-03-16 18:02:01 -0400
52edadab72chore: auto-commit uncommitted changes
James
2026-03-16 06:02:44 -0400
bfade7a86fchore: auto-commit uncommitted changes
James
2026-03-16 00:01:27 -0400
379a79bc9dchore: auto-commit uncommitted changes
James
2026-03-15 06:02:11 -0400
dce2728bdbfeat: permissions modal — replace folder dropdown with per-list checkboxes; fix savePermissions body
James
2026-03-15 00:45:59 -0400
9be3c41493fix: permissions button broken for new orgs — store orgs in JS map, pass only ID in onclick (same apostrophe/JSON escaping bug)
James
2026-03-15 00:07:32 -0400
110d44e238feat: add ⋯ menu to request_list and section rows — rename, delete, add section/request
James
2026-03-14 23:52:27 -0400
e146deb517fix: UpdateEntry preserves existing parent/type/depth; import list sort_order; CreateSection dynamic depth
James
2026-03-14 23:44:34 -0400
1645061932fix: menu buttons broken when title contains apostrophes — use showAttachModalById to avoid inline onclick escaping issues
James
2026-03-14 23:39:17 -0400
cec6841938feat: auto-summarize long requests in Summary View; smarter placeholder text
James
2026-03-14 19:51:59 -0400
c2ddca03b7fix: created_at must be UnixMilli not RFC3339 string — was silently dropping new list/section/request from tree
James
2026-03-14 19:26:30 -0400
f06cce9089feat: inline add section/request in tree; fix New List sort_order; Import List rename; + Section/+ Request buttons on list rows
James
2026-03-14 19:16:22 -0400
ce2c68634dfeat: create request list manually; larger action buttons; Summary View/Detailed View toggle
James
2026-03-14 18:42:21 -0400
2f25eceac7chore: auto-commit uncommitted changes
James
2026-03-12 18:02:10 -0400
19fccab7fdredesign: request detail — card-based layout, max-w-4xl centered, proper hierarchy, empty state
James
2026-03-12 05:11:07 -0400
51928a1cdcfix: request detail — full width, response+discussion side by side, buyer preview-only, header breadcrumb
James
2026-03-12 05:06:42 -0400
58023f464credesign: request detail — single column, request→response→discussion, project name in breadcrumb
James
2026-03-12 05:03:15 -0400
d3f3360c48fix: role restrictions use localStorage fallback; request text body size not h1 bold
James
2026-03-12 04:54:42 -0400
e197bb9526fix: applyRoleRestrictions was called but never defined — was causing Error loading request
James
2026-03-12 04:51:25 -0400
0e11ba2ba1fix: buyer view — hide upload/mark answered/compose; fix duplicate request text; tighten title size
James
2026-03-12 04:36:24 -0400
25f46d5f66fix: rebuild with SetTestRole handler — service was running stale binary
James
2026-03-12 04:25:52 -0400
f6632dddfcfix: add test role select to sidebar — was missing from template
James
2026-03-12 04:20:17 -0400
84f8350700feat: server-side test role — PUT /api/admin/test-role writes to session, middleware injects into context
James
2026-03-12 03:45:39 -0400
e89b4e5a5cfeat: test role switcher in sidebar (admin only) — amber banner when impersonating
James
2026-03-12 03:19:37 -0400
d19ce5e8fafix: org cards clickable — store orgs in JS map, pass entry_id to edit modal
James
2026-03-12 03:04:48 -0400
62ce5266b7fix: button text visible on Steel/Brutalist; org list redesign — row layout, sharp corners
James
2026-03-12 02:57:53 -0400
909ce97aeaui: bump base font 13→14px; request table stays 13px
James
2026-03-12 02:56:05 -0400
b402d64cb9feat: org edit modal — click card to edit name/domains/role/website/desc; PUT /api/orgs/:id
James
2026-03-12 02:53:23 -0400
bbce4cf36afix: orgs page — read o.name/role/domains directly from API response, not data_text
James
2026-03-12 02:49:16 -0400
35f6279d56ui: reduce top padding on project page
James
2026-03-12 02:45:44 -0400
fdcc1b96e3fix: admin link — inline script hides before paint, no flash
James
2026-03-12 02:44:40 -0400
28189e17d1ui: status+Import+Summary on tab line; Summary brighter; Admin pinned to sidebar bottom
James
2026-03-12 02:42:55 -0400
449a902b4dui: project name full white; Org tab → Parties; Summary toggle inline with tabs
James
2026-03-12 02:40:01 -0400
a9d40a31b5ui: custom project switcher dropdown — no native select
James
2026-03-12 02:37:04 -0400