Every build of every file in the suite, newest first, straight from the BUILD stamp each file carries on its first lines. Regenerated at every SHIP by tools/build-whats-new.py — nothing to maintain by hand. Search by file name or by anything in a stamp (a collection, a person, a feature).
v1.1 +location — with id-photo.html v2.0 My NYCID Card (MJ 10-30: the scan lists all of a staff member's current contact information): a Location row (the card's new site field) between the phones and LinkedIn, and the same line as a NOTE in the saved vCard.…
my-card.html2026-10-30 14:30 ETcurrent build
v1.1 → id-photo.html — MJ 10-30 ("change the photo upload to the card we have listed on the wire… let the contact card continue to live on the wire too"): the 🪪 My Card pill on The Wire still opens this address, and this page now hands straight off to…
id-photo.js2026-10-30 14:30 ETcurrent build
+saved event r3 — for id-photo.html v2.0 My NYCID Card (MJ 10-30): after a photo saves, the tool fires window event nycid-idphoto-saved {email, path} so the page around it can copy the new photo onto the staff_vcards card record without a reload. One line;…
id-photo.html2026-10-30 14:30 ETcurrent build
v2.0 MY NYCID CARD — MJ 10-30 ("for the NYCID photo upload, I would like that to be changed to the card that we have listed on the wire… upload their photo and give us all of their current contact information and title so that their new ID will list all of…
v2.8 corrected resend — MJ 10-30 11:12 ("I have to resend all the ones that the maps didn't load on but I don't want to confuse Cathy — add a resend notice with correction so Cathy sees it's the additional send"). A month that already went to fiscal now sends…
v1.8 the not-yet-completed report — MJ 10-30 10:45 ("pull a report of who hasn't completed it yet to send to C-suite and senior directors"): two buttons on the executive bar. 📄 Not-yet report (PDF) — letter-size, NYCID header, date/time, counts, then one row…
worklog.html2026-10-30 11:35 ET
v6.28 · r646: travel v2.7 — ROOT CAUSE of no maps (Google geocoder TIMEOUT in the team's browsers); Photon + Nominatim fallbacks, Re-route fills 0.0 miles.
travel-reimbursement.html2026-10-30 11:30 ET
v2.7 maps without Google — ROOT CAUSE from Jasmine's packet PDF (MJ 10-30 10:38 "the maps is not working for anyone"): every map page read "Could not locate enough stops (1 not found). (TIMEOUT)" and 0.0 miles — the Google Maps JS geocoder never answers in…
worklog.html2026-10-30 11:08 ET
v6.27 · r645: privacy-training v1.7 — review table before every notice send; same-last-name current records flagged and pre-unticked.
privacy-training.html2026-10-30 11:05 ET
v1.7 review every recipient — MJ 10-30 10:34 ("jsaldana@ did it and I see the log but she got the email — double check the send, the pill says 42"): the notice no longer sends off a confirm box. ✉ Send opens a review table of every recipient as of that second…
worklog.html2026-10-30 10:55 ET
v6.26 · r644: privacy-training v1.6 — 🔗 Link record (completed under another address) · 🚪 Left NYCID · ↩ restore.
privacy-training.html2026-10-30 10:50 ET
v1.6 fix the list by hand — MJ 10-30 10:28 ("remove people who have left NYCID, or who have the wrong details — Tara M completed under thoward@ but tmuglia@ keeps getting the not-done message"). Two buttons on every Not-yet-completed row: 🔗 Link record — type…
worklog.html2026-10-30 10:32 ET
v6.25 · r643: travel v2.6.1 — hidden presets row returns when a new preset ships.
travel-reimbursement.html2026-10-30 10:30 ET
v2.6.1 presets row comes back — MJ 10-30 10:11 ("I don't see ready made packages"): the ✕ hide from 10-29 stored a flag that hid the ▸ Ready-made packages toggle for good on that device, so the new Jasmine preset was invisible. The flag now records WHICH…
v2.6 per-day tolls + Jasmine Walker package — MJ 10-30 09:53 ("create a package for Jasmine Walker — 647 Columbus Ave, start/return 109 Rhine Ave, 8/17 to 8/20/26" with the E-ZPass list, three lot receipts and the 8/20 reservation). Until now a package…
worklog.html2026-10-30 09:10 ET
v6.23 · r641: sessions v1.6.2 + functions-zoom v1.6.2 — ↻ Fetch recording can name the day (re-recorded Part 2 lands on last night's card).
sessions.html2026-10-30 09:05 ETcurrent build
v1.6.2 fetch another day’s take — MJ 10-30 08:51 (re-recording Part 2 this morning): ↻ Fetch recording now also asks WHICH DAY (defaults to the session date); another day is saved as zoom.recDate and zoomSync v1.6.2 pulls that day’s instance onto this same…
worklog.html2026-10-30 08:50 ET
v6.22 · r640: privacy-training v1.5 — notice re-reads live before sending, counts alias completions, WHY column.
privacy-training.html2026-10-30 08:45 ET
v1.5 the notice never goes to someone who is done — MJ 10-30 08:21 ("42 left to go but the last message definitely went to some people who already completed it"). Two holes closed: (1) ✉ Send the training notice emailed the "Not yet completed" list as it…
Thursday, October 29, 2026 35 builds
worklog.html2026-10-29 19:45 ET
v6.21 · r639: travel v2.5 — maps for legacy months (geo shapes, stop field names, tri-state geocode box, 🗺 Re-route maps). r638: HOTFIX wlg-lab v1.18.1 (r637 broke ▶ Present — deck opened off-screen). r637: wlg-lab v1.18 🎵 Music while we wait (YouTube panel…
travel-reimbursement.html2026-10-29 19:40 ET
v2.5 maps for legacy months too — MJ 10-29 19:13 ("I did Miya's travel and it didn't print any maps. we're back here again — I think it's because she did them on legacy?"). Three real causes, all closed: (1) a legacy trip can carry a geo in another shape…
wlg-lab.html2026-10-29 19:20 ETcurrent build
v1.18.1 HOTFIX — r637's music CSS added .deckwrap{position:relative} after the original position:fixed, so ▶ Present / Orientation opened the deck off-screen (MJ 18:01 "the orientation button now doesn't work"; team fell back to r636). Line removed; the music…
wlg-lab.html2026-10-29 19:05 ET
v1.18 🎵 Music while we wait — MJ 10-29 17:51 ("put a quick YouTube interface into the wlg-lab so when we are waiting to start the prezi we can play some music — on the top bar next to full screen"): a 🎵 Music button sits in the deck bar left of ⛶ Full screen.…
sessions.html2026-10-29 18:55 ET
v1.6.1 — the 🔇 line also shows 💬 chat → Everyone once zoomSync v1.6.1 has set the host's chat default to Everyone (publicly); MJ 17:47: 'hosts and co-hosts' chat with no real co-host in the room = host-only DMs.
sessions.html2026-10-29 18:40 ET
v1.6 🔇 Quiet joins + co-host check — MJ 10-29 17:44 ("set it so it never makes noise when people are coming and going — turn it off from Solutions" · "I added so many co-hosts but no one was a co-host — license issue?"): every card with a Zoom meeting now…
wlg-lab.html2026-10-29 18:10 ET
v1.17.1 🆘 In a jam strip on the Facilitator tab — MJ 10-29 17:39 ("add the backup attendance to the WLG Lab for facilitators — somewhere smart for when we are in a jam"): a red-bordered strip sits right under the ▶ Present buttons, always open: the no-sign-in…
comms-texts+find-wlg r2 — MJ 17:25 (screenshot): the floating 🎙 The Wire pill sat on top of the 💬 Texts Send button; the reply row now keeps 190px clear on the right so Send lands left of the pill (full width again under 700px); the corner badge follows this…
comms-texts+find-wlg — MJ 10-29 17:10 ("the search is not working… to the comms center can we add a text space like we have on the community connect"). (1) 🔎 FIND A PARTICIPANT searched only the compliance_tracking mirror (SYEP 2026 — empty on Solutions,…
worklog.html2026-10-29 17:05 ET
v6.13 · r631: cuny-classes v1.1 — completed-roster upload assigns on the spot.
cuny-classes.html2026-10-29 17:00 ETcurrent build
v1.1 upload a COMPLETED roster — MJ 10-29 15:49 ("the team did it already — I need a way to upload a completed roster", shape.csv): the same drop now reads the filled-in columns too — Course · Instructor Name · Section · Scheduled Class Time — and assigns…
worklog.html2026-10-29 16:50 ET
v6.12 · r630: travel v2.4.1 — send never blocked by the map check.
travel-reimbursement.html2026-10-29 16:45 ET
v2.4.1 the send is never blocked — MJ 10-29 15:38 ("Could not send: Send cancelled — fix the trip addresses, then send. There is nothing to fix"): the v2.2 pre-send map check popped a browser confirm and treated Cancel as an error. Gone. The check now only…
worklog.html2026-10-29 16:10 ET
v6.11 · r629: NEW cuny-classes.html v1.0 (firestore_v113).
cuny-classes.html2026-10-29 16:00 ET
NEW v1.0 CUNY class assignments — MJ 10-29 15:03 ("I next need an interface to figure out the classes for CUNY… upload a roster of youth and then sort and assign them to the classes"): one Solutions page for the Kingsborough (CUNY) course sections. (1) 🏫…
worklog.html2026-10-29 15:45 ET
v6.10 · r628: travel v2.4 — quiet preset, repeat a trip on more days, wider Legacy scan.
travel-reimbursement.html2026-10-29 15:40 ET
v2.4 quiet preset · repeat a trip on more days · wider Legacy scan — MJ 10-29 14:51 ("why is the top still saying Adeola… was already created… only one claim from legacy and it wasn’t Jereinny’s… it was the same route 6 times"): (1) a ?pkg= link whose package…
worklog.html2026-10-29 15:15 ET
v6.08 · r626: travel v2.3 — All by default, preset guard, Legacy summer-claims pull.
travel-reimbursement.html2026-10-29 15:10 ET
v2.3 the list shows everything, the preset stops reloading, summer claims pulled from Legacy — MJ 10-29 13:43 (screenshot: "I sent Steven Gross' July and it's not even showing… I don't see Possible duplicates… I don't want 📦 Loaded Adeola… at the top… don't…
worklog.html2026-10-29 14:45 ET
v6.07 · r625: travel-reimbursement v2.2 — duplicate records + merge, grouped desk, maps never missing, presets hideable.
v2.2 duplicates, the desk list, maps that never go missing, presets you can hide — MJ 10-29 13:31 (Cathy + Jereinny: "her travel packet has only Site Visit 6 and there are no maps… I submitted 5 reimbursements… the site is no longer available"; MJ: "I can't…
wlg-lab.html2026-10-29 14:30 ET
v1.17 ORIENTATION DECK IN THE EDITOR — MJ 10-29 13:56 ("add the same edit interface for the orientation that we have for the W1 to W5 slides so I don’t have to keep asking"): the Facilitator 🎞 deck editor now has Orientation · Part 1 and Part 2 chips beside…
v1.5 📊 Zoom polls from Sessions — MJ 10-29 13:14 ("if there is a way to add poll creation to our sessions app I need to do that too"): the form gets a 📊 Polls box — one poll per block: first line the poll title, "Q:" the question, "-" lines the choices, blank…
wlg-lab.html2026-10-29 13:40 ET
v1.16 Part 2 edits for tonight + AGVEP budget — MJ 10-29 13:14 (built on r623’s v1.15): (1) NEW poll slide right after the Part 2 title: “Have you heard of or read The 7 Habits of Highly Effective Teens?” Heard of it · Read it · Neither — no right answer; (2)…
worklog.html2026-10-29 11:00 ET
v6.07 · r623 (rebase of the wlg-lab chat’s build onto the CAO chat’s r622 — two chats both minted r622): DONE wlglab-week1-tess (wlg-lab.html v1.15 — Week 1 per Tess’s 10-27 doc + 🔊 Listen) · DONE wlglab-week-decks (Facilitator ▸ 🎞 Week decks editor, Week 1…
wlg-lab.html2026-10-29 10:00 ET
v1.15 WEEK 1 PER TESS + WEEK DECKS IN THE APP + LAB AUDIT — Tess 10-29 via MJ: (1) Week 1 Lab rebuilt to her 10-27 doc: Rewatch the video (her pick, xEcxG239dPY) · My Circles (4-step: list ≥5, tap-sort into the two circles, flip one, focus; closing line) ·…
worklog.html2026-10-29 09:55 ET
v6.06 · r622: DONE cao-card-all-periods (cm-cao-dashboard.html v1.9 — person card edits every pay period, ↓ forward / ⇕ all, card-local period, ⬆ Emails sheet Ee Code→email). Firestore rules: N/A.
v1.9 person card = all-periods editor + Ee Code→email sheet — MJ 10-29 09:21 (Brea Clarke card: "I need to toggle between the dates for the person that needs a signature… change all three allocations by time period, I can't do it straight away… also some…
worklog.html2026-10-29 09:00 ET
v6.05 · r621: DONE attend-makeup-visible (requirements.html v3.30 — 🎥 Attendance reads the make-up quiz docs; Part 1/2 cells say ✅ make-up complete / ⚠✖ NOT COMPLETE; make-up tile + filter). Firestore rules: N/A.
requirements.html2026-10-29 08:55 ETcurrent build
v3.30 make-up shows on 🎥 Attendance — MJ 10-29 08:39 ("last night we launched the orientation make up — I do not see that any of the kids did it. Maybe the interface is not telling us so. Annotate NOT COMPLETE if it is not done"): the tab was blind to the…
worklog.html2026-10-29 08:45 ET
v6.04 · r620: DONE cao-te-by-individual (cm-cao-dashboard.html v1.8 — ✍️ Sign Center tabs: 📅 By pay period / 👤 By individual — every person across every pay period, strips + summaries, Send missing, attention tiles, stay-on-tab). Firestore rules: N/A.
cm-cao-dashboard.html2026-10-29 08:40 ET
v1.8 Sign Center by pay period OR by individual — MJ 10-29 08:22 ("Time and Effort needs to be done both by pay period and by individual… the existing pay period layout is good to go — now I need another choice of workflow: look at all individuals that need…
gate-share r1 — MJ 10-28 10:28 (“WTF… I asked it to be done forever ago”): ONE sign-in for the index and The Wire. The Wire's own compat app is now named nycid-gate — the same name index.html's staff gate (gate-on-solutions r1, same project, same apiKey) uses…
nycid-calendar.js2026-10-28 11:15 ETcurrent build
gate-share r1 — looks for the shared nycid-gate app first (team-hub.js gate-share r1), then nycid-team-hub as before; nothing else changed. Firestore rules: N/A.
index.html2026-10-28 11:15 ETcurrent build
gate-on-solutions r1 — MJ 10-28 10:28 (screenshot: the staff gate still said “continue to syep-2026-job-placement.firebaseapp.com” — “we changed everything to solutions”; the long-open wire-one-signin item). The NYCID Staff Sign-In gate (app nycid-gate) now…
worklog.html2026-10-28 10:35 ET
v6.02 · r617: wire-push config doc renamed team_profiles/push-config (__push_config__ is a reserved id — MJ's 09:58 screenshot).
team-hub.js2026-10-28 10:35 ET
wire-push r1.1 — MJ 09:58 (screenshot: “Could not save the key: Resource id __push_config__ is invalid because it is reserved”): Firestore refuses ids wrapped in double underscores. The Web Push key now lives in team_profiles/push-config (same owner rule,…
worklog.html2026-10-28 10:20 ET
v6.01 · r616: DONE wire-signin-loop + wire-push (team-hub.js, NEW firebase-messaging-sw.js, NEW tools/functions-wire-push); OPEN wire-push-deploy (VAPID key · paste in 🔔 Alerts · deploy functions:wirepush). Badge label caught up (v5.99 → v6.01).
team-hub.js2026-10-28 10:20 ET
same-origin-auth r1 + wire-push r1 — MJ 09:42 (screenshot: staff stuck on “The full-page sign-in came back without a signed-in account → Try again”; Android: NYCID app icon shows no notification and no number). (1) THE LOOP: the Wire's full-page Google…
v1.0 wire-push r1 — NEW suite file (the old /firebase-messaging-sw.js only ever lived on nycid-syep, hand-dropped, Legacy key). Service worker for the installed NYCID app on apps.nycid.org: receives the wirePush Cloud Function's data-only FCM messages while…
wlg-makeup.js2026-10-28 09:45 ETcurrent build
r2 Step 2 is the Part N make-up QUIZ — MJ 10-28 09:23: Step 2 now reads “Take the Part N quiz” per part (wlg-lab.html?quiz=o1|o2, wlg-lab v1.14: 10 multiple-choice from that part’s recording, need 8, plus one written line) and unlocks per part once THAT part…
wlg-lab.html2026-10-28 09:40 ET
v1.14 Make-up QUIZ per part — MJ 10-28 09:23 ("So there is no quiz for the first part of the orientation?… Yes for both, do it quickly"): the one mixed 7-question written sheet (o-makeup) is retired in favour of a 10-question multiple-choice make-up quiz PER…
worklog.html2026-10-28 09:15 ET
v5.99 · r614: MAKE-UP ORIENTATION — wlg-makeup.js r1 banner on youth-dashboard v2.21, zoomSync v1.4 pulls the cloud recording back, sessions v1.4 recording on the card, wlg-lab v1.13 reads it + deep links.
worklog.html2026-10-28 09:05 ET
v6.00 · r615: travel-reimbursement.html v2.1.1 — receipts file on the month their date says; → move button for ones on the wrong month (Adeola: move the three July receipts off August).
wlg-lab.html2026-10-28 09:05 ET
v1.13 recording flows in from Sessions + deep links from the MISSED ORIENTATION banner — MJ 10-28 08:19: (1) the orientation recording no longer has to be pasted in the Facilitator grid: sess(k).rec falls back to the matching sessions.html doc's…
travel-reimbursement.html2026-10-28 09:05 ET
v2.1.1 receipts find their month — MJ 08:52 screenshot: six receipts (7/15–8/19) dropped on the month card all sat on the one open month. Now a receipt dropped on a month whose file-name date belongs to another month is filed on THAT month's claim (the…
v2.21 MISSED ORIENTATION banner at the very top — MJ 10-28 08:19 ("a very clear access point at the top of their dashboard showing them that they missed orientation and they need to watch the orientation now and answer the questions in order to get full…
wlg-makeup.js2026-10-28 08:55 ET
NEW r1 MISSED ORIENTATION banner — MJ 10-28 08:19 ("an interface that connects directly to the youth dashboard… a very clear access point at the top of their dashboard showing them that they missed orientation and they need to watch the orientation now and…
sessions.html2026-10-28 08:50 ET
v1.4 Recordings on the card — MJ 10-28 08:19 ("does solutions have quick access to the recording on the zoom cloud… or do I have to go get it"): every past session now carries a 🎞 Recording line. zoomSync v1.4 (zoomRecordings, every 20 min) pulls the cloud…
worklog.html2026-10-28 08:20 ET
v5.98 · r613: travel-reimbursement.html v2.1 — 💼 Budget card (11 lanes + ✂ split to 5), substantiation block in the fiscal email + packet cover, Send to Cathy OR Christina.
travel-reimbursement.html2026-10-28 08:20 ET
v2.1 which budget + split + substantiation + Cathy/Christina — MJ 08:02 ("missing 1 big thing — what budget it goes into… a drop down with all the programs and a way to create a split like we have on the receipt uploader… substantiation instructions into the…
worklog.html2026-10-28 07:50 ET
v5.97 · r612: travel-reimbursement.html v2.0.1 — Compute timeouts + 📏 Fill missing miles (travel-adeola: package landed with 0 mi, fill from the month report).
travel-reimbursement.html2026-10-28 07:50 ET
v2.0.1 miles never silent — MJ 07:42 ("It's not computing the miles": the Adeola package was created with 0.0 mi, tolls fine). (1) Google Maps SDK load and each geocode call now time out at 8 s and fall through to the hub coordinates / cache; OSRM aborts at…
v2.0 ON SOLUTIONS — MJ 10-28 07:09 ("Look at the travel reimbursement apps from legacy… add or update the app on Solutions… move everything off of legacy"). REBUILT as one Solutions page in the deco skin: reads/writes nycid-solutions (travel_log ·…
mc-schedule — SCHEDULED EMAILS + TEXTS, for real this time (MJ 10-28 06:24: "I tried last year to get the system to let me schedule emails and texts and I never got it to work … I really need to be able to set things up to send at different times"). The 07-13…
worklog.html2026-10-28 06:40 ET
v5.94 · r609: DONE mc-image-drop (admin-dashboard.html — drop a png/jpg into a Message Center send; presets as a drop-down).
admin-dashboard.html2026-10-28 06:30 ET
mc-image-drop+preset-menu — MJ 10-28 06:10 on the Message Center WLG send: (1) 🖼 DROP A PICTURE: a drop zone under the text box takes a png/jpg (drop or choose, 5 MB max), uploads it to Storage (attachments/comms-reply/_templates/mc_<ts>_<name>, the path the…
v3.28.1 texts never carry button syntax — MJ 20:05: a text went out with https://apps.nycid.org/recap|#1A326B (the email button syntax pasted into the SMS box), which 404s. Bulk texts now run through bkPlain(): [[label]](url|#color) becomes "label: url", so a…
v3.28 Attendance → Bulk Outreach: message only who was there — MJ 19:17 ("email only the kids who made it, not all the kids"): Bulk Outreach gets four 🎥 targets (checked in to / missed Orientation Part 1 and Part 2, enrolled only, from the Lab check-ins), a ✉…
requirements.html2026-10-27 19:40 ET
v3.27.1 Attendance: school filter + pills fix — MJ 19:17: (1) the WLG / AGVEP pills blanked the page — they used the page’s .tabs class so the global tab switcher also fired on them and hid every section; they are their own .atpills now. (2) School column + a…
worklog.html2026-10-27 19:30 ET
v5.91 · r606: DONE tr-attendance-tab (requirements.html v3.27 — 🎥 Attendance tab, Lab live check-ins against the roster).
requirements.html2026-10-27 19:25 ET
v3.27 🎥 Attendance tab — MJ 10-27 19:07 ("a tab for attendance completions added to the Requirements tab"): new tab reads the cycle’s wlg_lab_progress live check-ins (the one-tap Zoom-chat link, staff marks, "did it on my own" and recording credits from the…
worklog.html2026-10-27 19:05 ET
v5.90 · r605: DONE recap-onepager (wlg-orientation-recap.pdf in the suite + /recap short link, _redirects r16; post-orientation text + email drafted).
worklog.html2026-10-27 18:55 ET
v5.89 · r604 (rebased on MJ's r603): DONE sessions-cohosts (sessions.html v1.3 + tools/functions-zoom v1.3 — Co-hosts field → Zoom alternative hosts); OPEN sessions-cohosts-deploy (MJ: redeploy zoomSync).
sessions.html2026-10-27 18:40 ET
v1.3 Co-hosts — MJ 18:27 ("can we also add co-hosts to the set up?"): a Co-hosts field on the form (comma-separated @nycid.org emails) saved as sessions.cohosts and sent by zoomSync as Zoom alternative hosts (they can start the meeting and get host controls;…
worklog.html2026-10-27 17:20 ET
v5.88 · r603 (rebased on MJ's r602): DONE attend-backup (NEW attend.html — backup orientation attendance form, apps.nycid.org/attend, firestore_v109).
attend.html2026-10-27 17:10 ETcurrent build
NEW v1.0 backup attendance form — MJ 10-27 16:58 ("one back-up play for attendance… a simple form JIC — we'll use it off line afterwards — just name, email and Application OL # if you know it"): apps.nycid.org/attend (_redirects r15). No sign-in. Name · email…
worklog.html2026-10-27 15:50 ET
v5.87 · r602: DONE wlglab-agvep-4h (wlg-lab.html v1.12 — AGVEP orientation = 4 h with its own 1-hour Lab set; NYCID sessions Tuesdays 6 PM; CUNY schedule pending on the slides).
wlg-lab.html2026-10-27 15:45 ET
v1.12 AGVEP orientation = 4 hours + Tuesdays 6 PM + CUNY schedule pending — MJ 15:24/15:25: (a) AGVEP orientation is 4 hours, not 5: both live parts (3 h) + about 1 hour of Virtual Lab orientation work (I understand · Get set up · Know-how check 30 min + the…
worklog.html2026-10-27 15:30 ET
v5.86 · r601: DONE wlglab-orient-2h (wlg-lab.html v1.11 — WLG orientation Lab work trimmed to 2 hours; Create cut, Saw start moved to Week 1; slides 9 / 15 / 17 / P2-22).
wlg-lab.html2026-10-27 15:25 ET
v1.11 WLG orientation Lab work cut to 2 hours — TD 15:08 via MJ: orientation must total 5 hours = two 90-minute live parts (3 h) + 2 h of Virtual Lab work (was 3 h: 40 + 60 + 80). Tasks trimmed, not just minutes: I understand · Get set up · Know-how check 40…
worklog.html2026-10-27 15:00 ET
v5.85 · r600: DONE wlglab-qr-1027 (wlg-lab.html v1.10.1 — QR on the Facilitator links panel + on the printed Check-in slides; PDFs re-exported with RIVER1 / RIVER2).
wlg-lab.html2026-10-27 14:55 ET
v1.10.1 QR on the Facilitator links panel + on the printed Check-in slides — MJ 14:40 ("it’s not letting me do a QR code") + 14:42 ("just add them to the prezi"): the printed / PDF Check in now slides now carry the session’s real QR + link when its code is…
worklog.html2026-10-27 14:40 ET
v5.84 · r599: DONE wlglab-deck-1027 (wlg-lab.html v1.10 — the seven orientation-deck fixes from MJ’s 10-27 13:26 list; Part 1 + Part 2 PDFs re-exported).
wlg-lab.html2026-10-27 14:35 ET
v1.10 deck fixes for tonight + Thursday (MJ 10-27 13:26 list) — (1) Direct deposit slide: countdown dropped, leads with the deadline date from ddDate ("Thursday, October 29"), right for the recording; (2+6) both Check in now slides in print/review mode no…
worklog.html2026-10-27 14:30 ET
v5.83 · r595: DONE dd-log-unretired (admin-dashboard.html — direct_deposit_requests out of the retired set; 🔁 Rebuild from sent mail).
admin-dashboard.html2026-10-27 14:30 ET
dd-log-unretired+rebuild — MJ 10-27 13:47 ("the message center is now logging all sends but this page isn't loading them — we sent 3"): ROOT CAUSE found on the bytes — direct_deposit_requests was still in the 10-05 SYEP26_RETIRED list, so this page never sent…
v0.2 +📖 Playbook lens — MJ 10-27 14:03 ("Where are all the items I gave you?"): the Spin.docx content was only visible on a case file, so an empty board showed none of it. NEW 📖 Playbook lens: all five stages side by side (what it looks like · what we do ·…
worklog.html2026-10-27 14:15 ET
v5.82 · r594: DONE sms-fn-mediaurl (no function change needed — sendTwilioMessage reads mediaUrls; admin-dashboard.html now writes that field).
admin-dashboard.html2026-10-27 14:15 ET
mc-mms-field-name — MJ 10-27 13:38 (uploaded nycid-solutions-sms v1.2.2): the live sendTwilioMessage has supported MMS since v1.0 — it reads `mediaUrls` (array) and posts each as MediaUrl to Twilio — but the 13:05 build wrote `mediaUrl` (singular), so the…
cmsi-dashboard.html2026-10-27 14:10 ET
v0.1.1 desk list — MJ 10-27 13:59 ("for now just do mpenn@nycid.org and fpolanco@nycid.org they have access to all docs"): DESK = mpenn@, fpolanco@, mdevito@; anyone else @nycid.org gets the "this desk belongs to the CMSI team" gate. No other change.…
cmsi-dashboard.html2026-10-27 14:05 ET
NEW v0.1 CMSI Spin-the-Block desk — MJ 10-27 13:51 (uploaded Spin.docx: "fast dashboard for the CMSI director, outreach workers, and violence interrupters… case management built up around [the Spin the Block Spectrum] and also a place to edit the ideas — a…
worklog.html2026-10-27 14:00 ET
v5.81 · r593: DONE sws-link-title (see-what-they-see.html v2.0.1 — link card title matches the youth page).
v2.0.1 link-card title — MJ 10-27 13:28 (test text still shows a "See What They See" link card): the phone builds that card from the page <title>, so the title is now the youth page's own, "My WLG · NYCID Solutions" — a test text's link card now reads exactly…
worklog.html2026-10-27 13:50 ET
v5.80 · r592: DONE mc-test-same-button (admin-dashboard.html — the 🧪 test email wears the same 📲 Open my dashboard button the kid gets).
admin-dashboard.html2026-10-27 13:50 ET
mc-test-same-button — MJ 10-27 13:12 (test email screenshot: "it says See What They See — that should not be going to the kid"): no kid ever got it — only the 🧪 test (to syep@ + you) carried that button; but a test must look exactly like the real send, so the…
youth-dashboard.html2026-10-27 13:40 ET
v2.20 👀 staff preview mode — MJ 10-27 13:07 ("the see what they see is pulling up old content"): see-what-they-see.html v1.0 only showed the 10-19 🤝 commitment banner; now it frames THIS page. youth-dashboard.html?preview=1&init=WLG|AGVEP, opened by a…
worklog.html2026-10-27 13:40 ET
v5.79 · r591: DONE sws-real-dashboard (see-what-they-see.html v2.0 frames the real youth-dashboard.html v2.20 in staff-preview mode; apps.nycid.org/see via _redirects r14; Message Center tests use the short link + sample youth).
see-what-they-see.html2026-10-27 13:40 ET
v2.0 the REAL dashboard — MJ 10-27 13:07 ("the see what they see is pulling up old content"): v1.0 only showed the 10-19 🤝 commitment banner in three fake phone frames. v2.0 frames youth-dashboard.html itself in 👀 staff preview mode (youth-dashboard v2.20:…
admin-dashboard.html2026-10-27 13:40 ET
mc-test-short-link — MJ 10-27 13:09 (test text screenshot: the long see-what-they-see.html URL, a real kid's first name): the 🧪 test's {{dashLink}} is now the SHORT https://apps.nycid.org/see (_redirects r14) and every test merges the sample youth (Jordan…
worklog.html2026-10-27 13:20 ET
v5.78 · r590: DONE mc-test-to-syep (admin-dashboard.html — every Message Center WLG test also emails syep@nycid.org; test button = See What They See link).
admin-dashboard.html2026-10-27 13:20 ET
mc-test-to-syep — MJ 10-27 12:59 ("on the test button can you also create a test link? or set it to fire an example test to syep@nycid.org also"): the 🧪 test on the Message Center WLG lane now ALWAYS emails syep@nycid.org (your email is optional, added as a…
worklog.html2026-10-27 13:05 ET
v5.77 · r589: DONE mc-tonight-snapshot (admin-dashboard.html — 🎥 Orientation TONIGHT · snapshot preset, [IMG] in emails, live email preview, 🖼 Picture on the text = MMS mediaUrl); NEW OPEN sms-fn-mediaurl (sendTwilioMessage must pass mediaUrl through).
admin-dashboard.html2026-10-27 13:05 ET
mc-orientation-tonight-snapshot — MJ 10-27 12:47 ("another email and text blast that has just that top part of the screen as a snapshot… Orientation tonight — go to your dashboard and click the link, join… give yourself 10 minutes to get ready to log in… is…
youth-dashboard.html2026-10-27 11:50 ET
v2.19 🪜 Hats & Ladders dial for AGVEP — MJ 10-27 10:35 ("add Hats and Ladders to the AGVEP participant dashboards as a Dial — I want them to have to upload their certificates as they go"): a SEVENTH gauge, 🪜 Hats & Ladders, mounts for…
worklog.html2026-10-27 11:50 ET
v5.76 · r588: DONE yd-hl-dial (youth-dashboard.html v2.19 — 🪜 Hats & Ladders dial for AGVEP youth, 8 certificates with per-item upload → youth_docs/{personId}/hl_{key}/ + hl_certificates stamp; firestore_v108); NEW OPEN yd-hl-rules (publish v108),…
worklog.html2026-10-27 11:40 ET
v5.75 · r587: DONE cao-sign-dates (cm-cao-dashboard.html v1.7 — 📆 Signing dates seeded from JO's FY26 sheet, printed on the forms, sign-by / overdue in the Sign Center); NEW OPEN cao-sign-dates-save (JO to 💾 Save the table on the live desk).
cm-cao-dashboard.html2026-10-27 11:35 ET
v1.7 signing dates set in stone — MJ 10-27 10:15 (uploaded Dates_signed-employee_and_supervisor.xlsx: "the dates these reports are supposed to be signed… for the future we'll want to set these in stone… we'll likely need to seed it"): NEW 📆 SIGNING DATES…
worklog.html2026-10-27 11:05 ET
v5.74 · r586: DONE cao-cc-copylinks (cm-cao-dashboard.html v1.6.1 — Cc JO on every T&E send + ⧉ copy signing links).
cm-cao-dashboard.html2026-10-27 11:00 ET
v1.6.1 +cc-JO +copy-links — MJ 10-27 10:07 ("Add a cc to JO option and also add a link cut and paste too"): ✍️ Sign Center header gets ☑ Cc Jessica O'Brien (jobrien@nycid.org, on by default, remembered on this computer) + a box for more Cc addresses — every…
worklog.html2026-10-27 10:45 ET
v5.73 · r585: DONE cao-year-te (cm-cao-dashboard.html v1.6 — whole-year T&E with one signature, send pills on the cards) + sign-upload (sign.html v1.3 — upload a photo of your signature on the signing page).
sign.html2026-10-27 10:40 ETcurrent build
v1.3 +upload-signature — MJ 10-27 09:53 ("make it so you can upload your signature for the signing page"): the Adopt-your-signature modal now has a third way beside Draw / Type — 📷 Upload a photo or scan of your signature (PNG / JPG / WebP, dark ink on light…
cm-cao-dashboard.html2026-10-27 10:40 ET
v1.6 whole-year T&E + send pills on the cards — MJ 10-27 09:53 ("I need to be able to send the whole year and individual — and when they sign I want to only sign once for all — so the sign page needs a summary of the allocations… I want the sign pills added"…
worklog.html2026-10-27 08:25 ET
v5.72 · r584: DONE cao-sign-center (cm-cao-dashboard.html v1.5 — ✍️ T&E Sign Center self-populated from the allocation, one-click Send, live signature status, Resend, progress tiles + bar + by-period table).
cm-cao-dashboard.html2026-10-27 08:20 ET
v1.5 ✍️ T&E Sign Center + progress — MJ 10-27 07:53 ("JO also needs a panel to track the time and effort reports she sends out for signature… a sign center that self-populates with the data and then a one click send to the staff member and then a panel that…
Monday, October 26, 2026 37 builds
worklog.html2026-10-26 16:25 ET
v5.71 · r583: DONE cao-alloc-cards (cm-cao-dashboard.html v1.4 — one card per person, colored split bar + program tiles with the %, ✏️ Edit person name / signing email / left-NYCID / supervisor on salary_allocations.person, 📅 by-period grid); NEW OPEN…
cm-cao-dashboard.html2026-10-26 16:20 ET
v1.4 salary allocation laid out per person + edit names/emails + colored program tiles — MJ 10-26 16:11 ("I do not understand how you laid out the report… we need to be able to edit names and add emails accordingly — Emily Phelps is actually Emily Marks,…
worklog.html2026-10-26 15:36 ET
v5.70 · r582: calendar Join button, Start as host on shared sessions.
sessions.html2026-10-26 15:35 ET
v1.2.2 Start as host on shared sessions — MJ 10-26 15:33 ("why is no start meeting for the 2nd zoom I created?"): a "Same link as…" session copied the join link and passcode but not the host start link, so ▶ Start as host was missing. Now the start link (and…
nycid-calendar.js2026-10-26 15:34 ET
join-button r1 — MJ 10-26 15:33 ("hyper link the zoom or better a button to go right in on the calendar"): an event whose location is a link (Zoom, Kingsborough, any https) shows a ▶ Join button in the card (opens in a new tab) instead of the raw URL; a Zoom…
worklog.html2026-10-26 15:01 ET
v5.69 · r581: Global Calendar on Solutions (nycid-calendar.js).
nycid-calendar.js2026-10-26 15:00 ET
solutions-cutover r1 — MJ 10-26 14:57 (sessions.html mirrored Orientation into org_calendar but the NYCID Global Calendar showed nothing on Oct 27): CAL_PROJECT was still the LEGACY project (syep-2026-job-placement, shut down 10-15), so on any page where the…
worklog.html2026-10-26 14:40 ET
v5.68 · r580: M&T banner off, answered banners at the bottom (youth-dashboard v2.18 · wlg-commit r8).
youth-dashboard.html2026-10-26 14:39 ET
v2.18 M&T banner off · answered banners at the bottom — MJ 10-26 14:38 ("remove the banking events if they are still there and… the commitment banner… at the bottom of the dash we can list banners you responded to"): (1) the 🏦 M&T Bank event banner is no…
worklog.html2026-10-26 14:39 ET
v5.67 · r579: Lab slot walks a series (sessions v1.2.1).
wlg-commit.js2026-10-26 14:38 ETcurrent build
r8 answered banners move to the bottom — MJ 10-26 14:38 ("the commitment banner can be shrunk or better at the bottom of the dash we can list banners you responded to"): when the page hands mount() a doneHost (youth-dashboard v2.18), a youth who has ANSWERED…
sessions.html2026-10-26 14:38 ET
v1.2.1 Lab slot walks the series — MJ 10-26 14:37 (screenshot: Orientation Part 1 and 2 as one Tue + Thu series, "the lab only lets me do 1 part at a time"): pick the FIRST slot and the series fills the rest in order — Orientation · Part 1 → Part 2; Week 1 →…
r7 clearer orientation line — MJ 10-26 14:34 (the team on the youth dashboard: the banner read "Orientation is TOMORROW · Tue, Oct 27 at 6:00 PM — Tue, Oct 27 & Thu, Oct 29"): both the unanswered and the signed banner now say it the team's way — "Orientation…
worklog.html2026-10-26 13:35 ET
v5.65 · r577: sessions days-of-week (v1.2) + functions-zoom v1.2; r574 work restored after the r575/r576 rebase on r573.
sessions.html2026-10-26 13:33 ET
v1.2 days of the week — MJ 10-26 13:32 ("the repeat function needs to have the days of the week"): Repeat is now "for N weeks" + a Days row (Su Mo Tu We Th Fr Sa; the date's own weekday ticks itself). Tick Tue + Thu for 1 week → Orientation Part 1 and Part 2;…
worklog.html2026-10-26 13:30 ET
v5.64 · r576: mc-backfill-result (backfill outcome is an alert + persistent line; 0-doc sms_send_log reported plainly).
admin-dashboard.html2026-10-26 13:30 ET
mc-backfill-result — MJ 10-26 13:25 (screenshot: 📊 panel "Scanned 0 log rows across all time", v107 live): the 🔁 Backfill result line was written into #psl-scan and then OVERWRITTEN by the panel refresh it triggers, so a run could end looking identical to not…
worklog.html2026-10-26 13:10 ET
v5.63 · r575: DONE mc-sendlog-backfill (admin-dashboard.html 13:10 — 🔁 Backfill earlier sends on the 📊 Sent-mail log).
admin-dashboard.html2026-10-26 13:10 ET
mc-sendlog-backfill — MJ 10-26 12:52 ("nothing is showing on either log"): with v107 published the 📊 Sent-mail log is legitimately empty — nothing sent before 12:55 ever reached comms_outreach_log (every write was refused on Solutions) — but every WLG lane /…
dd-wlg-lookup+mc-sendlog — MJ 10-26 12:40 ("we are sending messages but the log is not tracking what's been sent … on the DD it's not recognizing OL numbers from Requirements"). TWO ROOT CAUSES, both from the 10-05 move of this dash onto nycid-solutions. (1)…
youth-dashboard.html2026-10-26 11:56 ET
v2.17.1 TODAY banner — MJ 10-26 11:54 ("the link on the youth' dashboard with one press"): when a session is today it also paints a gold banner at the very top of the dashboard — "Your session is TODAY · 6:00 PM · Orientation · Part 1" with one big Join…
sessions.html2026-10-26 11:52 ET
v1.1 one link, many meetings — MJ 10-26 11:54 ("create the same zoom for more than one meeting — Orientation 1 and 2 same link, provider-led same link for 5 weeks"): (1) Repeat weekly + Create a Zoom meeting now makes ONE recurring Zoom meeting for the whole…
v2.17 📅 Upcoming sessions — MJ 10-26 11:24 GO on the Sessions scheduler ("connect scheduled meetings… to youth dashboards"): a new 📅 Upcoming sessions card under the banners lists the next live sessions for the youth's own program from the sessions collection…
wlg-lab.html2026-10-26 11:30 ET
v1.9 sessions feed — MJ 10-26 11:24 GO on the Sessions scheduler: the Lab now reads its live-session date, time, minutes and Zoom link from the sessions collection (sessions.html, docs with labKey o1 / o2 / w1–w5 and cycle wlg-2026-27, not cancelled) ahead of…
sessions.html2026-10-26 11:28 ET
NEW v1.0 Sessions scheduler — MJ 10-26 08:33 + 11:24 GO ("is there a way to do the same [as the Careers scheduler] for zoom meetings and connect scheduled meetings directly to the Wire and also to youth dashboards… an interface that lets us schedule all of…
worklog.html2026-10-26 08:53 ET
v5.60 · r572: sign-admin.html resend-mail (08:50) folded into the zip.
sign-admin.html2026-10-26 08:50 ETcurrent build
↻ RESEND = the envelope goes out again (MJ 10-26): signerMail()/ccMail() builders shared by Send and Resend — the signer gets the full branded signing email (HTML + text, Review & sign button, sender message, attachments) with a 🔁 'resend of the request first…
worklog.html2026-10-26 08:49 ET
v5.59 · r570: orientation 6:00 PM locked everywhere, 📞 Confirm 6 PM on requirements, orientation-call to-do planted on the Strategy Board, 🧭 Orientation reminder preset in the Message Center; OPEN zoom-sessions-scheduler.
admin-dashboard.html2026-10-26 08:46 ET
mc-orientation-reminder — MJ 10-26 08:33 ("we have decided on the time 6 pm … send reminders today for the mandatory meeting"): the 📤 Message Center WLG lane gets a 🧭 Orientation reminder · TOMORROW 6 PM preset beside 🤝 Commitment banner and 🏦 M&T — short and…
v1.10 orientation-call to-do planted — MJ 10-26 08:33 ("add a to-do on the strategy board assigned to Andrew, Liz, Jereinny, and Andrea to get verbal confirmation from all participants that they will be on the orientation call tomorrow at 6 pm"): ONE fixed-id…
requirements.html2026-10-26 08:43 ET
v3.26 📞 Confirmed for orientation + 6:00 PM locked — MJ 10-26 08:33 ("add a manual confirmed attendance button to all participants on the requirements" + "we have decided on the time 6 pm"). (1) EVERY enrolled youth's roster row gets a one-tap 📞 Confirm 6 PM…
wlg-lab.html2026-10-26 08:40 ET
v1.8.1 orientation nights baked at 6:00 PM — MJ 10-26 08:33 ("we have decided on the time 6 pm — lock that in to all dashboards"): Orientation · Part 1 and Part 2 now DEFAULT to Tue 2026-10-27 and Thu 2026-10-29 at 6:00 PM, 90 minutes, whenever the…
youth-dashboard.html2026-10-26 08:39 ET
v2.16.2 orientation 6:00 PM locked — MJ 10-26 08:33 ("we have decided on the time 6 pm — lock that in to all dashboards"): rides wlg-commit.js r6 (6:00 PM baked as the locked start, countdown wording TOMORROW / TONIGHT); the Help search answer for orientation…
wlg-commit.js2026-10-26 08:38 ET
r6 6:00 PM LOCKED — MJ 10-26 08:33 ("we have decided on the time 6 pm — I need to lock that in to all dashboards"): the start time is BAKED as the default (DEF.lockedTime '6:00 PM') so every WLG and AGVEP banner, sheet and Dates table reads 6:00 PM the moment…
signin-card r2 — MJ 11:29 (installed app, r567 live): "I had to click on the sign in a number of times before it activated and then I had to use the click here if it doesn't open line." CAUSE: in a standalone PWA signInWithPopup never returns — the promise…
worklog.html2026-10-24 11:35 ET
v5.57 · r568: wire-mobile-chat / wire-light re-stated for team-hub.js r1.1 (fold + bubbles every size; light own-text fix).
team-hub.js2026-10-24 11:35 ET
mobile-chat r1 + wire-light r1 + signin-card r1 — MJ 10-24 10:29 (Basecamp vs Wire phone screenshots; "the wire does not do light and dark"; installed app: "you keep tapping the wire icon and nothing opens"). (1) HEAD + BUBBLES, EVERY SIZE (r1.1 11:35: MJ's…
worklog.html2026-10-24 11:05 ET
v5.56 · r567: DONE wire-mobile-chat, wire-light, wire-signin-card (team-hub.js 11:05); OPEN wire-one-signin (index gate still on Legacy).
Friday, October 23, 2026 17 builds
worklog.html2026-10-23 16:25 ET
v5.55 · r566: DONE vs-speed (video-studio v1.1.1 — roll rate measured from rendered text height, wpm is true wpm). vs-rules still OPEN (publish firestore_v105).
video-studio.html2026-10-23 16:25 ETcurrent build
v1.1.1 speed-fix — MJ 10-23 16:07 ("the speed of the text is not changing, it's like on 10"): the roll rate counted characters per line as words per line, so it crawled at roughly 1/6 of the slider and the slider barely registered. Now measured: px per second…
worklog.html2026-10-23 16:15 ET
v5.54 · r565: DONE vs-frame-zoom (video-studio v1.1 — ▯ Portrait / ▭ Landscape frame + 🔍 zoom, canvas pipeline so the preview is the recording). vs-rules still OPEN (publish firestore_v105).
video-studio.html2026-10-23 16:15 ET
v1.1 frame+zoom — MJ 10-23 15:43 ("need to be able to turn it portrait and also adjust the camera in and out just a bit"): the camera now runs through a canvas, so what you see is what gets recorded. ▯ Portrait / ▭ Landscape pills set the frame (portrait…
worklog.html2026-10-23 16:00 ET
v5.53 · r564: DONE vs-prompter-visible (video-studio v1.0.2 — first line on the eye-line at Record in landscape too; padding was a % of width). vs-rules still OPEN (publish firestore_v105).
video-studio.html2026-10-23 16:00 ET
v1.0.2 prompter-visible — MJ 10-23 15:37 (Brave, laptop: "it's still not overlaying"): root cause was layout, not the browser — the script's top padding was a % of the box WIDTH, so in landscape (laptop, 16:9) the first line sat below the visible strip and…
worklog.html2026-10-23 15:50 ET
v5.52 · r563: DONE vs-overlay (video-studio v1.0.1 — overlays z-indexed above the mirrored video for Safari). vs-rules still OPEN (publish firestore_v105).
video-studio.html2026-10-23 15:50 ET
v1.0.1 overlay-fix — MJ 10-23 15:26 ("the script is not overlaying for me on the video when I hit record"): Safari composites a transformed (mirrored) <video> on its own layer and paints un-z-indexed siblings beneath it, so the teleprompter, clock, countdown…
worklog.html2026-10-23 15:40 ET
v5.51 · r562: DONE vs-v1 (NEW video-studio.html v1.0 🎬 Video Studio — phone camera + teleprompter, records to the device; cm-coo-dashboard.html +video-studio-pill r1); OPEN vs-rules (publish firestore_v105, +video_scripts). Carries v5.50 (r561).
video-studio.html2026-10-23 15:40 ET
NEW v1.0 🎬 Video Studio — MJ 10-23 15:11 ("an interface for my COO [dash] that allows me to record a video and that has a teleprompter on it… I would do it on my phone and it can record local"). Phone-first: front/back camera + mic through getUserMedia,…
+video-studio-pill r1 — MJ 10-23 15:11 ("an interface for my COO [dash] that allows me to record a video and that has a teleprompter on it… I would do it on my phone and it can record local"): 🎬 Video Studio pill in the lens bar beside NYCID Sign + a row in…
worklog.html2026-10-23 10:12 ET
v5.50 · r561: DONE sb-time-on-app (strategy-board v1.9 ⏱ running tally in the plan email) + sb-mail-solutions (board mail moved off Legacy) + ct-swag-report (admin dash 🎁 SWAG report CSV); OPEN ct-swag-import (MJ: gcloud export/import pbl_contest_signups…
admin-dashboard.html2026-10-23 10:02 ET
ct-swag-report — MJ 10-23 09:26: "the legacy data for the competition is gone and I need to pull the SWAG report. Find it." FOUND: the summer PBL finals roster + every swag claim live in ONE collection, pbl_contest_signups (pbl-swag.html merge-wrote…
strategy-board.html2026-10-23 09:52 ET
v1.9 time-on-app tally + Solutions mail + theme logos — MJ 10-23 09:26: "On the strategy board I want to start adding a running tally of time on the app that will go out with the email." THREE changes. (1) ⏱ TIME ON THE APP: a new card under the plan lists…
worklog.html2026-10-23 09:21 ET
v5.49 · r560: youthdash — DONE mt-event-iam-r2 (IAM M&T event moved to Mon Oct 26 · 2–4 PM · the lobby, mt-event.js r2). Carries v5.48 (r559 wlglab).
mt-event.js2026-10-23 09:19 ETcurrent build
r2 IAM event moved — MJ 10-23 09:16: IAM M&T Bank sign-up is now Mon Oct 26 · 2:00 PM – 4:00 PM · the lobby at IAM (was 10 AM – 1 PM · Media Room); banner auto-hides at 4:00 PM ET. Port Richmond unchanged. Carries r1 (10-22). Firestore rules: N/A. Constant…
wlg-lab.html2026-10-23 09:05 ET
v1.8 deck clean-up (MJ markups 10-23) + one-tap check-in link — MJ 10-23 markups on the v1.7 PDF + DYCD’s AGVEP FW 26-27 + WLG 26-27 kick-off decks + Tess’s credit-report slide: PART 1 — “What is WLG and AGVEP?” (two paragraphs, blocks gone); NEW “Your…
Thursday, October 22, 2026 36 builds
admin-dashboard.html2026-10-22 15:42 ET
+wlglab-tab r2 credit ratings — Tess 10-22 (the Done / Almost there / Not yet rubric, "MD's gas tank" for the async work): on the 🧭 WLG Lab tab every answer card carries 🟢 Done · 🟡 Almost there · 🔴 Not yet buttons + an optional note to the youth; the rating…
wlg-lab.html2026-10-22 15:40 ET
v1.7 credit ratings + make-up questions + catchphrases — Tess 10-22 + MJ: (1) CREDIT: every answer can carry a staff rating 🟢 Done (full credit) · 🟡 Almost there (half) · 🔴 Not yet (none), set from the admin dash 🧭 WLG Lab tab; the youth sees the pill on each…
ribbon-removed — MJ 10-22 14:53 ("remove the data solutions banner from the admin dash now"): the top-centre 🧭 DATA SOLUTIONS · nycid-solutions · signed in pill (#nycid-project-ribbon, added 10-05 for the Legacy→Solutions flip) no longer mounts — early return…
mc-presets-brief-topic — MJ 10-22 14:49 ("there is no way to change the briefing details — they are all set to the last send and not to the M&T bank event"): the 📋 Staff brief on the Message Center WLG send was welded to the 🤝 commitment banner content. NOW:…
v3.25 ⧉ Copy OLs — MJ 10-22 14:24 ("on requirements I need to be able to grab all OLs like you have for emails and phone numbers"): roster bar gets ⧉ Copy OLs beside ⧉ Copy emails / ⧉ Copy phones — every OL in the current view (same filtered() set, so the…
youth-dashboard.html2026-10-22 14:25 ET
v2.16.1 M&T banner is WLG-only — MJ 10-22 14:21 (confirming AGVEP and Lehman dashboards carry no M&T banner): mountMtEvent now also skips any youth whose enrollment_tracking.initiative is AGVEP, so the banner keys on school AND program — Port Richmond / IAM…
v2.16 M&T Bank sign-up event banner — MJ 10-22 13:32 ("post on Port Richmond's participants dashboards that their event is tomorrow 10/23 from 12 to 2 with Ms. Liz in the NYCID Hub and on Monday the IAM kids need a message for 10 to 1 to see Mr. Andrew and…
worklog.html2026-10-22 13:50 ET
v5.42 · r553: DONE mt-event-banner; OPEN mt-event-staff-view. Firestore rules: firestore_v101.
mt-event.js2026-10-22 13:50 ET
r1 M&T Bank sign-up event banner for WLG youth — MJ 10-22 13:32 (rebuilt from the SYEP 2026 participants.html MTEV card; "the only update is that it's now a $50 sign up bonus"): shared module mounted on youth-dashboard.html under the 🤝 commitment banner for…
v1.2 +attachments — the request's attachments[] (sign-admin v1.8) are shown as an 'Also included' strip of links on the consent step and above the document; nothing to sign in them. Firestore rules: N/A.
v1.7 +templates — MJ 10-22 08:43 ("I want to reuse an old doc so that I can mostly set up my signature and then send to principal of choice"): 💾 Save as template (Send card) keeps the PDF, your text / date fields, every placed field, your own signer row (+…
v1.1 +show-done-signatures — other signers' fields that are already completed (the request's done map, written at Send for the sender's own saved signature, name, date, title) are drawn for real — signature image, typed values, green done border — instead of…
sign-admin.html2026-10-22 08:50 ET
v1.6 +show-done-signatures — MJ 10-22 08:36 ("I'd like for the person signing to see the signature that is already in place — it usually helps them sign quicker"): at Send, every signer's sign_requests doc now carries done{fieldId → {png} | {value}} = the…
v1.0.4 absolute-asset-paths — MJ 10-22 08:32 (the signer's link opened to 'Loading…' with a broken logo): at apps.nycid.org/sign/<token> the page sits one path level down, so its relative sign-core.js / logo / icon resolved to /sign/… and 404'd — sign-core…
worklog.html2026-10-22 08:30 ET
v5.37 · r548: sign-undefined-fix widened to every Send batch doc. Firestore rules: N/A.
sign-admin.html2026-10-22 08:30 ET
v1.5.4 clean-all-writes — MJ 10-22 08:20, same 'Unsupported field value: undefined' on sign_envelopes: every document in the Send batch (the envelope, each sign_requests doc, each mail doc) is now deep-cleaned of undefined (JSON round-trip) immediately before…
v1.5.3 undefined-field-fix — MJ 10-22 08:17 ("WriteBatch.set() called with invalid data. Unsupported field value: undefined"): since v1.1 every signer field was created with value: undefined (only sender fields need a value), and Firestore refuses undefined…
v1.5.2 resumed-draft-send-fix — MJ 10-22 08:15 ("Cannot read properties of null (reading 'name')"): Send on a RESUMED draft crashed because the draft restores the PDF bytes but not the File object, and Send still took the document name from the File — it now…
worklog.html2026-10-22 08:15 ET
v5.34 · r545: OPEN sign-storage-v25-publish (live Storage rules lack the sign_envelopes arm). Firestore rules: N/A.
sign-admin.html2026-10-22 08:15 ET
v1.5.1 rules-hints — MJ 10-22 08:05 hit storage/unauthorized on a test envelope: the live Storage rules are still v24 (no sign_envelopes arm); the Send error now says exactly that (publish storage_v25+) and tells Firestore permission errors apart (publish…
worklog.html2026-10-22 08:10 ET
v5.33 · r544: DONE sign-text-size (S/M/L text on Sign fields). Firestore rules: N/A.
sign.html2026-10-22 08:10 ET
v1.0.3 +text-size — text-type fields render at their S/M/L size (sign-core r2.3) on the signer's page. Firestore rules: N/A.
sign-core.js2026-10-22 08:10 ETcurrent build
r2.3 +text-size — fields carry fs S/M/L (9 · 11 · 14 pt, default M); the PDF builder prints sender text, dates, names, titles and signer text at that size (shrunk only to fit the box width); FS + fpt exported. Firestore rules: N/A. Constant Contact: N/A.
sign-admin.html2026-10-22 08:10 ET
v1.5 +text-size — MJ 10-22 07:58 ("make it so I can make the text larger — even if it's just small / medium / large"): the Selected-field card gets Text size Small · Medium · Large (9 · 11 · 14 pt, sign-core r2.3 fs) on every text-type field — Your text, Date…
v1.4 +drafts-autosave — MJ 10-22 07:46 ("any way to save what's in progress — I've lost like 5 files b/c of our edits"): the New-envelope studio now autosaves itself to this computer's browser database (IndexedDB 'nycid-sign' / drafts) 600 ms after every…
Wednesday, October 21, 2026 82 builds
worklog.html2026-10-21 18:30 ET
v5.31 · r542: DONE sign-signer-typing-date (sign-admin v1.3.1 signer boxes typeable again + 📆 Date (you); sign-core r2.2; sign.html v1.0.2). Firestore rules: N/A (v100 still to publish).
sign.html2026-10-21 18:30 ET
v1.0.2 +sender-date — sender-typed fields (stext · sdate) shown as plain text by the type's sender flag. Firestore rules: N/A.
sign-core.js2026-10-21 18:30 ET
r2.2 +sender-date — NEW sender field type sdate (📆 Date (you): placed by the sender, prefilled with today's date, editable); buildCompleted burns every sender-typed field (stext · sdate) by the type's sender flag instead of naming stext. Firestore rules: N/A.…
sign-admin.html2026-10-21 18:30 ET
v1.3.1 signer-typing-fix +date — MJ 10-21 18:21 ("I can't type or paste into these fields — also make sure I can add the date"): FIX clicking into a signer's Name / email / Role box fired the row's pick-this-signer click, which rebuilt the Signers list and…
worklog.html2026-10-21 18:10 ET
v5.30 · r541: DONE sign-upload-sig (sign-admin v1.3 upload a signature image). Firestore rules: N/A (v100 still to publish).
sign-admin.html2026-10-21 18:10 ET
v1.3 +upload-signature — MJ 10-21 18:03 ("I want to be able to upload my signature"): ✍️ My signature now takes a PNG / JPG / WebP of the signature (scan or phone photo on white paper) besides draw / type: in the browser the paper is made transparent…
worklog.html2026-10-21 17:45 ET
v5.29 · r540: sign-rules item now points at firestore_v100 (built on MJ's v99; complete file delivered). Firestore rules: UPDATE NEEDED (v100).
sign-admin.html2026-10-21 17:45 ET
v1.2.1 +rules-v100-hint — permission-error hints now name firestore_v100 (the staff_signatures block landed in v100, built on MJ's v99). No functional change. Firestore rules: UPDATE NEEDED — publish firestore_v100. Constant Contact: N/A.
worklog.html2026-10-21 17:35 ET
v5.28 · r539: DONE sign-add-me-cc (sign-admin v1.2 My signature + Add me + Cc; sign-core r2.1); OPEN sign-rules-v99 (staff_signatures). Firestore rules: UPDATE NEEDED (v99).
sign-core.js2026-10-21 17:35 ET
r2.1 +saved-signature-cert — certificate of completion names a sender-adopted saved signature (sigMode 'saved': 'Saved signature adopted by the sender in the NYCID Sign console') and its security line (signed in under the @nycid.org Google sign-in, not a…
sign-admin.html2026-10-21 17:35 ET
v1.2 +my-signature +add-me +cc — MJ 10-21 17:26 ("I need to be able add my own signature and any one using it needs to do so as well. I need to be able to Cc people as well"): NEW ✍️ My signature view (header pill): every staff user draws or types a signature…
v1.0.1 +sender-text — sender-typed ✏️ Your text fields (type stext, sign-core r2) show as plain text on the page for every signer, not as a grey 'other signer' box; nothing to click. Firestore rules: N/A. Constant Contact: N/A.
sign-core.js2026-10-21 17:15 ET
r2 +sender-text — MJ 10-21 17:06 ("I need to be able to set up the docs and type or add texts — it's not letting me"): NEW field type stext = ✏️ Your text, typed by the sender in the console, not assigned to any signer; buildCompleted burns fd.value onto the…
sign-admin.html2026-10-21 17:15 ET
v1.1 +your-text +field-panel — MJ 10-21 17:06 ("I need to be able to set up the docs and type or add texts — it's not letting me — nor is it letting me delete text boxes added"): FIX the field toolbar (◀ ▶ ★ ✕) was clipped by sign-core's .sg-f overflow:hidden…
+sign-pill r1 — MJ 10-21 16:34 ("…on my and all Executive dashboards"): ✍️ NYCID Sign button in the People & work lens group → sign-admin.html (the e-signature console, DocuSign replacement). No other change. Firestore rules: N/A. Constant Contact: N/A.
cm-coo-dashboard.html2026-10-21 16:40 ET
+sign-pill r1 — MJ 10-21 16:34 ("direct me to my new signature interface… if it's not on my and all Executive dashboards put it there"): ✍️ NYCID Sign pill in the lens bar beside the Playbook + a row in the All-dashboards list (Executive & command). Links…
+sign-pill r1 — MJ 10-21 16:34 ("…on my and all Executive dashboards"): ✍️ NYCID Sign button in the lens row → sign-admin.html (the e-signature console, DocuSign replacement; the hiring/onboarding wiring is still the parked sign-hiring item). No other change.…
v2.2 map-first review — MJ 10-21 14:06 ("the JD wants to see all the sites on a map as she goes — pins that turn green when she picks them, a remove button to take them off the map"): on ✅ Site review the 🗺 All sites map now sits at the TOP of the tab, above…
r1.3 staging-target — MJ 10-21 13:48 ("a separate uploader — I do not want to commit/write these sites to Solutions until we've screened them"): mount options collection / docId(wsid,cycle) / extra / targetLabel / targetShort / memoryKey / setCycle so a…
jd-dashboard.html2026-10-21 14:05 ET
v2.1 screening-uploader — MJ 10-21 13:48 ("I need a separate uploader here — I do not want to commit/write these sites to Solutions until we've screened them"): ✅ Site review gains its OWN 📥 Sites to screen uploader at the top of the tab (a second mount of…
worklog.html2026-10-21 13:22 ET
v5.22 · r533: syep-playbook.html v2.14 print order + spacing
syep-playbook.html2026-10-21 13:18 ET
v2.14 print order + spacing — MJ 13:14: printed copy starts with a Year-at-a-glance calendar page (periods × components table with task counts, program dates line), then Roles, one page per component, and ends with the Messages page; a little more air between…
youth-dashboard.html2026-10-21 13:15 ET
v2.15.2 Open in Safari / Chrome button — MJ 10-21 12:34 (\"no way to force the browser to open, right?\"): a web page cannot force its way out of Gmail's in-app browser, but two platform hooks usually work and cost nothing to try, so the in-app guide now…
worklog.html2026-10-21 13:15 ET
v5.17 · r528: DONE yd-inapp-openbtn (youth-dashboard v2.15.2 Open in Safari / Chrome button)
worklog.html2026-10-21 13:12 ET
v5.21 · r532: syep-playbook.html v2.13 print black and white
syep-playbook.html2026-10-21 13:10 ET
v2.13 print black and white — MJ 13:06: print output is pure black on white — white page background, every #print element forced to black text with no fills, borders or shadows, greys removed, badge hidden.
worklog.html2026-10-21 13:08 ET
v5.20 · r531: syep-playbook.html v2.12 fifth lane School Coordinators / AGVEP
youth-dashboard.html2026-10-21 13:05 ET
v2.15.1 in-app browser sign-in fix — MJ 10-21 12:26 (phone screenshot, link opened from the Gmail app: \"Unable to process request due to missing initial state… sessionStorage is inaccessible… storage-partitioned browser environment\"). ROOT CAUSE: the kid…
worklog.html2026-10-21 13:05 ET
v5.15 · r526: DONE yd-inapp-signin re-applied on r525 (youth-dashboard v2.15.1 · wlg-lab v1.6.3 · _redirects r13); NEW open yd-authdomain-suite
wlg-lab.html2026-10-21 13:05 ET
v1.6.3 same-origin auth handler — rides youth-dashboard v2.15.1's in-app browser fix: on apps.nycid.org the Google sign-in uses authDomain apps.nycid.org (handler proxied by _redirects r13) so the Lab link opened from Gmail / Instagram signs in too. Firestore…
syep-playbook.html2026-10-21 13:05 ET
v2.12 fifth lane — MJ 12:50: NEW lane 'School Coordinators / AGVEP Staff' under Curriculum Development on every view (By component grid, Calendar, By role, Roles, print); the In-school Program Coordinators and Andrea (AGVEP / Tottenville lead) cards move…
v2.11 coordinators + shared message desk — MJ 12:42 (15 minutes to the meeting): Community Liaison and Curriculum each gain a standing task and a duty line for answering the lane's messages and emails same day (C4, K4; the message desk is shared, Admin & Data…
v2.10 WLG enrollment period — MJ 12:35: a seventh period, WLG Enrollment (Sep – Oct), added to the year on every view (By component grid, Calendar, By role); Program & Close-out now spans Jul 6 – Aug 31 and the SYEP Close-out bar runs Aug 23 – Sep 30 across…
v2.15 Virtual Lab + Google Classroom portals — MJ 10-21 11:52/12:04 ("add the Google Classroom portal and the Virtual Lab portal… the same type of entry for the Virtual Lab that we used for YY… one class, the youth come twice a week to the same space… load…
worklog.html2026-10-21 12:40 ET
v5.12 · r521: DONE yd-portals (youth-dashboard v2.15 Virtual Lab + Google Classroom portals · requirements v3.24 Director View classroom card); yd-email-switch still open (rules file needed)
syep-playbook.html2026-10-21 12:40 ET
v2.9 accordion calendar — MJ 12:29 ('spread the calendar out so all tasks show the same… accordion it out'): the calendar's columns are now the six periods at equal width (Pre-season · Applications · Enrollment · Orientation · Placement · Program & Close-out,…
requirements.html2026-10-21 12:40 ET
v3.24 💻 Google Classroom portal card — MJ 10-21 12:04 ("it's only going to be 1 class… twice a week to the same space… load the GC room like we did for the YY kids as a portal"): NEW card under the Director View 📆 Pay schedule — class name · join code ·…
v2.8.1 orientation bubble — MJ 12:20: the Orientation label is a bubble around the word, dropped one row below the two-week bar on a short stem; no date text.
v2.8 tasks not steps — also A6 title 'Billing and the HQ front line' (onboarding word left over from the 10-20 hiring removal) — MJ 12:11: every user-facing 'step/steps' on the page is now 'task/tasks' (header line, intro, calendar chips and footnote,…
syep-playbook.html2026-10-21 12:20 ET
v2.7 chips count standing + period — MJ 12:09 ('add the standing steps to each phase so pre-season Admin & Data would be 13 steps'): every calendar chip now shows the component's full count for that period = standing steps + the period's own steps (wide chips…
v2.6.1 orientation label — MJ 12:07: the two-week Orientation bar now carries its label beneath it on a tick ('Orientation · May 16–29') instead of a truncated 'Ori…'; AGVEP bar reads 'AGVEP' with 'to May 8' after it.
syep-playbook.html2026-10-21 12:10 ET
v2.6 calendar cleaned — MJ 12:00 (screenshot, 'it's a mess… virtual tool today'): 📅 Calendar redrawn as a month grid — 10 equal month columns with alternating shading, 190px label gutter, two program rows (WLG·AGVEP; SYEP 2027) with centered non-overlapping…
youth-dashboard.html2026-10-21 12:05 ET
v2.14 Hats & Ladders back on for WLG — MJ 10-21 11:56 ("I had you N/A hats and ladders for WLG kids — please turn that back on"): the 📋 Paperwork gauge and gates list show Hats & Ladders for every youth again (four gates for WLG and AGVEP alike; v2.10's WLG…
worklog.html2026-10-21 12:05 ET
v5.10 · r519: DONE hl-back-on (requirements v3.23 · youth-dashboard v2.14 · wlg-commit r5 · wlg-lab v1.6.2); NEW open yd-email-switch (nycstudents.net → personal Gmail on the banner) + yd-portals (Google Classroom + Virtual Lab portals, show first)
wlg-lab.html2026-10-21 12:05 ET
v1.6.2 Hats & Ladders back on for WLG — MJ 10-21 11:56 ("turn that back on"): the Two-programs table, the Before-you-can-start slide and the Paid-in-full table say H&L is required for WLG youth again (v1.5/v1.6 had it AGVEP-only). Firestore rules: N/A.
wlg-commit.js2026-10-21 12:05 ET
r5 Hats & Ladders back on the WLG sheet — MJ 10-21 11:56 ("turn that back on"): the WLG sheet's Dates get the Oct 26 Hats & Ladders row, the Before-you-can-start fact and the agree line name H&L again (r3 had dropped them for WLG). AGVEP block unchanged.…
requirements.html2026-10-21 12:05 ET
v3.23 Hats & Ladders back on for WLG — MJ 10-21 11:56 ("I had you N/A hats and ladders for WLG kids — please turn that back on"): hlApplies() is true for every youth again, so the case-file 🎓 H&L card, the Need H&L dial / queue, core-gate counts, outreach…
v2.5 numbers strip — MJ 11:42 (screenshot): the three task counts (tasks on this page, standing, waits on another) removed from the numbers strip; served now reads ~1,650 youth SYEP 2026 + 122 youth WLG/AGVEP winter 2026-27; worksites ~200 SYEP + 30–40 WLG…
worklog.html2026-10-21 11:37 ET
v5.08 · r517: syep-playbook.html v2.4 YY coordinator merged into YY site supervisors
syep-playbook.html2026-10-21 11:35 ET
v2.4 YY merge — MJ 11:30: the Younger Youth Coordinator card (Curriculum lane) is merged into the Community Liaison lane's Seasonal: YY site supervisors card, now 'Seasonal: YY site supervisors · YY coordinator' (5 site supervisors + the coordinator across…
v5.06 · r515: requirements v3.22 team invite copy on the cycle doc + type send + PIN
requirements.html2026-10-21 10:40 ET
v3.22 team invite copy in Firestore + type send + PIN — MJ 10-21 09:56 ("add to the firestore but this button needs both the type 'send' and a pin"): the invite copy now lives on the cycle doc (program_cycles/{cycle}.inviteTpl — subject/email/sms +…
es-dashboard.html2026-10-21 10:40 ETcurrent build
v1.1 gated — MJ 10-21 10:35: seen only by Argenis or those above him — ALLOW list arosario@ + Allan Avidano (Sr Director of WFI, his reports-to) + MC (CPO) + MJ + CG + the four super admins (mdevito@, ibilotti@, jobrien@, mcandella1@); anyone else @nycid.org…
v3.21 edit the invite before it sends — MJ 10-21 09:48 ("what is the message on the button that says send link? show me the copy… make it so I can edit before sending"): 📨 Send invite to checked and the case-file ✉ Send / ↻ Resend invite now open an…
worklog.html2026-10-21 09:28 ET
v5.04 · r513: jd-dashboard v2.0 site-review + maps; +jd-site-report open
jd-dashboard.html2026-10-21 09:25 ET
v2.0 site-review + maps — MJ 10-21 09:06 ("the job developer needs to review the sites, triangulate locations, participants requested and confirm they are a good fit for WLG this winter… add mapping of the sites and a full map of all the sites together; this…
+es-tile r1 — MJ 10-21 08:46 (Argenis's dashboard): the one-roster row for arosario@ now carries es-dashboard.html first (then SYEP Admin) and LABEL names it 📊 SYEP Specialist dashboard (the reports). Nothing else changed. Firestore rules: N/A.
es-dashboard.html2026-10-21 08:50 ET
NEW v1.0 — MJ 10-21 08:46 ("turn this into a dashboard for him — I'd rather meet with him and explain it in real time — Argenis's dash should also have a direct link to comms"): the SYEP Reports SOP as Argenis Rosario's dashboard on Solutions. @nycid.org…
r1.2 keep-staff-edits — MJ 10-21 08:15 ("Solutions is the truth — when we reload a worksite roster I don't want to lose the edits we made to the job description and duties"): the 📋 Jobs Report lane now NEVER deletes a job doc with edited:true (set by the…
jd-dashboard.html2026-10-21 08:40 ET
v1.9 menus + job-descriptions — MJ 10-21 08:15 (screenshots of the admin dash menus): (1) TWO DROPDOWNS in the lens bar with the same items as the admin dash — 👔 Employer Engagement & Job Development (Employer Partners · Jobs · Worksite Instructions ·…
admin-dashboard.html2026-10-21 08:40 ET
back-pill+edited-jobs-kept — MJ 10-21 08:15 (JD dash gets the Employer Engagement + Placement Command Center menus; "make sure there are back buttons to the dash"; "Solutions is the truth… don't lose the edits we made to the job description and duties"): (1)…
worklog.html2026-10-21 08:10 ET
v5.01 · r510: syep-playbook.html v2.3 the book (edit in place, one Save, audit + close-out duties on every role)
syep-playbook.html2026-10-21 08:05 ET
v2.3 the book — MJ 07:45: every role gains 'Assists with audit document retrieval: April for WLG, August–October for SYEP'; Senior Administrator 'Leads the DYCD close-out package (September–October)', every other role 'Close-out package assistance…
v2.2 editable roles — MJ 07:29: ✏️ Edit duties on the 📇 Roles tab: drag ⋮⋮ to reorder a card's duties, × to remove, type + Add (Enter works) to add; per-card ↺ reset; edits saved on the device (localStorage nycid-playbook-roles-v1) and laid over the baked…
v2.1 roles tab fix + Cathy — MJ 20:27: the Pick-a-box tasks panel (and the per-lane roles box) no longer show under the 📇 Roles, 👥 By role or 📣 Messages views (they were leaking the last-tapped Admin cell to the bottom of the Roles tab); Senior Administrator…
syep-playbook.html2026-10-20 20:30 ET
v2.0 messages tab + plain English — MJ 20:07: (1) staff hiring out of every role and task (c03 in-school coordinator hiring, k11 PBL instructor hiring, j31 monitor hiring removed; onboarding line dropped from Cathy/A6; k21/k31 dependencies re-pointed); (2)…
v1.9 positions not people — MJ 19:21: Manny does not lead the summer monitors (removed from J2, j51, seasonal card, Manny card); summer monitoring names Argenis, Robyn, Steven and otherwise the SYEP Specialist and PT Job Developer positions; Kerrie, Tafar-I…
syep-playbook.html2026-10-20 19:18 ET
v1.8 summer monitoring — MJ 19:12: in July–August all core staff shift to some level of worksite monitoring; Argenis, Robyn, Tafar-I, Kyra and Steven all become worksite monitors (Manny leads, ~10 seasonal alongside). Written into J2 and j51 longhand, the…
syep-playbook.html2026-10-20 19:10 ET
v1.7 support duties — MJ 19:04: support roles filled in (Claude's liberties, MJ to correct): Kerrie = the evening desk (phones, syep@, SMS after 5 PM, overnight queue, mailings/MetroCards/filing); Tafar-I = second seat on the YEPS feed, document chase,…
v1.6 roles tab — MJ 18:13/18:14: Andrea also monitors the AGVEP worksites; NEW 📇 Roles & Responsibilities view (fourth button, first in the row): every position by component with holder, annotation and duty groups, no tasks attached — the page MJ opens first,…
v1.5 monitors — MJ 18:11: Manny Powerson is not seasonal; he is the key worksite monitor all winter for every Staten Island site; Steven Gross covers Brooklyn; the Bronx is unassigned (Manny can spend a day there). Roles panel and the WLG monitoring card…
v1.4 by-role fixed — MJ 18:06 ("look at senior administrator, one task … unfuck this; support roles don't need to be listed; Argenis is so much more than an employment specialist"): the By-role view lists only the core positions (Argenis, Cathy, Shantell,…
v1.3 calendar+by-role views — MJ 10-20 17:54 ("you had a really cool calendar … add that … superimpose the tasks on the roles and responsibilities as an alternative … MC and Candace are dinosaurs when it comes to tech"): three views on one page, nothing…
v1.2 firming — MJ 10-20 17:43: Curriculum also sets up the entire YY structure (locations, classes, labs, presentations, coordination); Tess and Robyn build, edit and deliver the orientations together; through WLG Tess runs all provider-led sessions; Tess…
+playbook-pill r1 — MJ 10-20 16:23 ("slip this in to the zip and add it to my coo dash"): 📘 SYEP / WLG Playbook pill in the lens bar beside the Strategy Board + a row in the All-dashboards list (Executive & command). Links syep-playbook.html (NEW, static, in…
syep-playbook.html2026-10-20 16:30 ET
v1.1 four-lanes+standing+all-visible+roles — MJ 10-20 16:17: "the Job Developers are always developing jobs but in December it doesn't show … outreach & comms are inside of community and admin/data as well as JD and curriculum … seasonal staffing is not a…
syep-playbook.html2026-10-20 15:45 ET
v1.0 — SYEP / WLG PLAYBOOK: the shorthand/longhand page MJ asked for 10-20 ("a one pager for each and a background document with all the tasks that I can click into and go deep on … on the app interface … shorthand that then has a longhand for each item").…
worklog.html2026-10-20 14:49 ET
v4.96 · r499: yeps-import.js r1.1 pull-checklist
yeps-import.js2026-10-20 14:48 ET
r1.1 pull-checklist — MJ 14:43 ("the items we need to pull are all smashed together — put radio tick boxes next to each"): every lane's guide is now a tick-box checklist — the YEPS path on its own line, one box per field/step to select, ★ on the required…
worklog.html2026-10-20 14:32 ET
v4.89 · r498: wlg-lab v1.6.1 (If you don't, you won't on the Paid in full slide)
wlg-lab.html2026-10-20 14:32 ET
v1.6.1 "If you don't, you won't" — MJ 14:28: the Paid in full slide carries the catch phrase as its eyebrow and closing line — don't complete the Virtual Lab that week, you won't be paid for that week; there is no going backwards. Nothing else changed.…
youth-dashboard.html2026-10-20 14:15 ET
v2.13 WLG internship week of Dec 7 · 11 hrs/week — MJ 14:03 (deck review): the WLG program tile, first-day sheet and search answers now say internships start the week of December 7 at 11 hours a week (was January); AGVEP text unchanged. Firestore rules: N/A.…
v1.6 deck: Caleb Hammer short + Part 2 AGVEP lines + Robyn/Argenis corrections + paid-in-full slide — MJ 14:03: (1) "What her $4,000 really cost" embeds the YouTube Short eIKqfujuxIQ on the left like the 7 Habits video (FACT_DEFAULTS.vidCredit; ⚙ still…
wlg-commit.js2026-10-20 14:15 ET
r4 WLG internship week of Dec 7 · 11 hrs/week — MJ 14:03 (Robyn/Argenis deck review): the WLG sheet's Dates and facts now say internships begin the week of Dec 7 at 11 hours a week with more during holiday weeks (was January / up to 12, 21 during certain…
yeps-import.js2026-10-20 13:56 ET
r1 — NEW shared YEPS report importer (MJ 10-20 13:38 "I want to upload the reports to Solutions one at a time … they need to be able to do it on their own"). Three lanes, each a single YEPS export dropped as-is, any order, dry run first: 🏢 Worksite Master…
worklog.html2026-10-20 13:56 ET
v4.87 · r496: yeps-import.js r1 (one-report-at-a-time YEPS uploader) on admin-dashboard yeps-reports-importer + jd-dashboard v1.8; +yeps-jobs-rules / yeps-real-pull open
jd-dashboard.html2026-10-20 13:56 ET
v1.8 yeps-import — MJ 10-20 13:38/13:43 ("upload the reports to Solutions one at a time… the team needs to be able to do it on their own" — GO): the v1.7 one-report ⬆ Worksite report card is replaced by the SHARED yeps-import.js importer (new file, r1)…
admin-dashboard.html2026-10-20 13:56 ET
yeps-reports-importer — MJ 10-20 13:38/13:43 ("I'd rather not consolidate any more — upload the reports to Solutions one at a time… the team needs to be able to do it on their own" — GO). 🤝 Employer Partners gains 📥 YEPS REPORTS (primary): the NEW shared…
v3.20 invites by initiative + bulk invite + import invites — MJ 13:27–13:31 (8 of 10 AGVEP youth never logged in; the DYCD report import never sent an invite, so a youth arriving already selected/enrolled got nothing): (1) the invite email + text name the…
worklog.html2026-10-20 13:25 ET
v4.85 · r494: wlg-lab.html v1.5.1 (Virtual Lab on the orientation slide)
wlg-lab.html2026-10-20 13:25 ET
v1.5.1 orientation slide says Virtual Lab — MJ 13:16 ("on the orientation slide take out the word WLG and put Virtual Lab"): on "How your 5 hours add up" the three WLG Lab rows read Virtual Lab, Part 1 reads "Welcome to WLG and AGVEP", and the miss-a-session…
worklog.html2026-10-20 13:12 ET
v4.84 · r493: wlg-lab.html v1.5 orientation deck rewritten for WLG + AGVEP together
wlg-lab.html2026-10-20 13:12 ET
v1.5 orientation deck for WLG + AGVEP together — MJ 13:07 ("find this deck — this is for orientation and we need to update it b/c we're doing WLG and AGVEP together"; the uploaded PDF is this page's own ▶ Present → ⬇ Print export): Part 1 title now welcomes…
worklog.html2026-10-20 13:09 ET
v4.83 · r492: admin-dashboard mc-staff-penn (Malcolm Penn on the Message Center staff list)
admin-dashboard.html2026-10-20 13:09 ET
mc-staff-penn — MJ 13:06: Malcolm Penn (mpenn@nycid.org, Director of CMSI) joins bulkStaffList() — the ➕ staff checkboxes on the Message Center WLG / AGVEP send card, so he can be ticked into Copy Emails / CSV and get [STAFF COPY] emails and the staff brief.…
v2.12 AGVEP youth see their own program — MJ 10-20 12:40/12:46: the 🤝 commitment banner now mounts for ENROLLED AGVEP youth too (wlg-commit.js r3, mount initiative:AGVEP — the AGVEP dates/facts/promises); for enrollment_tracking.initiative = AGVEP the program…
v1.4 AGVEP in the same orientation — MJ 10-20 12:40/12:46 ("I want them to come to the same orientations — add the AGVEP kids to this and explain the different groups to the kids on orientation"): (1) the 🤝 banner now mounts for enrolled AGVEP youth with…
wlg-commit.js2026-10-20 13:00 ET
r3 AGVEP commitment — MJ 10-20 12:40/12:46 ("set up the AGVEP kids and send them a message like we did for WLG last night … they come to the same orientations"; all 10 are 18–24, same pay cycle, same 10/29 Direct Deposit deadline, same NYCID provider-led…
requirements.html2026-10-20 13:00 ET
v3.19 AGVEP in the 🤝 commitment lens — MJ 10-20 12:40/12:46 (AGVEP youth now get their own commitment sheet, wlg-commit.js r3): the 🤝 ? chip, the No-answer queue row / need-commit filter, the Director 🤝 card tally and the Bulk Outreach no-answer target now…
admin-dashboard.html2026-10-20 13:00 ET
mc-agvep-wording — MJ 10-20 12:40/12:46 (send the AGVEP kids a message like the WLG one): on the 📤 Message Center WLG lane, switching 🏷 Initiative to "AGVEP only" swaps the untouched default subject / email / text to the AGVEP wording (NYCID AGVEP starts next…
cm-cao-dashboard.html2026-10-20 12:30 ET
v1.3 +repository +meetings +board — MJ 10-20 12:04 ("we need to house these in the repository — which should also be added to the CAO dash as well as meetings and agenda — and also the CAO manages board minutes and documents as well so give her a place for…
v1.2.5 −CHRO link +back — MJ 10-20 10:00 (header screenshot: "remove CHRO dash link from here please. there should always be a back button to the previous app or page or tab"): the 👩💼 CHRO dash pill is gone; the shared ← Back pill (back-nav.js) now sits…
cm-coo-dashboard.html2026-10-20 12:10 ET
+back r1 — MJ 10-20 10:00 ("there should always be a back button to the previous app or page or tab"): shared ← Back pill (back-nav.js), one script tag. Firestore rules: N/A. Constant Contact: N/A.
cm-cao-dashboard.html2026-10-20 12:05 ET
v1.1 T&E = JO's form + NYCID Sign + back button — MJ 10-20 10:00 (uploaded Time_and_Effort_Report.doc: "see the time and effort report that we use and we need to set up a digital sign for all staff that we send it to"; "there should always be a back button"):…
worklog.html2026-10-20 11:50 ET
v4.81 · r489: requirements chat rebased on MJ's r488 — DONE req-shpt-doc-hl-na (requirements.html v3.17 + youth-dashboard.html v2.10) and wlg-pay-schedule (youth-dashboard v2.11 + requirements v3.18); OPEN req-shpt-doc-backfill.
worklog.html2026-10-20 11:40 ET
v4.80 · r488: DONE cao-salary-alloc (cm-cao-dashboard.html v1.2 — org-wide salary allocation workbook → multiple-assignment list, attention flags, adjustments, build T&E for a pay period); OPEN cao-rules-v97 now includes salary_allocations.
youth-dashboard.html2026-10-20 11:35 ET
v2.11 WLG 2026-27 pay schedule on the dashboard — MJ 11:17 ("on the participant dashboard for WLG there is a space for the pay cycle to go up — pull the information off of this and update their dashboards"): the 14-cycle DYCD WLG 2026-2027 Payroll Schedule…
requirements.html2026-10-20 11:35 ET
v3.18 📆 Pay schedule card on the Director View — MJ 11:17 (the WLG 2026-2027 Payroll Schedule for the youth dashboards): a new card under the Director View lists the cycle's pay cycles (one line each: cycle · week-ending dates · payday · note), prefilled from…
cm-cao-dashboard.html2026-10-20 11:30 ET
v1.2 salary allocation → T&E — MJ 10-20 10:59 (uploaded Salary_allocation_fy26: "we're going to have to upload a report of the entire organization… only the ones with multiple assignments… make adjustments to the allocations when appropriate… keep this simple…
youth-dashboard.html2026-10-20 11:20 ET
v2.10 SHPT certificate line + H&L only for AGVEP — MJ 11:03/11:04 (requirements chat): 📎 Documents NYCID still needs gets the new Sexual harassment training certificate (SHPT) line with its own upload (Storage youth_docs/{personId}/shptCert/, docs.shptCert…
requirements.html2026-10-20 11:20 ET
v3.17 SHPT certificate as the 9th document + H&L N/A for WLG — MJ 11:03/11:04 ("on requirements we need to add a 9th document and that's sexual harassment training… another doc that will need to go into the audit folder"; "WLG kids do not need to do Hats and…
+cao-tile r1 — MJ 10-20 08:41/09:06 (CAO dashboard for Jessica O'Brien): the one-roster row for jobrien@ now carries cm-cao-dashboard.html as her assigned dashboard (title Chief Administrative Officer, NYCID-wide) and the tile label map gains…
cm-coo-dashboard.html2026-10-20 10:45 ET
+org-chart +staff-panel +cao r1 — MJ 10-20 09:06 ("add the org chart… also to my COO dash and we need to be able to edit it and have it print perfectly to a PDF. Just JO and I have access to edits") + 09:10 ("we each need a staff panel for all staff loaded…
cm-cao-dashboard.html2026-10-20 10:30 ET
NEW v1.0 CAO Dashboard — Jessica O'Brien's desk (MJ 10-20 08:41 "Do we have a CAO dashboard yet? If not I need to create one for Jessica O'Brien" + 08:48 insurance/calendar/mass message + 09:06 org chart + 09:10 staff buckets). Deco skin (dark field, chrome…
staff-panel.js2026-10-20 09:55 ETcurrent build
NEW r1 👥 Staff panel — MJ 10-20 09:10 ("at times we need to add staff names to certain programs — so we will need to be able to drag and drop names into program buckets. So we each need a staff panel for all staff loaded into the system"). Shared drop-in for…
org-board.js2026-10-20 09:40 ETcurrent build
r2 editable + Firestore + print-to-PDF — MJ 10-20 09:06 ("add the org chart to her dash and also to my COO dash and we need to be able to edit it and have it print perfectly to a PDF. Just JO and I have access to edits"). The chart now LIVES in Firestore:…
worklog.html2026-10-20 09:12 ET
v4.77 · r485: id-cards.html v1.2.4
id-cards.html2026-10-20 09:12 ET
v1.2.4 — MJ 10-20 08:57 ("make the NYCID logo even bigger please, on the front side only"): front logo 19 mm tall in the top-right corner (was 15.5); the name line keeps clear of it (wraps before the logo), title / program lines run full width underneath.…
worklog.html2026-10-20 09:08 ET
v4.76 · r484: id-cards.html v1.2.3
id-cards.html2026-10-20 09:08 ET
v1.2.3 back — MJ 10-20 08:52 ("a little bigger than on side two; move the qr code down and over to the left some"): back logo 13.5 mm (was 11.5), org / address / contact block down 2 mm with it; QR moved to 9 mm from the top and 7 mm from the right edge (was…
worklog.html2026-10-20 09:04 ET
v4.75 · r483: id-cards.html v1.2.2
id-cards.html2026-10-20 09:04 ET
v1.2.2 — MJ 10-20 08:48 ("put the line only under NYCID staff and make the NYCID logo larger"): the gold→blue rule now runs only under the header (42 mm, left); the logo is 15.5 mm tall in the top-right corner; photo and name block moved down 1.4 mm to clear…
worklog.html2026-10-20 09:00 ET
v4.74 · r482: id-cards.html v1.2.1 logo top-right
id-cards.html2026-10-20 09:00 ET
v1.2.1 logo top-right — MJ 10-20 08:47 ("I want the NYCID logo at the top right of the card"): on the front the header (NYCID STAFF) now sits left and the logo right in the top band; the red bar is gone (the logo takes that corner). Nothing else changed.…
worklog.html2026-10-20 08:58 ET
v4.73 · r481: DONE id-cards-v12 (id-cards.html v1.2 front redesign + partner logos + editable header; id-photo.js r2 drag-and-drop; NEW nycid-logo-card.png)
id-photo.js2026-10-20 08:55 ET
+drag-and-drop r2 — MJ 10-20 ("I want to be able to drag and drop photos on id-photo"): drop a picture anywhere on the tool (the frame or the text side) and it loads exactly like 📁 Choose a photo — blue highlight while dragging, the same readFile path, same 2…
id-cards.html2026-10-20 08:55 ET
v1.2 front redesign + partner logos + editable header — MJ 10-20 08:11–08:16 (screenshot markup: "the NYCID logo is too small and also it looks crunched… we need a way to add an additional logo for a partnering organization… ONS's logo to Albert's card… make…
worklog.html2026-10-20 08:40 ET
v4.72 · r480: requirements v3.16.1 Initiative pick on Bulk Outreach.
requirements.html2026-10-20 08:40 ET
v3.16.1 Initiative on Bulk Outreach — MJ 08:32 ("no way to sort for initiative on bulk outreach"): the 📣 tab gets its own 🏷 Initiative select (opens on the cycle's own program, e.g. WLG; AGVEP; all), used by the group preview, phones, emails, CSV, log, email…
v3.16 🔒 Lock to enrolled — MJ 10-20 07:30 ("we're tracking all youth which worked for the enrollment period but now the data shows all statuses and we are only going to work with the enrolled kids — a button that turns off all other statuses, a final filter…
admin-dashboard.html2026-10-20 07:55 ET
wlg-lane-enrolled-default — MJ 10-20 07:30 (only the 102 enrolled are being worked): the Message Center WLG lane Status filter now opens on Enrolled; the other statuses are still one click away. Firestore rules: N/A. Storage rules: N/A. Constant Contact: N/A.
youth-dashboard.html2026-10-20 07:50 ET
v2.9.2 banner for ENROLLED youth only — MJ 10-20 07:30 (URGENT: "some kids who are selected have the banner on their dash to commit — why? We had 102 enrolled and I only sent to 102"): v2.9 mounted the 🤝 banner for every non-withdrawn WLG youth, so selected…
wlg-lab.html2026-10-20 07:50 ET
v1.3.2 banner for ENROLLED youth only — MJ 10-20 07:30: the 🤝 banner now mounts only for enrollment_tracking.status enrolled (was: anyone not withdrawn). A read failure now shows NO banner (was: banner by default). Firestore rules: N/A. Storage rules: N/A.…
wlg-missing-contact-names — MJ 20:13 ("it's saying there is a youth without an email… I can't see who that kid is"): the WLG lane summary line now names the youth behind "N no email" and "N no cell" (name + OL, up to 12, then …), so the gap is visible without…
v3.15.1 short /my links — {{link}} in Bulk Outreach email + text is https://apps.nycid.org/my/<personId> on the live site (falls back to the long ?k= link on any other host). Rules N/A.
admin-dashboard.html2026-10-19 20:35 ET
my-links-buttons-brief — MJ 20:03/20:04 (three asks on the staff brief + links): (1) SEE IT YOURSELF moved to the TOP of the staff brief, as buttons (👀 See What They See · 📋 Requirements); (2) BUTTONS: the HTML side of every email now renders a bare-URL line…
worklog.html2026-10-19 20:12 ET
v4.68 · r476: Message Center stale green July badge removed.
admin-dashboard.html2026-10-19 20:12 ET
mc-green-badge-removed — MJ 18:58 (screenshot: "remove the green banner"): the stale green "BUILD 07-20 12:10 · SITES+QUEENS · TPL RESET" pill in the Message Center title (a July build marker that never moved) is gone; the page corner badge is the one build…
worklog.html2026-10-19 20:05 ET
v4.67 · r475: admin-dashboard corner badge synced to the WLG builds (no functional change).
admin-dashboard.html2026-10-19 20:05 ET
badge-sync — MJ 18:56 ("the build stamp isn't showing… still showing mc-staff"): the corner BUILD_LABEL badge was never advanced by the r464–r474 builds in this chat (only the top-of-file stamps were), so a correct deploy still read 18:30 ·…
worklog.html2026-10-19 19:55 ET
v4.66 · r474: DONE see-what-they-see (new page) + link on the Message Center.
admin-dashboard.html2026-10-19 19:50 ET
see-what-they-see-link — MJ 18:50: 👀 See What They See ↗ button on the Message Center WLG send card (opens see-what-they-see.html) and a SEE IT YOURSELF line in the staff brief. Nothing else changed. Firestore rules: N/A. Storage rules: N/A. Constant Contact:…
worklog.html2026-10-19 19:25 ET
v4.65 · r473: DONE wlg-staff-brief.
admin-dashboard.html2026-10-19 19:20 ET
wlg-staff-brief — MJ 18:44 ("the team no longer sees the really important details because I am shrinking program details in emails and texts — how can we create a message for the staff with the details of what is going out?"): the ➕ ticked staff now get a 📋…
worklog.html2026-10-19 19:00 ET
v4.64 · r472: DONE wl-commit-dd (Direct Deposit answer on the commitment sheet + staff lens).
requirements.html2026-10-19 18:55 ET
v3.15 Direct Deposit answer on the commitment — MJ 18:37: the youth 🤝 sheet (wlg-commit.js r2) now asks a required Direct Deposit question (has an account in their own name and registers by 10/29 · needs help). Staff side: 💳 HELP chip next to 🤝 IN on the…
admin-dashboard.html2026-10-19 18:55 ET
dd-help-filter — MJ 18:37 (Direct Deposit added to the youth commitment): the 🤝 Commitment filter on the Message Center WLG lane and the SMS Center gains "💳 Asked for help with Direct Deposit" (+ "no DD answer yet" on the Message Center); preview rows show 💳…
wlg-commit.js2026-10-19 18:50 ET
r2 DIRECT DEPOSIT on the checklist — MJ 18:37 ("Direct Deposit registration ends on 10/29 — we need them to confirm they have an account and will register immediately, or they need help signing up; remind them the account should be in their name"): the sheet…
worklog.html2026-10-19 18:32 ET
v4.63 · r471: DONE mc-staff-wyatte-ghazala.
admin-dashboard.html2026-10-19 18:30 ET
mc-staff-wyatte-ghazala — MJ 18:26 ("on the syep message center I need to add two more staff to the staff list"): Nigel Wyatte (nwyatte@nycid.org) and Sean Ghazala (sghazala@nycid.org) join bulkStaffList() — the ➕ staff checkboxes on the Message Center / WLG…
worklog.html2026-10-19 18:27 ET
v4.62 · r470: DONE wire-type-here-r2.
team-hub.js2026-10-19 18:25 ET
type-here r2 — MJ 18:22 ("make that typing box a bit bigger it's smushed in there"): the message box now takes the whole width of the field on its own row — four lines tall before it scrolls (was two, squeezed between the icons and Send), larger text…
worklog.html2026-10-19 18:12 ET
v4.61 · r469: DONE stay-on-tab-admin, OPEN stay-on-tab-suite (all other tabbed pages).
admin-dashboard.html2026-10-19 18:10 ET
stay-on-tab r1 — MJ 17:58 ("is there any way that when you reload a page it can stay on that page instead of going back to the main admin overview page"): the active tab now lives in the URL hash — showTab writes #<tab>, the Comms and Command Center sub-tabs…
type-here r1 — MJ 10-19 17:53 (screenshot, arrows at the bottom bar: "make this area on the wire more clearly pronounced as the area where you type"): the message box was a near-black strip on a near-black panel with a hairline border, so it vanished. Now it…
worklog.html2026-10-19 17:25 ET
v4.59 · r467: DONE wlg-roster-auth-wait.
admin-dashboard.html2026-10-19 17:25 ET
wlg-roster-waits-for-auth — MJ 17:16 (console: repeated "wlg_commitments / SMS WLG roster load failed: Missing or insufficient permissions" then "193 on the cycle"): the WLG roster warm-up ran before Firebase finished signing the staffer in, bounced, and…
worklog.html2026-10-19 16:25 ET
v4.58 · r466: DONE mc-wlg-lane (Message Center WLG lane with staff copies + email + text).
admin-dashboard.html2026-10-19 16:20 ET
message-center-wlg-lane — MJ 15:53 ("I now can't add staff to these messages because the staff interface was on the Message Center — I need the SMS added to that screen instead"): the 📤 Message Center gains a 🤝 WLG 2026-27 participant section (first button on…
worklog.html2026-10-19 15:58 ET
v4.57 · r465: DONE sms-center-email.
admin-dashboard.html2026-10-19 15:55 ET
sms-center-email — MJ 15:46 ("This doesn't also send an email though?"): NEW ✉️ Email the same recipients block under Compose — subject + body (prefilled with MJ's short 10-19 message), same tags incl. {{dashLink}}, goes to each TICKED youth's email on file…
worklog.html2026-10-19 15:40 ET
v4.56 · r464: DONE sms-center-wlg-cut (admin-dashboard SMS Center on the WLG roster + initiative filter · requirements v3.14.2 short template); built on r463.
requirements.html2026-10-19 15:35 ET
v3.14.2 short commitment template — MJ 15:17 (standing rule: "we cannot send out so much program info anymore — it's always going to be short and sweet"): the 🤝 WLG commitment template is now MJ's short email (details are on your dashboard, tap the banner,…
admin-dashboard.html2026-10-19 15:35 ET
sms-center-wlg-cut — MJ 15:17 ("all of this should be done on the message center on the dashboard, not on the requirements interface — I can't just grab the OLs because there are AGVEP kids in here… add initiative to these filters… remove all the 2026 SYEP…
worklog.html2026-10-19 15:20 ET
v4.56 · r463: DONE wire-hug (🤗 reaction).
team-hub.js2026-10-19 15:20 ET
hug r1 — MJ 10-19 15:06 ("add a hug emoji to all of the emojis"): 🤗 joins the reaction set on every message and board post (👍 ❤️ 🤗 🎉 😂 ✅ 🔥); reactions ride the existing per-message reactions map — no rules change. Carries badge-breakdown r1 (15:15) +…
worklog.html2026-10-19 15:15 ET
v4.55 · r462: DONE wire-badge-breakdown (team-hub.js badge-breakdown r1 — launcher bubble split messages / to-dos, 🔔 Waiting for you strip). Built on MJ's r461 (v4.54).
worklog.html2026-10-19 14:50 ET
v4.54 · r461: DONE wl-commit-wlg-only (AGVEP excluded from the banner + outreach); built on r460.
youth-dashboard.html2026-10-19 14:45 ET
v2.9.1 banner is WLG-only — MJ 14:35 ("trigger the banner on all accounts only WLG — not AGVEP"): mountCommit skips a youth whose enrollment_tracking.initiative is AGVEP (blank = WLG); withdrawn still skipped. Nothing else changed. Firestore rules: N/A (v96).…
wlg-lab.html2026-10-19 14:45 ET
v1.3.1 banner is WLG-only — MJ 14:35 ("only WLG — not AGVEP"): mountCommit first reads the youth's own enrollment_tracking/{cycle}__{personId} (ownsPerson read, already allowed) and skips the banner when initiative is AGVEP or status is withdrawn; a read…
requirements.html2026-10-19 14:45 ET
v3.14.1 commitment lens is WLG-only — MJ 14:35 ("outreach… only WLG — not AGVEP"): AGVEP youth are excluded from the 🤝 No-answer queue row, the need-commit Bulk Outreach target, the Director no-answer count and the roster 🤝 ? chip (a signed AGVEP answer would…
worklog.html2026-10-19 13:45 ET
v4.51 · r458: hub v2.4.1 — third designation group is Conflict management, not Crisis.
v2.4.1 — MJ 10-19 09:26: the third group is CONFLICT management (Ivy · Candace), not Crisis — label fixed, same id.
worklog.html2026-10-19 13:40 ET
v4.50 · r457: DONE hub-designations (cm-onboarding-hub.html v2.4 — 🧭 Supervisor designations panel, org_settings/onboarding_supervisors, Role Assignment prefill by program group).
cm-onboarding-hub.html2026-10-19 13:35 ET
v2.4 supervisor designations — MJ 10-19 09:22 ("we need to load the supervisor roster… a designation panel in Solutions would be better… FFS: Ivy and Candace for 2 and 3, primary open · CMSI: Malcolm, Michael DeVito and Candace · Conflict management: primary…
worklog.html2026-10-19 13:15 ET
v4.49 · r456: DONE hub-status-only (cm-onboarding-hub.html v2.3.1 — roster keys on tracker status alone; a hire moved back to Interviewing / New leaves the roster).
cm-onboarding-hub.html2026-10-19 13:10 ET
v2.3.1 status-only — MJ 10-19 09:14 ("I tested a few people making their designation on the tracker hired and then new again but those people are showing in the queue still — it needs to work backwards"): the roster now keys on the tracker's STATUS alone…
worklog.html2026-10-19 13:00 ET
v4.48 · r455 (on MJ's r454): DONE hub-auth-first (cm-onboarding-hub.html v2.3 — ROOT CAUSE of the empty roster: listeners started before sign-in; + ✕ Remove from roster + 👁 All applicants diagnostics). firestore_v96 (MJ's, carries v95) is the file to publish.
cm-onboarding-hub.html2026-10-19 12:55 ET
v2.3 auth-first listeners + remove + diagnostics — MJ 10-19 09:04–09:07 ("it's still not working — I accidentally added him manually and I can't delete" · tracker screenshot: Marcus Shields HIRED on Solutions, hub blank). ROOT CAUSE: the hub's Firestore…
v2.2 search-all + three supervisors — MJ 10-19 08:53 ("Marcus' record is there but I still can't search for him" · "for the reporting structure we need primary, secondary and tertiary — load the current staff index"). (1) SEARCH FINDS EVERY APPLICANT: the…
staff-roster.js2026-10-19 12:00 ETcurrent build
NEW r1 — the NYCID staff index as a shared file (MJ 10-19 08:53: "for the reporting structure we need primary, secondary and tertiary — can you just load the current staff index here"). window.NYCID_STAFF_ROSTER = the same 154 people the staff index…
worklog.html2026-10-19 11:45 ET
v4.53 · r460: DONE mtg-run-add (meetings.js r4 — add agenda items from the minutes view, unlimited action items, snapshot no longer wipes typing).
worklog.html2026-10-19 11:45 ET
v4.45 · r452: DONE careers-admin-cutover (nycid-careers-admin.html solutions-cutover r1 on MJ's confirmed r441/r442 copy); careers-import still open (gcloud).
meetings.js2026-10-19 11:45 ETcurrent build
r4 minutes add-item + many actions — MJ 10-19 11:22 ("on the meetings app… add an agenda item on the minutes section and also there needs to be more than one action item added"). (1) RUN / MINUTES view gets a dashed + New agenda item row at the end of the…
solutions-cutover r1 — MJ 10-19 (the Onboarding Hub showed no hires: this tracker still read and wrote career_applications / syep_career_applications on the LEGACY project, which MJ shut down 10-15, while the hub reads nycid-solutions). ONE CONSTANT: the…
v4.44 · r451: DONE wire-undock-window (team-hub.js undock-window r1 + NEW wire.html — ⧉ Undock opens the whole Wire, drawers included, in a real window that moves to any screen and maximizes; launcher pills hide while the stack is open).
wire.html2026-10-19 11:20 ETcurrent build
NEW v1.0 — The Wire in its own window (MJ 10-19: "when I undock I can't make it fill another screen… the to do and my lists etc. is not undocking with it"). ⧉ Undock on any page opens this page as a real browser window (team-hub.js undock-window r1): the…
solutions-cutover r1 — MJ 10-19 (Onboarding Hub showed no hires: this form and the Live Tracker still wrote career_applications on the LEGACY project, which MJ shut down 10-15, while the hub reads nycid-solutions). The page's default Firebase app is now…
cm-onboarding-hub.html2026-10-19 10:45 ET
v2.1 one-source + search — MJ 10-19 08:29 ("the search is not working… remove the SYEP careers from this description — that app is removed now and replaced by NYCID careers"). WHY THE ROSTER WAS EMPTY: v2.0 (10-08) moved this page to nycid-solutions, but…
worklog.html2026-10-19 10:25 ET
v4.42 · r449: DONE mtg-attendees (meetings.js r3 — attendee search over the live directory merged from team_profiles · privacy_training_roster · staff_vcards · past meetings; guests by Name <email>).
worklog.html2026-10-19 09:55 ET
v4.41 · r448: DONE mtg-video (meetings.html v1.1 Jitsi room beside the agenda) + mtg-notetaker (meetings.js r2 live transcript · record · Claude draft review; NEW tools/functions-meetings meetingTranscribe + meetingDraft). OPEN mtg-fn-deploy (npm install ·…
meetings.html2026-10-19 09:40 ETcurrent build
v1.1 +video — MJ 10-19 ("like zoom or google meets" · "see where I am going" — Zoom is $15K/yr): the meeting room is IN the page. Open a meeting → 🎥 Join the call here loads Jitsi Meet (the free public meet.jit.si server now; the same embed points at NYCID's…
meetings.js2026-10-19 09:30 ET
r2 note taker — MJ 10-19 ("build it with the Claude API"). The Run view gains a 🎙 NOTE TAKER box: (1) LIVE TRANSCRIPT — the browser's own speech recognition (Chrome / Edge), words land under the active agenda item as liveTranscript [{at,itemId,text}], free,…
worklog.html2026-10-19 09:15 ET
v4.47 · r454: FIX worklog JS (privacy-training-r398 item was missing its closing brace since r453 — page would not render) · DONE wl-commit + req-commit-lens (wlg-commit.js r1 · youth-dashboard v2.9 · wlg-lab v1.3 · requirements v3.14 · rules v96); OPEN…
worklog.html2026-10-19 09:00 ET
v4.40 · r447: DONE mtg-v1 (NEW meetings.js r1 + cm-coo-dashboard.html +meetings-lens r1 + NEW meetings.html v1.0). OPEN mtg-rules (publish firestore_v95, carries v91–v94). PARKED mtg-video (in-app video: Jitsi embed beside the agenda, or WebRTC for small…
requirements.html2026-10-19 09:00 ET
v3.14 WLG commitment lens + outreach template + 5/6 PM vote — MJ 10-19 08:09 ("reach out to our WLG youth today… get their commitment… a choice starting at either 5 or 6 — the majority will win… if they are deciding not to participate we need them to tell us…
youth-dashboard.html2026-10-19 08:55 ET
v2.9 WLG commitment banner — MJ 10-19 08:09 ("reach out to our WLG youth today… reintroduce the timeline… orientation days the 27th and 29th of October, two 90-minute sessions starting at either 5 or 6, majority wins… a banner on all dashboards with a signed…
wlg-lab.html2026-10-19 08:55 ET
v1.3 WLG commitment banner — MJ 10-19 08:09 ("a banner on all dashboards with a signed commitment"): the shared wlg-commit.js (r1) 🤝 banner is mounted at the top of My Sessions for every signed-in participant (never for staff) — same three states and the same…
meetings.html2026-10-19 08:45 ET
NEW v1.0 — full-screen 📝 Meetings (the same meetings.js the COO dashboard lens draws), for the laptop open during a meeting: sign in with @nycid.org on nycid-solutions, both logos by theme, ☀️ light toggle, 🏠 Index. Firestore rules: firestore_v95 (meetings).…
cm-coo-dashboard.html2026-10-19 08:40 ET
+meetings-lens r1 — MJ 10-19 07:51 ("an interface on my coo dashboard that allow me to build an agenda and take minutes"): NEW 📝 Meetings pill + lens drawn by the NEW shared meetings.js (agenda builder with the Exec-team-weekly template, run mode with…
meetings.js2026-10-19 08:30 ET
NEW r1 📝 Meetings — agenda + minutes (MJ 10-19 07:51: "an interface on my coo dashboard that allow me to build an agenda and take minutes"). A shared drop-in: NYCIDMeetings.mount(el) draws it into the ⚑-style lens on cm-coo-dashboard.html (and meetings.html…
NEW v1.0 NYCID Sign — the signer's page (MJ 10-16: send a document to a partner "through our app" with a DocuSign-grade record). apps.nycid.org/sign/<token>: no account, the 20-char token in the link is the only way in. Loads sign_requests/{token} on…
sign-admin.html2026-10-16 09:40 ET
NEW v1.0 NYCID Sign console — MJ 10-16 ("I need to grab signatures for our school partners for CMSI… a real verification summary like we would on docusign… discontinue docusign all together… an interface that I can upload a document to, set the fields that…
sign-core.js2026-10-16 09:20 ET
NEW r1 — NYCID Sign shared engine (MJ 10-16: "a real verification summary like we would on docusign… I am to discontinue docusign all together"). Used by sign-admin.html (staff console) and sign.html (the signer's page). Holds: the field vocabulary (signature…
Thursday, October 15, 2026 11 builds
worklog.html2026-10-15 16:10 ET
v4.38 · r445: +cut-travel-import open (summer 2026 travel claims live on Legacy; Director dash on Solutions had them on the retired list — admin-dashboard.html travel-on-solutions r1 un-retires travel_log/travel_signatures; MJ to gcloud export/import…
admin-dashboard.html2026-10-15 16:05 ET
travel-on-solutions r1 — MJ 10-15 ("I didn't finish processing the travel for the summer and I do not see the previously submitted travel reimbursements on the SYEP Director dash now"). CAUSE, read off the bytes: the 10-05 solutions-data-flip put travel_log…
worklog.html2026-10-15 15:45 ET
v4.37 · r444: DONE id-cards-vcard (id-cards.html v1.1 white back + QR · NEW vcard.html public contact card at /v/<token> · NEW my-card.html · NEW qr-lib.js · team-hub.js +my-card pill r1 · _redirects r10). id-cards-rules now = publish firestore_v92 (carries…
team-hub.js2026-10-15 15:35 ET
+my-card pill r1 — MJ 10-15 ("I want the staff member to have access to these data on their own app somewhere — maybe it can be a small pill on the Wire"): a 🪪 My Card pill in the hub head, beside 📞 Call Out, opens my-card.html — where a staff member edits…
id-cards.html2026-10-15 15:30 ET
v1.1 white back + business-card QR — MJ 10-15 14:21 ("the whole card should be white… operate as a business card with a unique QR that can be scanned to get contact information"). BACK is now white: logo, org + address + office line, the person's email and…
my-card.html2026-10-15 15:20 ET
NEW v1.0 my contact card — MJ 10-15 ("I want the staff member to have access to these data on their own app somewhere — maybe a small pill on the Wire"): the 🪪 My Card pill on The Wire opens this page. A staff member signs in (@nycid.org, nycid-solutions),…
vcard.html2026-10-15 15:15 ET
NEW v1.0 public contact card — MJ 10-15 ("I want these cards to operate as a business card with a unique QR that can be scanned to get contact information… the person's picture, email, phone etc"). apps.nycid.org/v/<token> is what the QR on the back of every…
qr-lib.js2026-10-15 15:10 ETcurrent build
NEW r1 — qrcode-generator 1.4.4 (Kazuhiko Arase, MIT), the same copy partner-join.html inlines, as a shared file: window.qrcode(typeNumber, errorLevel) → .addData() .make() .createSvgTag() / .createDataURL(). Loaded by id-cards.html (QR on the card back),…
worklog.html2026-10-15 14:55 ET
v4.36 · r443: DONE id-photo-hr-view (NEW id-cards.html v1.0 — HR / exec ID card queue + Magicard 300 print console, CR80 front+back from the browser, staff_id_cards) + id-photo-link (NEW id-photo.html + /id-photo rewrite). OPEN id-cards-rules (publish…
id-cards.html2026-10-15 14:45 ET
NEW v1.0 ID card printer console — MJ 10-15 ("I think this calls for an interface as well… Magicard 300 Dual Sided… set up the interface to be able to just print these cards without too much to do"). HR + executives only (the hrWriter / csuite lists in the…
id-photo.html2026-10-15 14:30 ET
NEW v1.0 direct link — MJ 10-15 ("create a direct link to the picture uploader so that we can get ID printed"): apps.nycid.org/id-photo is the one address to send staff to. It is the same 🪪 NYCID ID Photo tool as the index card (shared id-photo.js, 2 × 2 inch…
Wednesday, October 14, 2026 13 builds
worklog.html2026-10-14 12:00 ET
v4.35 · r442: DONE otps-split-board (budget-board.js r7 — ✂ split a purchase across up to 5 programs, program dropdown, % + $) + otps-split-cap5 (EA dash split-cap-5 r1). otps-split-ffs narrowed to ffs_purchases only. Firestore rules: N/A (v90 stands).
split-cap-5 r1 — MJ 10-14 11:29 ("up to 5 splits"): the ✂ split on 📤 Upload a receipt is capped at FIVE rows (➕ Add a row disables at 5 and says so; the send refuses more); the program dropdown per row was already there. No data shape change. Firestore rules:…
budget-board.js2026-10-14 11:50 ETcurrent build
r7 split-across-programs — MJ 10-14 11:29 ("spit a bill/receipt up across a few programs — a travel receipt gets split 2 ways Concord and OA — up to 5 splits — do a drop down for the programs"). The + Log purchase form gains ✂ Split this purchase across…
worklog.html2026-10-14 11:47 ET
v4.34 · r441: DONE privacy-training-r441 (privacy-training.html v1.4 — certificate as a PDF file; print pill was dead inside the Gmail app / PWA). Firestore rules: N/A.
privacy-training.html2026-10-14 11:45 ET
v1.4 certificate as a PDF file — staff report 10-14 ("the pill that you click to print or download isn't working"). CAUSE: the button only called window.print(), which does nothing inside the Gmail app's in-app browser (where the notice link opens on a…
worklog.html2026-10-14 10:20 ET
v4.33 · r440: DONE privacy-renewal-364 (NEW tools/functions-training · trainingRenewals) + coo-compliance-lens (cm-coo-dashboard.html +compliance-lens r1, NEW coo-compliance.js). OPEN training-function-deploy (MJ: npm install · firebase deploy --only…
coo-compliance.js2026-10-14 10:20 ETcurrent build
NEW r1 — MJ 10-14 ("add this to my COO dashboard as a new feature which tracks these types of actions needed in the app"): the ⚑ Compliance actions lens on cm-coo-dashboard.html. Reads staff_privacy_training (every record), privacy_training_roster (the loaded…
cm-coo-dashboard.html2026-10-14 10:20 ET
+compliance-lens r1 — MJ 10-14 ("add this to my COO dashboard as a new feature which tracks these types of actions needed in the app"): NEW ⚑ Compliance actions pill + lens (NEW coo-compliance.js): every staff member sorted into Expired · Expiring within 30…
worklog.html2026-10-14 09:28 ET
v4.32 · r439: DONE privacy-notice-editable (privacy-training.html v1.3). Built on r438. Firestore rules: N/A this build (v90 stands). Storage rules: N/A.
privacy-training.html2026-10-14 09:28 ET
v1.3 editable notice + test send — MJ 10-14 09:27 ("I need a way to edit this email as needed, and I want a test button that sends to my email"). On the executive roster card, under the staff loader: ✉ The notice email → Edit opens the subject, opening,…
+wlglab-tab r1 — MJ 10-14: "the lab added to the syep admin dash as a tab for lab management of issues responses etc." NEW 🧭 WLG Lab tab (Participants group) reading the Lab's data on nycid-solutions: 🚩 Issues (needs-help from Get set up, code mismatches,…
wlg-lab.html2026-10-14 09:10 ET
v1.2 TESS DECK FIXES + ECCMT — Tess 10-14: NEW Part 2 slide “Where the 7 Habits come from” after the habits map (MJ’s why-line is a Program fact, whyHabits, editable in the Facilitator tab); poll (A/B/C/D) now BEFORE the credit-limit story; story split into…
Monday, October 12, 2026 9 builds
worklog.html2026-10-12 11:36 ET
v4.30 · r437: DONE interviews-view-r437 (+ Add a candidate stages names — Send the invite to N / Add without emailing; Position on ✎ Change the day; Messages preview from the selected day). NEW parked: interview-reply-wire-notice (Wire notice when a candidate…
nycid-careers-admin.html2026-10-12 11:36 ET
interviews-view r2 — MJ 10-12 11:18–11:25 (three candidates were emailed the moment he clicked their names in + Add a candidate, and the ✉️ Messages preview read Career Developer for a School-Based Mediation day): (1) + Add a candidate now only STAGES names —…
interviews-view r1 — MJ 10-12 08:14 ("once an interview session is opened it needs its own space") + 09:45 ("I don't love it — the pills are clunky… just add, cancel, change and reset"): NEW top-level 📆 Interviews view beside Applications / Youth Enrollments.…
slot-reconcile r1 — pairs with interview-reply.html v1.4 (candidates may change their answer): when a candidate moves to another time or switches to none-work, the slot they left is still marked booked until a staff page sees it — this build releases it…
v1.4 change-answer — MJ 10-12 08:22 ("I'd prefer that they can change their answer too"): a booked candidate gets "Change my time" and a none-work candidate gets "Changed your mind? Pick a time"; both bring the open times back and None of these work stays…
worklog.html2026-10-12 08:05 ET
v4.27 · r434: DONE careers-where-is-yours-r434 (plain "In person", Where no longer overwritten by a How change; nycid-careers-admin.html where-is-yours r1). Built on r433. Firestore rules: UPDATE NEEDED — publish v88 (unchanged). Storage rules: N/A (v24).
nycid-careers-admin.html2026-10-12 08:05 ET
where-is-yours r1 — MJ 10-12 07:54 ("remove the 130 from the in-person and make sure the where/link/number works if I put a different address"): the How list reads plain "In person" on both the 📆 Interview slots day and the per-row interview invite (no…
Sunday, October 11, 2026 9 builds
worklog.html2026-10-11 12:40 ET
v4.26 · r433: DONE pick-link-path-id-r433 (interview-reply.html v1.3 — id read from /interview/<id> path, assets anchored to the site root; found on MJ's first live open). Built on r432. Firestore rules: UPDATE NEEDED — publish v88 (unchanged). Storage rules:…
interview-reply.html2026-10-11 12:40 ET
v1.3 path-id — MJ 12:30, first live open of a pick link: "This link is missing its invitation id" and a broken logo. The link is apps.nycid.org/interview/<id>, so the browser resolved the page's relative paths against /interview/ (logo 404) and the id did not…
worklog.html2026-10-11 12:25 ET
v4.25 · r432: DONE careers-msg-preview-live-r432 (✉️ Messages preview fills from the day being built; nycid-careers-admin.html msg-preview-live r1). Built on r431. Firestore rules: UPDATE NEEDED — publish v88 (unchanged this round). Storage rules: N/A (v24).
nycid-careers-admin.html2026-10-11 12:25 ET
msg-preview-live r1 — MJ 12:10 (editing the invite with School-Based Mediator picked, the preview said Career Developer): the ✉️ Messages preview filled its merge tags with fixed sample values. It now fills from the day open on + New interview day — program,…
worklog.html2026-10-11 12:15 ET
v4.24 · r431: DONE careers-edit-details-r431 (✏️ Edit details on every NYCID row; nycid-careers-admin.html edit-details r1). slot-rules-v87 → superseded by careers-rules-v88 (publish firestore_v88, carries v87). Built on r430. Firestore rules: UPDATE NEEDED —…
nycid-careers-admin.html2026-10-11 12:15 ET
edit-details r1 — MJ 10-11 11:57 ("need to be able to edit the person's details after they are saved the first time"): ✏️ Edit details on every open NYCID row (career_applications) opens the same box as ➕ Add offline, filled with the record — name, email,…
slot-messages r1 — MJ 10-11 11:34 ("what happens when they can't accept… what does the email say? I'd like to be able to edit the message in this interface"): until now a candidate who tapped None of these work got nothing by email and neither did the…
interview-reply.html2026-10-11 11:55 ET
v1.2 shared-wording — pairs with nycid-careers-admin.html slot-messages r1: the confirmation email this page sends after a pick, and a NEW acknowledgment sent when the candidate says none of the times work (to the candidate, interviewer + CC'd partners copied…
Saturday, October 10, 2026 15 builds
worklog.html2026-10-10 14:40 ET
v4.22 · r429: DONE careers-postings-in-dropdowns-r429 (live postings in the Applying-for / For lists + resume-scan match; nycid-careers-admin.html postings-in-dropdowns r1). Built on r428. Firestore rules: N/A (v86). Storage rules: N/A (v24).
nycid-careers-admin.html2026-10-10 14:40 ET
postings-in-dropdowns r1 — MJ 14:29 ("the Position is not showing on the drop down window in Applying for"): the "Applying for" list in ➕ Add offline, the "For" list on 📆 Interview slots, and the resume scan's position match were all built from the two roles…
worklog.html2026-10-10 14:30 ET
v4.21 · r428: DONE careers-postings-save-fix-r428 (Post refused with invalid-argument — facts were nested arrays; nycid-careers-admin.html postings-save-fix r1 + nycid-careers.html live-postings r2). Built on r427. Firestore rules: N/A (v86). Storage rules:…
nycid-careers.html2026-10-10 14:30 ET
live-postings r2 — pairs with nycid-careers-admin.html postings-save-fix r1: a live posting's At-a-glance facts now arrive as {k, v} objects (Firestore refuses the nested [k, v] pairs the baked entries use); the loader turns them into pairs so renderJob is…
nycid-careers-admin.html2026-10-10 14:30 ET
postings-save-fix r1 — MJ 14:20 ("Could not save: invalid-argument" on Post): the At-a-glance facts went to Firestore as a list of two-item lists and Firestore refuses nested arrays (the same trap as the FFS seed, 09-21). Facts are now saved as {k, v}…
worklog.html2026-10-10 13:45 ET
v4.20 · r427: DONE careers-google-popup-r427 (nycid-careers-admin.html google-popup r1 — Fetch / Check conflicts / Put on my calendar open the Google sign-in themselves when the token is stale). DONE slots-gcal-console + postings-drive-console (MJ 10-10…
nycid-careers-admin.html2026-10-10 13:45 ET
google-popup r1 — MJ 13:38 ("add the pop up please"), after Fetch stopped with "Connect your NYCID Google first" once the ~55-minute token had aged out: Fetch (📣 Job postings), ⚠ Check my calendar and 📅 Put on my calendar (📆 Interview slots) now open the…
live-postings r1 — MJ 10-10 09:54 ("share a Google Drive link… and I want that link to populate the live Careers app"): posted positions are no longer only the two baked into this file. At load the page reads career_positions on nycid-solutions (open == true)…
nycid-careers-admin.html2026-10-10 10:20 ET
job-postings r1 — MJ 10-10 09:54 ("Do we already have an interface to upload new jobs? I want to share a Google Drive link… and have that link populate the live Careers app"): there was none — the two posted roles were baked into nycid-careers.html. NEW 📣 Job…
interview-slots r1 + resume-scan r1 — MJ 10-10 09:24 ("send the candidates calendar options… this coming Friday 10/16, three interviews starting at 8 am, 30 minutes with 10 in between… candidates pick… I have control over adjustments… a button in the email…
interview-reply.html2026-10-10 10:05 ET
v1.1 pick-a-time — MJ 10-10 ("a button in that email that takes them to a screen" where candidates choose): a career_outreach link of type "slots" now shows the interview day’s OPEN times as big buttons; the candidate taps one and it is theirs — one write to…
worklog.html2026-10-10 09:40 ET
v4.17 · r424: DONE careers-resume-scan-r424 (nycid-careers-admin.html resume-scan r1 — a resume picked in ➕ Add offline is read in the browser and fills the blank fields). OPEN resume-scan-live-test. Built on r423. Firestore rules: N/A (v84 published;…
nycid-careers-admin.html2026-10-10 09:40 ET
resume-scan r1 — MJ 10-10 09:10 ("can we write a scanning tool so that when we upload the resume it populates the fields?"): in ➕ Add offline, choosing a resume file now READS it in the browser and fills the blank fields — name, email, phone, borough + ZIP,…
Friday, October 9, 2026 14 builds
worklog.html2026-10-09 13:50 ET
v4.16 · r423: DONE wire-solutions-cutover-r423 (team-hub.js solutions-cutover r1 + call-in.js v6.3). OPEN wire-history-import (MJ: gcloud export/import per wire-history-move.md), OPEN index-gate-to-solutions. Built on r422. Firestore rules: N/A (v84…
team-hub.js2026-10-09 13:50 ET
solutions-cutover r1 — MJ 10-09 13:35 (screenshot: "Attachment upload was refused by Storage… storage/unauthorized team_chat/…") → 13:37 "2" (cut over and carry the history). ROOT CAUSE: THX_PROJECT still pointed The Wire at Legacy syep-2026-job-placement…
call-in.js2026-10-09 13:50 ETcurrent build
v6.3 solutions-cutover — MJ 10-09 13:37 (The Wire cutover, "everything should be going to solutions" 10-05): CFG is the nycid-solutions web config; staff_callins, staff and mail now read and write nycid-solutions (firestore_v84 carries staff_callins).…
worklog.html2026-10-09 12:55 ET
v4.15 · r422: DONE index-org-chart-off-r422 (index.html −org-chart card r1). Built on r421. Firestore rules: v84 still to publish. Storage rules: N/A.
index.html2026-10-09 12:55 ET
−org-chart card r1 — MJ 10-09 12:51 ("remove the org chart, it's not correct"): the collapsed 🧩 NYCID Organizational Chart card (10-08) is gone from every desk and org-board.js is no longer loaded by this page. Built on one-roster r1 (12:40, not yet confirmed…
worklog.html2026-10-09 12:40 ET
v4.14 · r421: DONE one-roster-index-r421 (index.html one-roster r1), DONE wire-roster-r421 (team-hub.js one-roster r1). OPEN super-admin-rules-v84 (MJ to publish firestore_v84). PARKED wire-welcome-tour (welcome DM + guided tour on The Wire, awaiting GO).…
team-hub.js2026-10-09 12:40 ET
one-roster r1 — MJ 10-09 12:12/12:20 (a new team member could not be found on The Wire; "this one roster should supersede anything I had loaded before"). ROOT CAUSE: the people list (THX_STAFF) was a hand-kept list last grown 09-01, so anyone added since was…
index.html2026-10-09 12:40 ET
one-roster r1 — MJ 10-09 12:20 ("this one roster should supersede anything I had loaded before which set up dashboard access… super admin access should now be set to me, IB, JO and Michael Candella Jr (mcandella1@nycid.org)"). NYCID_one_roster_2026-10-07.csv…
worklog.html2026-10-09 10:45 ET
v4.13 · r420: DONE tr-initiative-col1-dials-r420 (requirements.html v3.13.1). OPEN tr-repull-with-initiative (MJ: re-pull the YEPS report with Initiative ticked, re-import). Built on r419. Firestore rules: N/A. Storage rules: N/A.
requirements.html2026-10-09 10:45 ET
v3.13.1 Initiative is column 1 of the YEPS report + initiative split on the dials — MJ 10-09 10:36 ("when the master report was pulled the AGVEP was not listed because we need to add Initiative as the first column in the uploaded report — also on the dial on…
worklog.html2026-10-09 10:20 ET
v4.12 · r419: DONE tr-agvep-initiative-r419 (requirements.html v3.13 — AGVEP as a separate initiative). Built on r418. Firestore rules: N/A this build. Storage rules: N/A this build.
requirements.html2026-10-09 10:20 ET
v3.13 AGVEP as a separate initiative — MJ 10-09 10:03 ("I need to add the AGVEP as a separate initiative like the old tracker used to have", old compliance-outreach-tracker.html 07-02 build as the reference). Same model as the old tracker, inside the cycle:…
worklog.html2026-10-09 09:50 ET
v4.11 · r418: DONE tr-import-osis-refused-r418 (requirements.html v3.12.1 — WLG import no longer refused for OL-only youth). Built on r417. Firestore rules: N/A this build (v83 as published is correct). Storage rules: N/A this build.
requirements.html2026-10-09 09:50 ET
v3.12.1 WLG import no longer refused for OL-only youth — MJ 10-09 09:38 (screenshot: "Batch failed (FIRESTORE rules refused it — is firestore_v76 published on nycid-solutions? · permission-denied)" on the 14 new + 174 update import). ROOT CAUSE: firestore_v83…
Thursday, October 8, 2026 30 builds
worklog.html2026-10-08 17:19 ET
v4.10 · r417: DONE tr-resend-invite-dead (requirements.html v3.12). OPEN wlg-youth-nycid-signin. Built on r416. Firestore rules: N/A this build. Storage rules: N/A this build.
requirements.html2026-10-08 17:19 ET
v3.12 resend invite works + shows the link — MJ 10-08 17:18 ("when I press here I am not even sure if it's sending anything and I can't see the link it's sending"). ROOT CAUSE: the ↻ Resend invite / ✉ Send invite button on the case file (#dInvite) had no…
worklog.html2026-10-08 17:08 ET
v4.09 · r416: MERGE onto r415 as uploaded by MJ. DONE privacy-notice-from-ceo (privacy-training.html v1.2.3, from the privacy-training chat). Carries r415 unchanged otherwise. Firestore rules: N/A this build (v83 published per the r415 worklog). Storage…
privacy-training.html2026-10-08 17:06 ET
v1.2.3 notice button moved — MJ 10-08: in the training notice email the blue Open the training button now sits under step 5 of the instructions, not above them. Nothing else changed. Firestore rules: N/A. Constant Contact: N/A.
privacy-training.html2026-10-08 17:03 ET
v1.2.2 notice from the CEO — MJ 10-08 ("It should come from Candace"): the training notice email is now sent from Candace Gonzalez <cgonzalez@nycid.org> and closes with her name and title; the send confirmation says so. Questions and replies still go to…
worklog.html2026-10-08 16:38 ET
v4.08 · r415: DONE careers-outreach-r2 (nycid-careers-admin.html outreach r2 — Outreach card full-width under the grid). Built on r414. Firestore rules: v83 published 10-08 ~14:20 (MJ). Storage rules: v24 published 10-08 ~14:19 (MJ).
nycid-careers-admin.html2026-10-08 16:35 ET
outreach r2 full-width — MJ 16:29 ("put email center underneath, it’s too narrow"): the ✉️ Outreach card moves out of the narrow Review column to its own full-width row under the detail grid; inside it the composer (Email / Interview invite) sits left and the…
worklog.html2026-10-08 14:02 ET
v4.07 · r414: DONE my-calendar-r414 (NEW my-calendar.js + team-hub.js +my-calendar drawer r1 + NEW tools/functions-calendar). OPEN calendar-rules-v83 (publish firestore_v83 — carries v80–v82), calendar-function-deploy (calendarReminders). Built on r413.…
team-hub.js2026-10-08 13:57 ET
+my-calendar drawer r1 — MJ 10-08 ("Create a personal calendar on the wire for people to use independently. All notifications"): a 📅 My Calendar tab beside To-Dos · Lists opens a third drawer (thxd-cal, 440px, docks in the same accordion: To-Dos · Lists ·…
my-calendar.js2026-10-08 13:55 ETcurrent build
v1.0 — MJ 10-08 ("Create a personal calendar on the wire for people to use independently. All notifications"): 📅 MY CALENDAR, a drawer on The Wire (team-hub.js loads this file and opens it from a new 📅 My Calendar tab beside To-Dos · Lists). Each staffer's…
worklog.html2026-10-08 13:40 ET
v4.06 · r413: DONE careers-outreach-r413 (nycid-careers-admin.html outreach r1: email from the row, interview invites with .ics + Accept/Propose/Decline, progress timeline, 2 stat tiles; NEW interview-reply.html; _redirects /interview/:id; NEW collection…
interview-reply.html2026-10-08 13:36 ET
v1.0 — MJ 10-08 GO (candidate interview replies for the Careers Live Tracker): the page behind the ✅ Accept · 🔁 Propose another time · ✖ Decline buttons in an interview-invite email (apps.nycid.org/interview/<id>?a=accept|propose|decline). No sign-in: it…
nycid-careers-admin.html2026-10-08 13:35 ET
outreach r1 — MJ 10-08 GO ("track the progress of the candidate… email right from the page… add and accept interview invites for all platforms apple Google Microsoft"): NEW ✉️ Outreach card on every open row — (1) EMAIL: To = candidate, Reply-To = the…
worklog.html2026-10-08 11:32 ET
v4.05 · r412: tools/purge-ssn.js v1.1 (modular firebase-admin — v1.0 threw on firebase-admin 14; --key is the way in, no gcloud). ssn-purge-run steps corrected. Built on r411. Firestore rules: UPDATE NEEDED, publish v81 (unchanged this build). Storage rules:…
v1.1 modular-sdk — firebase-admin 13 on MJ's PC has no admin.credential namespace (v1.0 threw "Cannot read properties of undefined (reading 'applicationDefault')"); the script now uses the modular entry points (firebase-admin/app · /firestore · /storage),…
paycom-era hiring lens r1 — MJ 10-08: same change as the CHRO dash — Hire Request Form + Hire Form Tracker cards removed (pages retired, Paycom verifies employment, no SSN on Solutions); hiring strip counts the Onboarding Hub (onboarding_progress on…
cm-chro-dashboard.html2026-10-08 11:06 ET
paycom-era hiring lens r1 — MJ 10-08: the Hire Request Form and NYCID Hire Form Tracker cards are gone (cm-hire-form / onboarding-form retired — Paycom does employment verification, no SSN on Solutions); the hiring strip now counts the Onboarding Hub…
index.html2026-10-08 11:05 ET
−hire-form tile r1 — MJ 10-08: the NYCID Hire Form Tracker tile is gone (cm-hire-form.html and onboarding-form.html are retired — Paycom does employment verification, no SSN is collected on Solutions for staff); the Onboarding Command tile now says what the…
nycid-careers-admin.html2026-10-08 11:04 ET
hired→hub r1 — MJ 10-08 ("nycid-careers-admin directly to cm-onboarding-hub"): with Paycom doing employment verification the Hire Form (cm-hire-form / onboarding-form) is retired, so a row marked Hired on EITHER data home now lands straight in the Onboarding…
cm-onboarding-hub.html2026-10-08 11:00 ET
v2.0 paycom-era + role-assignment r1 — MJ 10-08 ("Paycom partners are now going to do all of our onboarding for employment verification… add the role assignment to the hub as the first item to complete… we are going to need a role roster… for now just put…
worklog.html2026-10-08 09:32 ET
v4.03 · r410: DONE id-photo-r1 (NEW id-photo.js; index.html +id-photo card). OPEN id-photo-rules (storage_v24 + firestore_v80 delivered, MJ to publish), id-photo-hr-view. Built on r409. Firestore rules: UPDATE NEEDED, publish v80. Storage rules: UPDATE…
index.html2026-10-08 09:32 ET
+id-photo card r1 — MJ 10-08 ("add the interface to the main screen"): a collapsed 🪪 NYCID ID Photo card under the org chart card, shown to every signed-in staff member (simple desk and full index); Open / Collapse pills top and bottom; drawn by the NEW…
id-photo.js2026-10-08 09:32 ET
NEW r1 NYCID ID photo — MJ 10-08 ("for staff, I'd like the interface to upload a picture for an NYCID ID… the dimensions of a simple 2 x 2 inch picture… add the interface to the main screen"): a shared drop-in that draws the ID photo tool into <div…
wlg-lab.html2026-10-08 09:02 ET
v1.1 WIRED + ORIENTATION — MJ 10-08 + Tess Doyle’s notes: connected to nycid-solutions (config from youth-dashboard.html r408, Google sign-in + mfa-gate.js + activity.js, youth matched by youth_profiles.linkedEmail, answers in wlg_lab_progress, staff settings…
worklog.html2026-10-08 08:14 ET
v4.02 · r409: DONE ccon-landing-v2 (community-connect.html v2.0 + manifest-community-connect.json), DONE org-board-r1 (NEW org-board.js; index.html +org-chart card). OPEN ccon-copy-review. FOUND ccon-desk-hiring-flag. Built on r408 as uploaded by MJ 10-08.…
org-board.js2026-10-08 08:14 ET
NEW r1 org chart — MJ 10-08 ("you can re-create this chart on the app and make it look really sleek and clear"; "this is also something that can go on the staff index"): the NYCID Organizational Chart rebuilt from the chart attached to the June 21, 2026…
index.html2026-10-08 08:14 ET
+org-chart card r1 — MJ 10-08 ("this is also something that can go on the staff index"): a collapsed 🧩 NYCID Organizational Chart card under the privacy training tile, shown to every signed-in staff member (simple desk and full index); Open / Collapse pills…
v2.0 landing page rebuilt — MJ 10-08 ("a landing page that explained our app and for people to download it… a basic message board with all of NYCID services and access to our NYCID careers portal. Lists of our school partnerships… an intuitive survey that…
Wednesday, October 7, 2026 43 builds
worklog.html2026-10-07 17:25 ET
v4.01 · r408: DONE index-desk-exec-list (index.html full-index +IB +JO r1). Built on r407. Firestore rules: N/A this build; v79 is still for MJ to publish. Storage rules: N/A.
index.html2026-10-07 17:25 ET
full-index +IB +JO r1 — MJ 10-07 ("add IB and JO to full index"): ibilotti@ and jobrien@ join mdevito@, cgonzalez@ and mcandella@ on the full index view (name finder, quick links and everything below it). The Add people panel stays MJ-only. Nothing else…
worklog.html2026-10-07 17:15 ET
v4.00 · r407: DONE index-add-people-mj-only. FOUND rules-lock-admin. Built on r406. Firestore rules: N/A this build; v79 is still for MJ to publish. Storage rules: N/A.
index.html2026-10-07 17:15 ET
add-people-mj-only r1 — MJ 10-07 ("no one but me should see that right now"): the + Add people panel is shown only to mdevito@; arosario@ removed from its list. Nothing else changed. Firestore rules: N/A this build (the staff list itself is still writable by…
worklog.html2026-10-07 17:05 ET
v3.99 · r406: DONE index-my-desk-r2 (index.html my-desk r2; +home-pill on admin-dashboard, jd-dashboard, cm-community-connect, cm-hr-director-dashboard). OPEN index-roster-unassigned. Built on r405. Firestore rules: N/A this build; v79 is still for MJ to…
jd-dashboard.html2026-10-07 17:05 ET
+home-pill r1 — MJ 10-07: this page is now an assigned dashboard on the index desk, so it carries the small 🏠 Home pill back to the NYCID index (one <script src="home-pill.js"> before </body>); no other change. Firestore rules: N/A. Constant Contact: N/A.
index.html2026-10-07 17:05 ET
my-desk r2 — MJ 10-07 ("all SYEP staff should land on the index but be able to get to their assigned dashboard from there… Argenis… SYEP admin with one click… Tess the texting dashboard, Shantell the Job Developer dashboard [and] SYEP"): (1) every SYEP…
home-pill.js2026-10-07 17:05 ETcurrent build
r1.1 unchanged; now also loaded by admin-dashboard.html, jd-dashboard.html, cm-community-connect.html and cm-hr-director-dashboard.html (MJ 10-07), fourteen dashboards in all.
cm-hr-director-dashboard.html2026-10-07 17:05 ET
+home-pill r1 — MJ 10-07: this page is now an assigned dashboard on the index desk, so it carries the small 🏠 Home pill back to the NYCID index (one <script src="home-pill.js"> before </body>); no other change. Firestore rules: N/A. Constant Contact: N/A.
+home-pill r1 — MJ 10-07: this page is now an assigned dashboard on the index desk, so it carries the small 🏠 Home pill back to the NYCID index (one <script src="home-pill.js"> before </body>); no other change. Firestore rules: N/A. Constant Contact: N/A.
admin-dashboard.html2026-10-07 17:05 ET
+home-pill r1 — MJ 10-07: this page is now an assigned dashboard on the index desk, so it carries the small 🏠 Home pill back to the NYCID index (one <script src="home-pill.js"> before </body>); no other change. Firestore rules: N/A. Constant Contact: N/A.
worklog.html2026-10-07 16:50 ET
v3.98 · r405: DONE index-util-row-r405 (index.html util-row r1). Built on r404. Firestore rules: N/A this build; v79 is still for MJ to publish. Storage rules: N/A.
index.html2026-10-07 16:50 ET
util-row r1 — MJ 10-07 (screenshot with two red arrows): on desktop ☀️ Light mode and 📲 Add to device move out of the top-right pill row to a small row under the heading (below the signed-in line), and Add to device is now the same size as Light mode. 📅 NYCID…
worklog.html2026-10-07 16:40 ET
v3.97 · r404: DONE home-pill-chro-r404 (cm-chro-dashboard.html +home-pill, index.html my-desk r1.1). Built on r403. Firestore rules: N/A this build; v79 is still for MJ to publish. Storage rules: N/A.
index.html2026-10-07 16:40 ET
my-desk r1.1 — MJ 10-07: the CHRO dashboard counts as an assigned dashboard. One roster row added (Ivy Bilotti · CHRO · ibilotti@ · cm-chro-dashboard.html) so her desk shows a My dashboard tile; cm-chro-dashboard.html carries the 🏠 Home pill. Nothing else…
home-pill.js2026-10-07 16:40 ET
r1.1 — now also loaded by cm-chro-dashboard.html (MJ 10-07), ten dashboards in all; the pill is the 🏠 alone on every screen and shows the word Home when the mouse is over it, so it never sits on top of a dashboard card.
cm-chro-dashboard.html2026-10-07 16:40 ET
+home-pill r1 — MJ 10-07 ("It should be on the CHRO dash too"): small 🏠 Home pill back to the NYCID index (one <script src="home-pill.js"> before </body>); no other change. Firestore rules: N/A. Constant Contact: N/A.
+home-pill r1 — MJ 10-07: small 🏠 Home pill back to the NYCID index on every assigned dashboard (one <script src="home-pill.js"> before </body>); no other change. Firestore rules: N/A. Constant Contact: N/A.
+home-pill r1 — MJ 10-07: small 🏠 Home pill back to the NYCID index on every assigned dashboard (one <script src="home-pill.js"> before </body>); no other change. Firestore rules: N/A. Constant Contact: N/A.
+home-pill r1 — MJ 10-07: small 🏠 Home pill back to the NYCID index on every assigned dashboard (one <script src="home-pill.js"> before </body>); no other change. Firestore rules: N/A. Constant Contact: N/A.
worklog.html2026-10-07 16:35 ET
v3.96 · r403: DONE home-pill-r403 (NEW home-pill.js + one script tag on the nine assigned dashboards). Built on r402. Firestore rules: N/A this build; v79 is still MJ's to publish. Storage rules: N/A.
+home-pill r1 — MJ 10-07: small 🏠 Home pill back to the NYCID index on every assigned dashboard (one <script src="home-pill.js"> before </body>); no other change. Firestore rules: N/A. Constant Contact: N/A.
home-pill.js2026-10-07 16:35 ET
NEW r1 home pill — MJ 10-07 ("anyone with an assigned dash [should] have a small pill that gets them back to NYCID's main index, just in case"): a shared drop-in, one <script src="home-pill.js"> per page. It puts a small 🏠 Home pill on the left edge of the…
+home-pill r1 — MJ 10-07: small 🏠 Home pill back to the NYCID index on every assigned dashboard (one <script src="home-pill.js"> before </body>); no other change. Firestore rules: N/A. Constant Contact: N/A.
cm-executive-assistant-dashboard.html2026-10-07 16:35 ET
+home-pill r1 — MJ 10-07: small 🏠 Home pill back to the NYCID index on every assigned dashboard (one <script src="home-pill.js"> before </body>); no other change. Firestore rules: N/A. Constant Contact: N/A.
cm-cpo-dashboard.html2026-10-07 16:35 ET
+home-pill r1 — MJ 10-07: small 🏠 Home pill back to the NYCID index on every assigned dashboard (one <script src="home-pill.js"> before </body>); no other change. Firestore rules: N/A. Constant Contact: N/A.
cm-coo-dashboard.html2026-10-07 16:35 ET
+home-pill r1 — MJ 10-07: small 🏠 Home pill back to the NYCID index on every assigned dashboard (one <script src="home-pill.js"> before </body>); no other change. Firestore rules: N/A. Constant Contact: N/A.
+home-pill r1 — MJ 10-07: small 🏠 Home pill back to the NYCID index on every assigned dashboard (one <script src="home-pill.js"> before </body>); no other change. Firestore rules: N/A. Constant Contact: N/A.
worklog.html2026-10-07 16:30 ET
v3.95 · r402: DONE index-my-desk + index-finder-quick-links (index.html my-desk r1). FOUND index-desk-exec-list, index-direct-links. Built on r401. Firestore rules: N/A this build; v79 is still MJ's to publish. Storage rules: N/A.
index.html2026-10-07 16:30 ET
my-desk r1 — MJ 10-07 ("I do not and cannot have anyone poking around"): the name finder and its three quick links are now shown ONLY to mdevito@, cgonzalez@ and mcandella@. Every other signed-in account gets a simple desk: 📡 The Wire, 📞 Call Out…
worklog.html2026-10-07 16:10 ET
v3.94 · r401: DONE index-pill-row-top + index-syep-admin-button (index.html pill-row-top r1). Built on r400. Firestore rules: N/A this build; v79 is still MJ's to publish. Storage rules: N/A.
index.html2026-10-07 16:10 ET
pill-row-top r1 — MJ 10-07 (header screenshot): (1) the desktop pill row (Light mode · Add to device · NYCID Calendar · The Wire) no longer follows the page as you scroll; it is secured to the top of the page beside the title and scrolls away with the header.…
worklog.html2026-10-07 16:05 ET
v3.93 · r400: MERGE of the two r399s. Built on the r399 MJ uploaded (requirements.html v3.11 merge) plus privacy-training.html v1.2.1 from the privacy-training chat. DONE privacy-training-questions. Firestore rules: N/A this build; v79 is still MJ's to…
privacy-training.html2026-10-07 15:50 ET
v1.2.1 questions line — MJ 10-07: staff with a question can email Michael or message him on The Wire. The training notice email now closes with both (his email, and a link that opens The Wire messenger: apps.nycid.org/#wire), and the training page carries the…
worklog.html2026-10-07 14:55 ET
v3.92 · r399: MERGE of the two r398s. DONE tr-team-vanish-r399 (requirements.html v3.11, built 14:05 on r397, folded into the privacy-training r398). OPEN tr-team-readd-francis (MJ). FOUND tr-cycle-settings-check. Carries privacy-training r398 unchanged.…
worklog.html2026-10-07 14:45 ET
v3.91 · r398: DONE privacy-training-r398 (privacy-training.html v1.2: staff report loader + training notice). OPEN privacy-roster-rules (firestore_v79 delivered, MJ to publish), privacy-weekly-email (function v1.1 redelivered). FOUND index-syep-admin-button,…
privacy-training.html2026-10-07 14:45 ET
v1.2 staff report loader + training notice — MJ 10-07: (1) NEW loader on the executive roster takes the Google Workspace user download (.xlsx or .csv: First Name, Last Name, Email Address), previews every row with a tick box, and saves the list to NEW…
requirements.html2026-10-07 14:05 ET
v3.11 team list can't vanish — MJ 10-07 ("somehow Elizabeth Francis is no longer in the drop down list. this happened before — people were there and then not there"). The Assigned-staff pickers read program_cycles/{cycle}.staff, and three paths in this page…
worklog.html2026-10-07 13:30 ET
v3.90 · r397: DONE privacy-training-r397 (privacy-training.html v1.1: roster executives-only in the rules, audit certificates, ✉ executive update email). OPEN privacy-training-rules (firestore_v78 delivered, MJ to publish), privacy-weekly-email…
privacy-training.html2026-10-07 13:30 ET
v1.1 roster locked + audit certificates + exec update email — MJ 10-07: (1) the completion list is for the five executives only: the page already hid it, firestore_v78 now refuses the list to every other account, and a staff member reads only their own…
worklog.html2026-10-07 09:58 ET
v3.89 · r396: DONE staff-connect-wlg-r396 (requirements.html v3.10). staff-link-screen narrowed to the LTW half. FOUND invite-then-connect-r396, yd-rules-label-stale. Firestore rules: N/A. Storage rules: N/A.
requirements.html2026-10-07 09:58 ET
v3.10 staff connect a youth's dashboard — MJ 10-07 09:35 (two WLG youth sent "no record connected to …@gmail.com · opened with a personal link"; "add this to requirements"). Since youth-dashboard v2.8 (10-04) students no longer link themselves and nothing on…
wlg-lab.html2026-10-07 09:06 ET
v1.0 PREVIEW — WLG winter provider-led app fashioned off the VI Lab: Orientation + 5 habit weeks (video · What-would-you-do poll · Reflect/Try it/Create), weekly Sharpen the Saw check-in, 22-tool NYCID Toolkit, Facilitator view (?pass=all) with run of show +…
v1.3 lane shadow box + back — MJ 10-06 ("on Allan's dashboard he needs back buttons everywhere, and when he clicks the various tabs at the top of his dash, i.e. YABC, OA, SYEP, I want those details to come up in a shadow box, not down at the bottom of the…
v3.9.2 Wire + back to SYEP Dashboard — MJ 10-06 ("on Requirements, the Wire is not on that page; also I need a back button on that page that goes back to the SYEP Dashboard"). (1) THE WIRE: team-hub.js now loads on this page like every other staff dashboard…
budget-board.js2026-10-06 08:05 ET
r6 receipt-optional + click-through — MJ 10-06 ("make uploading the receipt optional") + Allan Avidano's ask ("click on spent or the buckets, i.e. Program Supplies, Refreshments, to see what we have already logged in there"). (1) RECEIPT IS OPTIONAL and reads…
Monday, October 5, 2026 7 builds
worklog.html2026-10-05 18:25 ET
v3.86 · r393: DONE tr-file-error-honest-r393 (requirements.html v3.9.1). BLOCKED tr-youth-docs-storage-refused (Storage rules refuse the youth_docs listing; needs the live storage rules file). Firestore rules: N/A for r393.
requirements.html2026-10-05 18:25 ET
v3.9.1 honest file errors — MJ 10-05 18:08 (screenshot: every DYCD document row in the case file read "files unavailable (rules — is firestore_v53 published on nycid-solutions?)"). The 📎 line reads Firebase STORAGE (youth_docs/{person}/{document}/), not…
worklog.html2026-10-05 11:50 ET
v3.85 · r392: DONE admin-dash-solutions-r392 (admin-dashboard.html on nycid-solutions), DONE old-site-wrong-dashboard (stand-alone notice page, not in the zip). OPEN paycard-last4 (nothing on Solutions holds a card number; needs the old Pay Card Report page),…
admin-dashboard.html2026-10-05 11:50 ET
solutions-data-flip — MJ 10-05 (two screenshots: "something isn't right with the set up on the admin dash — at this point everything should be going to solutions"; "the placement email button doesn't work… if it isn't set up on solutions please remove it").…
worklog.html2026-10-05 09:40 ET
v3.84 · r391: DONE privacy-training-r391 (NEW privacy-training.html v1.0 + index.html tile). BLOCKED privacy-training-rules (staff_privacy_training rule; needs the current rules file uploaded). OPEN privacy-training-gate, privacy-training-review. Rules:…
privacy-training.html2026-10-05 09:40 ET
NEW v1.0 student data privacy training — MJ 10-05: every NYCID officer, employee and assignee completes training on FERPA, NY Education Law 2-d, Chancellor's Regulation A-820, the Parents' Bill of Rights and NYCID's privacy and security rules before receiving…
index.html2026-10-05 09:40 ET
+privacy-training tile r1 — MJ 10-05: one 🛡️ banner tile for the NEW privacy-training.html (Student Data Privacy Training), placed above the admin-only block so every signed-in staff member sees it, with ⧉ Copy link. Nothing else touched. Firestore rules: N/A…
Sunday, October 4, 2026 6 builds
youth-dashboard.html2026-10-04 14:36 ET
v2.8 staff connect students — MJ 10-04 ("remove the student self-link altogether; students no longer link themselves, staff will"). REMOVED: both places where a student's sign-in wrote linkedEmail / linkedUid onto a youth_profiles record (the ?k= link and the…
worklog.html2026-10-04 14:36 ET
v3.83 · r390: DONE school-picks-remove (school-picks.html deleted; requirements.html v3.9) and self-link-remove (youth-dashboard.html v2.8, ltw-participant.html v1.5). OPEN staff-link-screen, invite-link-wording, rules-email-list-arm, ltw-check-lane-decide.…
requirements.html2026-10-04 14:36 ET
v3.9 school picks removed — MJ 10-04 ("remove school-picks.html from the suite entirely, and the school picks mention from requirements.html"). REMOVED: the 🏫 School picks tab and its card, every read and write of school_pick_links (and its private map) and…
v1.5 staff connect students — MJ 10-04 ("remove the student self-link altogether; students no longer link themselves, staff will"). REMOVED: both places where a participant's sign-in wrote linkedEmail / linkedUid onto a youth_profiles record (the ?k= link and…
worklog.html2026-10-04 14:24 ET
v3.82 · r389: DONE ct-swag-done-r389 (admin-dashboard.html, Competition Sign-Ups: filter + email the youth who completed the swag form). OPEN school-picks-remove and self-link-remove (GO given 10-04, next revision).
admin-dashboard.html2026-10-04 14:22 ET
ct-swag-done-filter — MJ 10-04: "on the Competition sign ups tab I need to be able to filter and email the youth who completed the swag form." Comms → 🏆 Competition Sign-Ups: (1) the purple 🎁 card (renamed "Swag form completed") is now CLICKABLE — it filters…
Saturday, October 3, 2026 2 builds
worklog.html2026-10-03 12:29 ET
v3.81 · security headers + tether off (r388): DONE sec-headers-r388 (NEW _headers), hub-tether-off-r388 (program-hub v3.8), sec-accepted. OPEN sec-live-check-r388, sec-sri, sec-school-defaults. PARKED yb-school-access-press and yb-leader-live-check (school…
program-hub.html2026-10-03 12:22 ETcurrent build
v3.8 tether removed — MJ 10-03 (“remove the tethering to the DoE accounts”). The strip at the top of the hub that read “N school accounts are not on the hub yet”, its Tether button and its See-the-list button are gone, and so is the “School access is not…
v1.1 sample-preview — MJ 10-02 17:30 ("what is the direct link now to this dashboard so I can go look at it. Can I access from my COO dash?"). An @nycid.org account that opens the page with no ?w= now gets TWO choices on the staff panel: preview a real…
worklog.html2026-10-02 17:37 ET
v3.80 · worksite dashboard reachable (r387): DONE ws-coo-link — worksite-dashboard v1.1 sample-preview + cm-coo-dashboard worksite-links r1 (All dashboards gains the worksite dashboard, the JD dashboard, Program Requirements and the youth dashboard). r387…
cm-coo-dashboard.html2026-10-02 17:37 ET
worksite-links r1 — MJ 10-02 17:30 ("what is the direct link now to this dashboard… can I access from my COO dash?"). 🗂 All dashboards → SYEP & workforce gains four pages that had no way in from here: worksite-dashboard.html (employer side; staff get a…
worksite-dashboard.html2026-10-02 15:54 ET
v1.0 solutions-cockpit — MJ 10-02 15:10 ("it's time to update this into solutions… a revamp more in keeping with dials like the new participant dash than the row style… my focus is to load the WLG applicants into the app using the report uploader so we can…
worklog.html2026-10-02 15:54 ET
v3.79 · worksite dashboard (r386): DONE ws-file — worksite-dashboard.html v1.0 on Solutions (cockpit dials, Google + text code + site PIN, Worksite Assurance signed on the dashboard) + assurance-core.js r1 + jd-dashboard.html v1.7 (worksite report uploader,…
jd-dashboard.html2026-10-02 15:54 ET
v1.7 worksite-report + dashboard invites + countersign — MJ 10-02 15:10 ("load the WLG applicants into the app using the report uploader so we can get our worksite assurances signed"). 🏢 WLG pipeline gains: (1) ⬆ WORKSITE REPORT card (folds shut until used):…
assurance-core.js2026-10-02 15:54 ETcurrent build
r1 shared Worksite Assurance module (NEW, rides every suite zip) — one copy of the DYCD "Worksite Assurances and Certifications Agreement" (the April 2026 form, 3 pages, embedded below so a missing PDF at the site root can never break signing again), the…
worklog.html2026-10-02 10:03 ET
v3.78 · concord contract (r385): DONE Concord signs its own Learning to Work Internship Contract (14 regulations, MJ’s docx) with date of birth only, no last 4 of the OSIS (cn-contract-r385); DONE Concord QR sign re-issued (cn-qr-sign-r385); FOUND and left…
program-hub.html2026-10-02 10:03 ET
v3.7 Concord contract — MJ 10-02 (“the LTW contract for Concord is different than YABC and OA… update the contract JUST FOR CONCORD”). On the Concord hub’s 📥 sign-ins card, 📄 Contract opens the Learning to Work Internship Contract the student signed at…
v1.11 Concord contract reminder — MJ 10-02 (“the LTW contract for Concord is different than YABC and OA” · “remove the last four of OSIS and just put DoB to gain access”). Wording only, Concord only: the check-in reminder reads “We don’t see your signed LTW…
ltw-staff.js2026-10-02 10:03 ETcurrent build
r7 Concord internship contract — MJ 10-02 (“the LTW contract for Concord is different than YABC and OA… update the contract JUST FOR CONCORD”). Concord’s contract is the Learning to Work Internship Contract (14 regulations, one signature), not the day-one LTW…
ltw-participant.html2026-10-02 10:03 ET
v1.4 Concord internship contract — MJ 10-02 (“the LTW contract for Concord is different than YABC and OA… update the contract JUST FOR CONCORD”). CONCORD ONLY: (1) Step 1 is the Learning to Work Internship Contract, the wording of apps.nycid.org/concord word…
v1.1 Concord’s own contract + date of birth only — MJ 10-02 (“the LTW contract for Concord is different than YABC and OA… update the contract JUST FOR CONCORD” · “remove the last four of OSIS and just put DoB to gain access”). (1) THE CONTRACT is the Learning…
concord-case-management.html2026-10-02 10:03 ET
day-one r2 — MJ 10-02 (“the LTW contract for Concord is different than YABC and OA… update the contract JUST FOR CONCORD” · “remove the last four of OSIS and just put DoB to gain access”). (1) 📥 LTW INTERNSHIP CONTRACT SIGN-INS (was LTW Agreement sign-ins):…
worklog.html2026-10-02 08:54 ET
v3.77 · concord (r384): Concord day-one QR (concord-intro.html v1.0 NEW), roster upload in proper case + LTW Agreement sign-ins (concord-case-management.html day-one r1), day-one agreement counted (ltw-staff.js r6), signing fixes in the app + Concord Step 1 =…
program-hub.html2026-10-02 08:54 ET
v3.6 Concord sign-ins — MJ 10-02 (Concord day-one LTW Agreement · “ensure yesterday’s YABC updates are also done for Concord and OA”). The 📥 sign-ins card already listed any lane’s rows; on the Concord and Olympus hubs it no longer draws YABC’s Location row…
program-attendance.html2026-10-02 08:54 ET
v1.10 Concord agreement reminder — MJ 10-02 (Concord: “the contract will be the LTW agreement” · “look at all of the updates we did to YABC yesterday and ensure that they are also done for Concord and OA”). The check-in reminder YABC has (v1.4–v1.9) now works…
olympus-case-management.html2026-10-02 08:54 ET
drawer-x r1 — MJ 10-02 (“look at all of the updates we did to YABC yesterday and ensure that they are also done for Concord and OA”). Carried over from YABC’s 10-01 leader-view build: the ☀️ / 🌙 button no longer sits on top of the student record’s × — it…
ltw-staff.js2026-10-02 08:54 ET
r6 day-one LTW Agreement — MJ 10-02 (Concord: “the contract will be the LTW agreement. This agreement will be logged as complete”). (1) A day-one agreement (signed by the student at apps.nycid.org/concord, no parent line) counts as the youth’s Agreement step…
ltw-participant.html2026-10-02 08:54 ET
v1.3 signing fixes + Concord agreement — MJ 10-02 (“look at all of the updates we did to YABC yesterday and ensure that they are also done for Concord and OA” · Concord: “the contract will be the LTW agreement. This agreement will be logged as complete”). (1)…
concord-intro.html2026-10-02 08:54 ET
NEW v1.0 day-one LTW Agreement — MJ 10-02 (“get Concord HS up and running like YABC… the contract will be the LTW agreement. This agreement will be logged as complete… they need the last 4 of their OSIS and their DoB, which will match them to the roster”).…
concord-case-management.html2026-10-02 08:54 ET
day-one r1 — MJ 10-02 (“get Concord HS up and running like YABC… make sure the data does not populate in all uppercase… the contract will be the LTW agreement. This agreement will be logged as complete… last 4 of their OSIS and their DoB will match them to…
Thursday, October 1, 2026 26 builds
yabc-intro.html2026-10-01 16:07 ETcurrent build
v1.4 iphone submit — MJ 10-01 (“some kids - iphone users can’t hit submit after they have filled out the contract”). NOT REPRODUCED: there is no iPhone or Safari engine in the build room, so this closes every way an iPhone can lose a Submit and makes the page…
worklog.html2026-10-01 16:07 ET
v3.76 · yabc (r383): kiosk contract match (program-attendance.html v1.9) DONE; iPhone submit hardening on the contract form (yabc-intro.html v1.4) shipped, not confirmed on an iPhone; parked: the same hardening in ltw-participant.html.
program-attendance.html2026-10-01 16:07 ET
v1.9 contract match — MJ 10-01 (“a youth who had a signed contract logged in at the kiosk and it said he didn’t do the contract yet - when we spot checked he had”). The live record was not available to this build, so all three ways v1.8 could get this wrong…
worklog.html2026-10-01 15:54 ET
v3.75 · yabc (r382): staff contact card shows the student’s best number + best email as not on file yet (program-hub.html v3.5) DONE; FOUND: the student app lets a youth change the parent phone / email and has no first-run contact step — next build, with…
program-hub.html2026-10-01 15:54 ET
v3.5 best contact — MJ 10-01 (“we need them to add their best number and email. I’d like to right now add this contact info to the contact cards for staff so they can see it’s not yet on file but that it’s coming”). The student contact card (tap any student)…
worklog.html2026-10-01 15:44 ET
v3.74 · yabc (r381): 🔎 quick find at the top of the hub (program-hub.html v3.4) DONE; firestore_v64 delivered, the line now reads PUBLISH (was BLOCKED).
program-hub.html2026-10-01 15:44 ET
v3.4 quick find — MJ 10-01 (“a quick search for a youth or phone number at the top of the hub - find any student, phone number or email in the system”). 🔎 ONE BOX, first thing on the hub, for every account that can already see the roster (NYCID staff and…
yabc-case-management.html2026-10-01 15:22 ET
leader-view r1 — MJ 10-01 (“this is still not done”: Mike Noto, AP - Program Administrator, could not reach the school leader view; school staff who are not teachers must see the signed contracts). (1) NO CODE: the School Partner tab no longer asks for the…
worklog.html2026-10-01 15:22 ET
v3.73 · yabc (r380): Mike Noto reaches the school leader view (lane-role.js r3 + yabc-case-management.html leader-view r1 + program-hub.html v3.3), the five named school staff see signed contracts, firestore_v64 BLOCKED until v63 is uploaded, two live steps…
program-hub.html2026-10-01 15:22 ET
v3.3 school access — MJ 10-01 (“this is still not done”: Mike Noto must reach the school leader view; school staff who are not teachers must see the signed contracts). (1) TWO NAMED LISTS on program_config/yabc: schoolLeaders (Michael Noto) and…
lane-role.js2026-10-01 15:22 ETcurrent build
r3 school leader by sign-in — MJ 10-01 (“this is still not done”: Mike Noto, AP - Program Administrator, could not reach the school leader view). THREE things stood in his way and r3 clears the two that live here. (1) THE CODE: on a lane with a leader list…
worklog.html2026-10-01 14:35 ET
v3.72 · audit (r379): the LTW chat’s r378 + this chat’s admin-dashboard.html csi-liberty-date-range (MJ: “add your turn to this updated zip”) — dash-csi-date-range done (signed-date window on the CSI / Liberty Consents table + ZIP); dash-csi-signed-link still…
admin-dashboard.html2026-10-01 14:35 ET (container clock −4h, no anchor given this session, unconfirmed)
csi-liberty-date-range — MJ 10-01: "I need to create a date for the CSI liberty partnership zips - I need to only download the ones from 9/28 to 10/1." 🧪 Audit & Testing → 🪪 CSI / Liberty Consents now has a SIGNED-DATE WINDOW: two date boxes (Signed from /…
yabc-case-management.html2026-10-01 14:00 ET
back + paycom-board r1 — MJ 10-01 12:41 (“Back buttons everywhere, especially for those in the installed app. There is no way to go back.” · “I want the Internship Coordinator interface to mirror the Advocate dashboard: a youth’s card is red until they…
program-hub.html2026-10-01 14:00 ET
v3.2.1 back — MJ 10-01 12:41 (“Back buttons everywhere, especially for those in the installed app. There is no way to go back.”): the hub loads back-nav.js r1 — a ← Back pill, top-left, returns to the page you came from (the lane’s case-management page when…
olympus-case-management.html2026-10-01 14:00 ET
back + paycom-board r1 — MJ 10-01 12:41 (“Back buttons everywhere, especially for those in the installed app. There is no way to go back.” · “I want the Internship Coordinator interface to mirror the Advocate dashboard: a youth’s card is red until they…
NEW v1.0 worksite timesheets — MJ 10-01 12:41 (“I want to create a digital timesheet for the employers to sign. And send it to the internship coordinator… the youth can enter their hours on their dashboard, and those hours should reflect on the worksite…
ltw-staff.js2026-10-01 14:00 ET
r5 Paycom-readiness board + documents + timesheets — MJ 10-01 12:41 (“I want the Internship Coordinator interface to mirror the Advocate dashboard: a youth's card is red until they complete all the steps, and then they are ready for Paycom; the card is green”…
ltw-participant.html2026-10-01 14:00 ET
v1.2 documents + timesheet — MJ 10-01 12:41 (“we need to upload ssc and working papers so we have to add these to the participant dashboard” · “I want to create a digital timesheet for the employers to sign… the youth can enter their hours on their…
ltw-hours.html2026-10-01 14:00 ETcurrent build
v2.5 backload + signed timesheets + back — MJ 10-01 12:41: (1) “a single backload feature for the stipend app… kids that worked in July and August but then graduated. We don’t need to track them, but we do need to enter them into the app to track stipend…
ltw-budget.html2026-10-01 14:00 ETcurrent build
v1.1.3 back — MJ 10-01 12:41 (“Back buttons everywhere… There is no way to go back”): loads back-nav.js r1 — ← Back pill, top-left, returns to the page you came from or to the lane’s case-management page. Script include + build label only. Firestore rules:…
concord-case-management.html2026-10-01 14:00 ET
back + paycom-board r1 — MJ 10-01 12:41 (“Back buttons everywhere, especially for those in the installed app. There is no way to go back.” · “I want the Internship Coordinator interface to mirror the Advocate dashboard: a youth’s card is red until they…
back-nav.js2026-10-01 14:00 ETcurrent build
NEW r1 back button — MJ 10-01 12:41 (“Back buttons everywhere, especially for those in the installed app. There is no way to go back.”): a shared drop-in, one <script src="back-nav.js"> per page. It puts a ← Back pill at the top-left of the screen (fixed, so…
requirements.html2026-10-01 12:39 ET
v3.8.1 one school, one name — MJ 10-01 (screenshot of the roster school filter listing "Port Richmond High School" and "Port Richmond Highschool" as two schools; "the team just noticed"): "can you set this to read either and to not sort both?" FIX: new…
nycid-careers.html2026-10-01 09:48 ET
record-on-solutions r1 — pairs with nycid-careers-admin.html offline-add r1 (MJ 10-01: admin add resumes on the Live Tracker). ONE change: the career_applications record is written to nycid-solutions, where the tracker now reads new applications; Legacy keeps…
nycid-careers-admin.html2026-10-01 09:48 ET
offline-add r1 — MJ 10-01 "I want to be able to admin add resumes to the career portal… maybe on the live tracker we can add an offline add?": (1) ➕ ADD OFFLINE on the 💼 Applications bar opens a shadow box (name · email / phone · what they are applying for,…
Wednesday, September 30, 2026 26 builds
yabc-case-management.html2026-09-30 18:52 ET
designations r2 kiosk cross-check — MJ 09-30 (“there are youth who added their last 4 tonight because they were not in the app — will they match if they are now on the list? can we do a quick cross check?”): the upload preview now lists EVERY record a student…
yabc-case-management.html2026-09-30 18:37 ET
designations r1 — MJ 09-30 on YABC_ENROLLMENTS.xlsx (“this is now going to be the report that gets uploaded… none of the sign-ins can be separated between North McKee and South Wagner… some kids only come on certain designated days… kids that never come…
program-hub.html2026-09-30 18:37 ET
v3.2 designations + day look-up + first day of school — MJ 09-30 on YABC_ENROLLMENTS.xlsx (“this is now going to be the report that gets uploaded… none of the sign-ins can be separated between North McKee and South Wagner… some kids only come on certain…
program-attendance.html2026-09-30 18:37 ET
v1.8 own nights + fresh read — MJ 09-30 on YABC_ENROLLMENTS.xlsx (“this is now going to be the report that gets uploaded… none of the sign-ins can be separated between North McKee and South Wagner… some kids only come on certain designated days… kids that…
ltw-staff.js2026-09-30 18:37 ET
r4 live attendance — MJ 09-30 on YABC_ENROLLMENTS.xlsx (“this is now going to be the report that gets uploaded… none of the sign-ins can be separated between North McKee and South Wagner… some kids only come on certain designated days… kids that never come…
att-core.js2026-09-30 18:37 ETcurrent build
r1 NEW shared attendance count (window.NYCIDAtt) — MJ 09-30 on YABC_ENROLLMENTS.xlsx (“this is now going to be the report that gets uploaded… none of the sign-ins can be separated between North McKee and South Wagner… some kids only come on certain designated…
program-hub.html2026-09-30 17:09 ET (11:03 anchor + elapsed)
v3.1.4 attendance: sites, present, downloads — MJ 09-30 (“on the attendance we need more filters — the two sites McKee and Wagner and all, then only those present, and a download for Excel and/or PDF for those present”). The Attendance · live from the kiosk…
program-attendance.html2026-09-30 16:01 ET (11:03 anchor + elapsed)
v1.7 tablet layout — MJ 09-30 on the iPad: (1) “I'm not on the list” is a big two-line button. (2) The entry sheets (last-4 check-in, not on the list, staff PIN, photo) open at the TOP of the screen; they were bottom sheets and the on-screen keyboard covered…
program-attendance.html2026-09-30 15:26 ET (11:03 anchor + elapsed)
v1.6 name + last 4 — MJ 09-30 on v1.5 (“you did it wrong — there is no name to tap; a youth who is not on the list needs to enter their name and then their OSIS last 4”). Not on the list is now three boxes: first name, last name, last 4 of the OSIS. No date…
program-attendance.html2026-09-30 15:05 ET (11:03 anchor + elapsed)
v1.5 last-4 add — MJ 09-30 (“add enter the last 4 of OSIS for any youth not on the roster”): “I'm not on the list” asks for first name, last name, the LAST 4 digits of the OSIS and date of birth (it was all nine digits, which stopped any student who did not…
yabc-intro.html2026-09-30 13:20 ET (11:03 anchor + elapsed)
v1.3 never-blocked — MJ 09-30 (“double check all buttons… some are reporting that if they were not found on the look up feature they could not submit”). Every button was run on a phone screen. Findings on v1.2: (1) a student who is NOT on the roster could…
yabc-case-management.html2026-09-30 13:20 ET
site-filter r1 — MJ 09-30 (“I need to be able to filter which contracts were signed for each location”): the 📥 Orientation sign-ins card has a Location row — All · Wagner HS · McKee HS · Both sites (· No site when any) — each with its count; Wagner and McKee…
program-hub.html2026-09-30 13:20 ET
v3.1.3 sign-ins by location — MJ 09-30: the hub's 📥 Orientation sign-ins card has the same Location row as the Director page (All · Wagner HS · McKee HS · Both sites, with counts; Wagner and McKee each include students attending both), the signed-in /…
program-attendance.html2026-09-30 13:20 ET
v1.4 reminders + back — MJ 09-30: (1) the green check-in screen has a ← Back to the kiosk button that returns straight to the look-up (it still closes by itself). (2) CHECK-IN REMINDERS: after the ✓ the student sees what is still missing from them, each with…
yabc-case-management.html2026-09-30 11:32 ET
advocate-roster r1 — MJ 09-30 11:03: Jada Merino (jmerino@nycid.org, Personal Advocate, McKee) added to COUNSELORS as JM. She was on STAFFING and in the hub directory but not on this roster, so her sign-in had no advocate role (and, with her address on the…
program-hub.html2026-09-30 11:32 ET
v3.1.2 NYCID is never school — MJ 09-30 11:03 (Jada Merino, jmerino@nycid.org, Personal Advocate, showed as a school partner). The hub took a person's side from the saved directory row, and four writers could file an @nycid.org address as school staff. Now:…
partner-join.html2026-09-30 11:32 ETcurrent build
v1.0.1 staff-refusal — MJ 09-30: the school-partner form refuses an @nycid.org address (school email or alternate) and tells the person to sign in to the hub with their NYCID Google account, so NYCID staff cannot enter the partner queue. Two lines + the…
ltw-staff.js2026-09-30 11:32 ET
r3 +Jada Merino — MJ 09-30: jmerino@nycid.org added to the YABC advocates list, so the Program Director can assign her youth on the 🪜 LTW Ladder and her name prints on the tiles. One entry; everything else = r2. Shared by yabc / olympus /…
lane-role.js2026-09-30 11:32 ET (11:03 anchor + elapsed)
r2 nycid-never-school — MJ 09-30 11:03: Jada Merino (jmerino@nycid.org, Personal Advocate) opened yabc-case-management as a School Partner. Cause: roleOf() checked the school allow-list (program_config.partnerEmails) BEFORE the @nycid.org test, so an NYCID…
cm-coo-dashboard.html2026-09-30 11:32 ET
nycid-never-school r1 — MJ 09-30 11:03 (Jada Merino showed as a school partner). Partner Access: an @nycid.org address is never approved, added by hand or allow-listed as a school partner — ✔ Approve and ✔ Add & approve refuse it in words, the queue card…
nycid-careers.html2026-09-30 11:31 ET
positions r1 — MJ 09-30 (urgent): the two Workforce Initiatives job descriptions are posted, each with a direct link + QR, and the application gains an optional Community Connect opt-in. (1) POSTED POSITIONS: const POSITIONS carries Career Developer…
program-hub.html2026-09-30 07:49 ET
v3.1.1 school list 50 — MJ 09-30 (“keep her as nycid.org”): Ashley Granata stays in the hub as NYCID staff (agranata@nycid.org, Personal Advocate). Her school address from AP Noto’s email is out of the baked YABC school list, so the top strip tethers 50…
program-hub.html2026-09-30 07:24 ET
v3.1 school team + contact box + Solutions send — MJ 09-30 06:33. (1) SCHOOL TEAM: the 51 school accounts AP Noto sent are baked in for the YABC lane; any @nycid.org account sees a strip at the top of the hub and tethers them in one click — merged into…
comms-core.js2026-09-30 07:24 ETcurrent build
r2 Solutions send — MJ 09-30 (“I have set up all the necessary Twilio and SendGrid connections for Solutions… point everything to Solutions and away from legacy”). TRANSPORT is now 'solutions': the email lane writes `mail` and the text lane writes `messages`…
cm-cpo-dashboard.html2026-09-30 07:05 ET
one-money-hero r18 — MJ 09-30 06:24 ("everything on the CPO budget sheet"): the WFI OTPS lanes moved onto the Budget Command Center (cm-cpo-budget-command.html v2.0 — one grid, ⚙ Choose lines, 📤 Load budget sheet, 🌱/↻ seed, 🔎 purchases, full board). HERE: (1)…
v2.0 wfi-on-the-sheet — MJ 09-30 06:24 ("everything on the CPO budget sheet"): the 11 WFI lanes (YABC · Olympus · Concord · SYEP YY/YR/OY/CR · YouthBuild · Youthstate · YouthGlobal · Youthwins) now sit on THIS sheet next to Mike's 12 programs. (1) ONE GRID,…
Tuesday, September 29, 2026 11 builds
requirements.html2026-09-29 18:40 ET
v3.8 quick notes — MJ 09-29 18:23 (screenshot arrowing the 📩 chip in LAST OUTREACH): "I need to add a quick note to each case file that exists on the roster — see the little icon there? can we turn that into a pill. Also, the first time it opens I want a…
budget-board.js2026-09-29 13:45 ET
r5 see-as-director — MJ 09-29 (Olympus Director page screenshot, header read "All lines": "On the CPO dash I chose the 5 budgets I wanted to push out … It's not doing so"). ROOT CAUSE, not a data miss: full() promotes budget admins / Sr. Directors / CPO /…
cm-cpo-dashboard.html2026-09-29 13:20 ET
budget-sheet-loader r17 — MJ 09-29 ("I don't see where to load the budget sheet on the cpo dashboard"): r16 only had the baked 9/9 copy behind 🌱. NEW 📤 Load budget sheet (CSV) in the WFI OTPS lens header (budget admins): pick the "Budget sheets Collated – PO…
cm-cpo-dashboard.html2026-09-29 12:55 ET
wfi-otps-lens r16 — MJ 09-29 ("none of this is showing on the CPO dashboard … add the WFI balances to his dash as well, total streamline of what is there, and ensure that we can choose the lines that the Directors see for all programs"). FOUND: the 💰 hero +…
budget-board.js2026-09-29 12:55 ET
r4 director-lines-per-lane + cpo-app + youthbuild + 9/9 seed — MJ 09-29 ("ensure that we can choose the lines that the Directors see for all programs" · "add the WFI balances to his dash"). (1) DIRECTOR LINES ARE NOW PER LANE:…
admin-dashboard.html2026-09-29 12:55 ET
wlg-msgs-into-inbox — MJ 09-29: "I was wrong about storing the WLG messages from youth outside of COMMS on the main dashboard. I want to remove this altogether and add all of the items to the main comms center." THE 09-21 📩 WLG MESSAGES SUB-TAB IS GONE (nav…
requirements.html2026-09-29 12:10 ET
v3.7 second staff + team enrollment — MJ 09-29 10:43 (handoff to this chat): "the real goal is TEAM ENROLLMENT — the primary checks the file and ticks 3 documents, the second ticks the rest that night and enrolls; the kid gets to Enrolled as fast as possible,…
admin-dashboard.html2026-09-29 10:55 ET
csi-consent-olbox-fix — MJ 09-29 10:50: "the CSI names are still not coming off when we add the OLs — I tried Load and Refresh." THREE FIXES on the 🪪 CSI Consent tab's Doc-names block: (1) the OL box fired ONLY on Enter — typing an OL and then clicking…
admin-dashboard.html2026-09-29 10:25 ET (MJ's anchor + elapsed)
csi-consent-signed-drop+save-msg — MJ 09-29 10:10: "I am cross checking the blank OLs and adding the numbers and then hitting Load but those names — just about all of them already signed — are not falling off" + "I need to be able to save and/or update the…
admin-dashboard.html2026-09-29 09:55 ET (MJ's anchor + elapsed)
csi-consent-no-online — MJ 09-29 09:50: "I do not want to see any of the kids who were online only — just remove them … where is the message?" (1) Online-only youth (yy_scheduling.participationChoice online_only) are DROPPED from the 🪪 CSI Consent roster…
admin-dashboard.html2026-09-29 09:25 ET (MJ's 08:07 anchor + elapsed)
csi-consent-app-first — MJ 09-29 09:05, reversing the 08:45 approach: "we know who signed because we have verification in the app — link those who did not sign as a way of finding the correct participants." The 🪪 CSI Consent pill is now APP-FIRST: roster =…
Monday, September 28, 2026 2 builds
team-hub.js2026-09-28 00:25 ET (est. container −4h — confirm wall-clock)
tag-button r1 — MJ 00:15 "where is the tag button? I am typing @allan but nothing is coming up". There was no button — tagging was type-@-only, and the picker never watched the post TITLE box. Now: a visible @ Tag button on the chat composer, on the board…
team-hub.js2026-09-28 00:10 ET (est. container −4h — confirm wall-clock)
fit-to-screen r1 — MJ 00:00 "when the cards accordion out they are pushing off the screen on the left… 13-inch screen, jarring". thxDockLayout now FITS THE STACK TO THE WINDOW: it totals The Wire (430) + every open drawer; if that exceeds the viewport it…
Sunday, September 27, 2026 29 builds
wire-post.html2026-09-27 23:55 ET (est. container −4h — confirm wall-clock)current build
v1.1 — board-media r1 pairing: the public reader's sanitizer now admits IMG / VIDEO / AUDIO / A with https Firebase Storage or nycid.org sources, so photos, videos and file tiles embedded in a post show on the public link exactly as on the board. Rides suite…
team-hub.js2026-09-27 23:55 ET (est. container −4h — confirm wall-clock)
board-media r1 — MJ 23:45 "there is no uploader for the photos and videos on the message board — I want to be able to embed these in the message, not just have them as add-ons, just like Basecamp". 📌 BOARD POSTS NOW EMBED MEDIA INLINE: the post toolbar gains…
team-hub.js2026-09-27 23:30 ET (est. container −4h — confirm wall-clock)
deep-links r1 — MJ 23:20 "is there a message board link I could text someone… while we still use basecamp to bring people onto the wire?". YES NOW: https://apps.nycid.org/#board opens the 📌 Message Board (#board=<postId> lands on that post and opens its…
team-hub.js2026-09-27 23:15 ET (est. container −4h — confirm wall-clock)
board-outside r1 — MJ 23:10 "always keep the message board on the outside… the message board is always on the outside left". Stack order from the right edge is now The Wire (430) · To-Dos (400) · Lists (400) · Message Board (600/1100) — whichever of the three…
team-hub.js2026-09-27 23:05 ET (est. container −4h — confirm wall-clock)
drawers-accordion r1 — MJ 22:55 "I like how the message board rolls out from the wire — let the to-do lists and the lists do the same, accordion out: message board open, next to it your to-do list, next to it your live chat". ✅ To-Dos and 📋 Lists are now…
team-hub.js2026-09-27 22:40 ET (est. container −4h — confirm wall-clock)
att-download r1 — MJ 22:30 "staff need to be able to download files from the wire". Every attachment in a chat (photo, video, voice note, PDF/doc/sheet) now carries a ⬇ Download button: thxAttDownload fetches the Storage URL as a blob (same cross-origin fetch…
wire-post.html2026-09-27 22:15 ET (est. container −4h — confirm wall-clock)
NEW v1.0 — public reader for Message Board posts marked 🌐 Public on The Wire (team-hub.js mentions+public r1), the Basecamp "public link": wire-post.html?id=<team_board_posts doc id>, NO sign-in, reads one doc and refuses unless public==true; title · category…
team-hub.js2026-09-27 22:15 ET (est. container −4h — confirm wall-clock)
mentions+public r1 — MJ 09-27 "tag people in the message boards and in messages… make certain posts public like basecamp". (1) @MENTIONS everywhere you type on The Wire: type @ + a few letters in the chat box, a board post or a board comment and a roster…
yabc-intro.html2026-09-27 12:25 ET
v1.1 both+picks — MJ 12:15 on the live test: (1) “Which YABC will you be attending?” gains Both (Wagner HS · McKee HS · Both). (2) The free-text “briefly describe your plans” box is teased out into two multi-pick pill rows the kid taps — “I am…” (Outgoing ·…
yabc-case-management.html2026-09-27 12:25 ET
intro-picks r1 — pairs with yabc-intro v1.1: 🎓 Admit copies the kid's traits[] + goals[] picks into youth_profiles.contract, and the 📄 Contract view on the sign-ins card prints them. Two lines; nothing else touched. Firestore rules: N/A. Constant Contact: N/A.
program-hub.html2026-09-27 12:20 ET
hub-duo r1 — MJ 12:10 (youth are live): the top of the hub now carries the same interface as the Director page minus the LTW ladder — ✅ Check-ins (roster tiles from youth_profiles with a search box, here-today / on-roster / under-80% counts, kiosk +…
yabc-intro.html2026-09-27 12:05 ET
v1.0.1 dob-digits — MJ 12:00 on the live test: the DOB box demanded slashes and kids will not know that. Now digits only (numeric keypad, MMDDYYYY placeholder, helper line "no slashes — we add them for you"): the page inserts the slashes as they type and…
yabc-case-management.html2026-09-27 12:05 ET
duo r2 — MJ 12:00: collapsible cards get a ▴ Collapse / ▾ Open pill at the TOP as well as the bottom (both mirror), so closing a long card never means scrolling back up; collapsing from the bottom pill scrolls the card head back into view. Standing rule…
yabc-case-management.html2026-09-27 11:58 ET
floor-rename r1 — MJ 11:55: “below floor” meant attendance under the 80% outreach threshold (90% is the internship gate); nobody reads that from the word, so every user-facing string now says the number — check-ins counter “under 80% attendance”, student chip…
yabc-case-management.html2026-09-27 11:50 ET
duo r1 — MJ 11:40 (youth are live): the 🪜 LTW Ladder card and the YABC Check-ins card now sit side by side in a 50/50 grid (single column under 980px) on the Director, Coordinator and Case Manager views; School Partner gets the check-ins card in the same…
yabc-case-management.html2026-09-27 11:35 ET
uploader-bottom r1 — MJ 11:30: the 📥 roster uploader moves to the bottom of the Director view (appended after every working card) so the daily cards come first; the 📥 Orientation sign-ins card now anchors after the staff card instead of after the uploader.…
yabc-case-management.html2026-09-27 11:35 ET
ladder-staff r1 — NEW shared ltw-staff.js loaded after lane-role.js: 🪜 LTW Ladder card on the Director / Case Manager / Coordinator views (advocate assignment · 1:1 + orientation ticks · 🔑 Approve internship · worksite & first-day fields + stage ticks →…
olympus-case-management.html2026-09-27 11:35 ET
ladder-close r1 — carries ltw-staff.js r2 (✕ Close on an open 🪜 LTW Ladder tile; re-clicking the name collapses it). No change to this file's own code beyond the stamp; stacks on twice-monthly r1. Firestore rules: N/A. Constant Contact: N/A.
olympus-case-management.html2026-09-27 11:35 ET
ladder-staff r1 — NEW shared ltw-staff.js loaded after lane-role.js: 🪜 LTW Ladder card on the Director / Case Manager / Coordinator views (advocate assignment · 1:1 + orientation ticks · 🔑 Approve internship · worksite & first-day fields + stage ticks →…
ltw-staff.js2026-09-27 11:35 ET
r2 close-tile — MJ 11:30: an open student tile on the 🪜 LTW Ladder card had no way to shrink back; adds a ✕ Close button in the tile head and makes re-clicking the same name in the list collapse it (state cleared, list keeps its scroll). Shared by yabc /…
concord-case-management.html2026-09-27 11:35 ET
ladder-close r1 — carries ltw-staff.js r2 (✕ Close on an open 🪜 LTW Ladder tile; re-clicking the name collapses it). No change to this file's own code beyond the stamp; stacks on twice-monthly r1. Firestore rules: N/A. Constant Contact: N/A.
concord-case-management.html2026-09-27 11:35 ET
ladder-staff r1 — NEW shared ltw-staff.js loaded after lane-role.js: 🪜 LTW Ladder card on the Director / Case Manager / Coordinator views (advocate assignment · 1:1 + orientation ticks · 🔑 Approve internship · worksite & first-day fields + stage ticks →…
yabc-intro.html2026-09-27 11:20 ET
v1.2 roster-lookup — MJ 11:00 (the school sent a 273-student master roster; Tim uploads it before Monday): Step 1 gains “Last 4 of your student ID (OSIS)” + 🔎 Find me on the roster (auto-fires once last name, DOB and the 4 digits are in). The page hashes the…
yabc-case-management.html2026-09-27 11:20 ET
roster-lookup r1 — pairs with yabc-intro v1.2: 🎓 Admit joins by the profileId the kid found on their own phone (falls back to the name + DOB match only when the row has none), applies the kid's corrections (parent name/phone, address, ZIP) over the roster…
yabc-case-management.html2026-09-27 10:55 ET
site-optional r1 — MJ 10:50: the master roster from the school has no WAGNER/MCKEE header rows and he does not know who goes where, so the 📥 roster uploader no longer requires a site. Rows with no header above them upload with NO site field (a blank never…
yabc-case-management.html2026-09-27 10:40 ET
twice-monthly r1 — YABC staff ask (MJ 10:30): the green ⏱ LTW INTERNSHIP STIPENDS & HOURS banner (Director + Coordinator views) now reads “Twice-monthly hours entry · stipend dashboard · payroll CSV” instead of “Bi-weekly” — ltw-hours.html pays on 1st–15th /…
ltw-hours.html2026-09-27 10:40 ET
v2.4.3 twice-monthly — YABC staff ask (MJ 10:30): header sub-line and the grid eyebrow say “twice-monthly hours (1st–15th · 16th–end of month)” instead of “bi-weekly”; the 24 periods, the math and every write are unchanged. Firestore rules: N/A. Constant…
yabc-case-management.html2026-09-27 10:35 ET
intro-signins r1 — pairs with NEW yabc-intro.html v1.0 (apps.nycid.org/yabc, the orientation QR): Director + Coordinator views get a 📥 Orientation sign-ins card under the roster uploader — live ltw_intro rows (newest first, ✓ signed / ◐ partial pill, contact…
yabc-intro.html2026-09-27 10:05 ET
v1.0 orientation entry point — MJ 09-27 09:15 ("a single link and QR code candidates scan at orientation… the contract only, then a notice that they'll get full access in the coming days"). PUBLIC, no sign-in: apps.nycid.org/yabc (the _redirects short link on…
Friday, September 25, 2026 2 builds
nycid-careers-admin.html2026-09-25 11:45 ET
enroll-on-solutions r1 +w9 — pairs with youth-enrollment.html v2.0 (r331): the 🎓 Youth Enrollments view now reads nycid-solutions (a second named app "nycid-solutions" — youth_enrollments · youth_enrollment_ssn · Storage youth_w9 — with its own @nycid.org…
v2.0 +w9-sign — MJ 09-25: "build in a W-9 form for youth to complete and sign to enroll… filed with us." NEW STEP 6 · Tax form (W-9): the youth's Form W-9 (Rev. March 2024) is pre-filled from Steps 1–5 (line 1 name, line 3a Individual/sole proprietor, lines…
Thursday, September 24, 2026 2 builds
youth-dashboard.html2026-09-24 08:55 ET
v2.7 confirm-contact — MJ 09-24 08:34 ("we missed an opportunity when we set up the automatic invite… have them confirm and update their home address… when they log in for the first time it forces them to verify their contact information… a quick banner on…
requirements.html2026-09-24 08:55 ET
v3.6 team-save-fix + contact-check — MJ 09-24 08:34, two asks. (1) TEAM SAVE ("I updated all the staff… it appears to be defaulting back to the original list"): the 👥 Team box on the Director View was repainted from the saved list by the 2-minute auto-refresh…
Wednesday, September 23, 2026 12 builds
youth-dashboard.html2026-09-23 14:20 ET
v2.6 school-status + transcript-for-YEPS — MJ 09-23 12:40 URGENT: two more DYCD documents on the youth side, same keys as requirements.html v3.5: proofSchool (Proof of school status — in school NOW, Fall 2026: school letter · program card / schedule · this…
requirements.html2026-09-23 14:20 ET
v3.5 school-status + transcript-for-YEPS — MJ 09-23 12:40 URGENT ("two more things that need to be added to the list of documents"): TWO NEW CORE DOCUMENTS on the DYCD catalog (DOCS), for every youth in every cycle, same tick / type / date / note / 📎 files…
v1.2 +share-or-build-first — MJ 12:45 (parked) / 13:05 GO: the form now OPENS with the choice "📄 I already have a resume — share it" vs "✍️ Build me a new one". Share path is short — name · email · phone · borough · upload (required) → Send; writes…
cm-community-connect.html2026-09-23 13:20 ET
v1.5 +resume-on-file — MJ 13:05 GO (pairs with resume-intake.html v1.2 share-or-build): a seeker who SHARED their own resume is now obvious on the desk — case head tag "📄 resume shared" (or "📎 old resume attached" for a build-path attachment), a 📄 Resume on…
v1.3.3 sbs-mail-replies — MJ 12:30: SBS roster email closes with 'If you have questions, please reply to this message.'; Reply-To and cc are now kking@nycid.org + tdoyle@nycid.org (MJ's address removed from the cc; signature shows their two addresses under…
resume-intake.html2026-09-23 12:15 ET
v1.1.2 −age-question — MJ 12:12: the 'Are you 18 or older?' question and its note are REMOVED from step 1 (redundant with the 18+ notice in the intro); step-1 validation is name · email · phone · borough; the case's age18 field records '18+ (stated on the…
cm-community-connect.html2026-09-23 11:50 ET
v1.4 +answer-copy+resume-file — MJ 11:40: (1) 📝 form answers — ⧉ Copy ALL answers moved to the top of the panel and every single answer has its own ⧉ (one-click copy rule); (2) the seeker's uploaded existing resume (resume-intake v1.1,…
ltw-participant.html2026-09-23 10:40 ET
v1.1 test-lane — MJ 09-23 10:25 ("make the test process easier"): NYCID testers (mdevito@, mcandella@, arosario@, cgonzalez@) no longer get the staff refusal — they get a 🧪 TEST LANE picker: program (YABC / Olympus / Concord) × stage (fresh · contract signed…
yabc-student.html2026-09-23 09:55 ETcurrent build
v2.0 REDIRECT STUB — the YABC student portal is retired; every YABC / Olympus / Concord participant now lands on ltw-participant.html (MJ 09-23: "get all three dashboards in order off of the existing SYEP/WLG dash"). Query and hash carried over so…
cm-cpo-dashboard.html2026-09-23 09:05 ET
outreach-lens r15 — MJ 09-23 08:30 ("make sure the CPO can track the movements … add the movements on the employer outreach to the CPO — check to see what's wired already"). FOUND: nothing on this dash read employer_outreach_cases; the r14 👣 Activity lens…
olympus-case-management.html2026-09-23 07:35 ET
live r2 — MJ 09-23 07:06 ("same for OA, strip any and all data"): the remaining seeds go — the four demo expenses (dials now start at $0 spent) and the placeholder rolodex (555 numbers, example.org emails; empty state renders). Guards added: viewIntern with…
concord-case-management.html2026-09-23 07:35 ET
live r1 — MJ 09-23 07:06 ("staff said it looks like demo data… remove all the data"): the five named demo students, the roster generator, seeded notes / wraparound flags / escalations / expenses, the fabricated session history and the placeholder rolodex (555…
Tuesday, September 22, 2026 42 builds
yabc-case-management.html2026-09-22 18:25 ET
edge-dock r1 — MJ 09-22 18:15 (Galaxy): floating icons in the way on phones → edge-dock.js added as the last script; on ≤700px every small fixed pill (💬 📞 apps light/dark) moves into a right-edge slide-out tray with a ⋮ handle. Desktop unchanged. Firestore…
olympus-case-management.html2026-09-22 18:25 ET
edge-dock r1 — MJ 09-22 18:15 (Galaxy): floating icons in the way on phones → edge-dock.js added as the last script; on ≤700px every small fixed pill (💬 📞 apps light/dark) moves into a right-edge slide-out tray with a ⋮ handle. Desktop unchanged. Firestore…
index.html2026-09-22 18:25 ET
edge-dock r1 — MJ 09-22 18:15 (Galaxy): floating icons in the way on phones → edge-dock.js added as the last script; on ≤700px every small fixed pill (💬 📞 apps light/dark) moves into a right-edge slide-out tray with a ⋮ handle. Desktop unchanged. Firestore…
edge-dock.js2026-09-22 18:25 ETcurrent build
NEW r1 edge-dock — MJ 09-22 18:15 (Galaxy screenshots): on phones the floating icons (💬 The Wire · 📞 Call Out · 💡 🚌 🎁 📋 app pills · light/dark) sit on top of the content; MJ wants them in a Samsung-style EDGE PANEL. On screens ≤700px this script gathers every…
concord-case-management.html2026-09-22 18:25 ET
edge-dock r1 — MJ 09-22 18:15 (Galaxy): floating icons in the way on phones → edge-dock.js added as the last script; on ≤700px every small fixed pill (💬 📞 apps light/dark) moves into a right-edge slide-out tray with a ⋮ handle. Desktop unchanged. Firestore…
team-hub.js2026-09-22 17:58 ET
light-new r1 — MJ 09-22 17:50 "it also needs to light up the convo so you can see what is new". (1) CHAT LIST: a chat with unread messages is LIT — blue wash, bright left rail, bold white name (on top of the existing count chip). (2) INSIDE A THREAD: a yellow…
team-hub.js2026-09-22 17:48 ET
popup-guard r1 — MJ 09-22 17:40 iPhone screenshot on Concord: 'Sign-in did not complete — auth/cancelled-popup-request'. CAUSE: the 💬 pill was under the theme button on phones (fixed in concord/olympus mobile-corners r1 this zip), so MJ tapped repeatedly;…
olympus-case-management.html2026-09-22 17:45 ET
mobile-corners r1 — MJ 09-22 17:40 (iPhone screenshot on Concord): on phones the light/dark button covered The Wire 💬 pill (both fixed top-right; theme z-index wins) so it could not be tapped. FIX: the same ≤700px rule YABC already carries — theme button…
concord-case-management.html2026-09-22 17:45 ET
mobile-corners r1 — MJ 09-22 17:40 (iPhone screenshot on Concord): on phones the light/dark button covered The Wire 💬 pill (both fixed top-right; theme z-index wins) so it could not be tapped. FIX: the same ≤700px rule YABC already carries — theme button…
team-hub.js2026-09-22 17:24 ET
links+pops r1.1 HOTFIX — MJ 17:20 "IT'S NOT LETTING ME CLICK ON THE CHATS": ROOT CAUSE r1 defined thxLinkify next to esc() in a DIFFERENT IIFE than the message renderer (team-hub.js is five stacked IIFEs), so opening any chat threw ReferenceError and the…
team-hub.js2026-09-22 17:10 ET (MJ's 14:24 anchor + elapsed)
links+pops r1 — MJ 09-22 17:00, three Wire edits. (1) LINKS: a pasted URL in a message is now a real link — thxLinkify runs on the escaped text (http(s):// and www., opens in a new tab, trailing punctuation left outside the link). (2) TAB COUNT: the browser…
index.html2026-09-22 16:50 ET (MJ's 14:24 anchor + elapsed)
add-staff r1 — MJ 09-22 16:40: "a few staff need to be added to the app — a panel to add staff, start with how Basecamp does it; on the index only for me and Argenis right now." NEW 👥 Add people section ABOVE #dev-preview (so it is not tied to the DEV_PREVIEW…
cm-wfi-senior-director-dashboard.html2026-09-22 16:25 ET (MJ's 14:24 anchor + elapsed)
v1.2 department-view — MJ 09-22 16:10 ("good but not great — he should have a department-wide view, not just whichever tab is open"). NEW 🏢 DEPARTMENT card under the hero, painted before any lane is picked: (1) department strip — LTW youth on rosters · LTW…
v2.0 REDIRECT STUB — this page moved to cm-wfi-senior-director-dashboard.html (MJ 09-22: Allan's dash needs the WFI designator; other Senior Directors will get their own). Hash and query are carried over. Keep this file so bookmarks, the COO Test-as picker on…
ltw-hours.html2026-09-22 16:00 ET
v2.4.2 sd-rename — 🏛 Senior Director link → cm-wfi-senior-director-dashboard.html (renamed; old path redirects). One line + label. Firestore rules: N/A. Constant Contact: N/A.
ltw-budget.html2026-09-22 16:00 ET
v1.1.2 sd-rename — 🧮 All lanes pill → cm-wfi-senior-director-dashboard.html (renamed; old path redirects). One line + label. Firestore rules: N/A. Constant Contact: N/A.
concord-case-management.html2026-09-22 16:00 ET (MJ's 14:24 anchor + elapsed)
sd-toggle r1 — MJ 09-22 15:45 URGENT: Allan must toggle between his WFI Senior Director dashboard and this Concord Director dash; only the SD → Concord direction existed. NEW gantry pill ⇄ WFI Senior Director (data-persona=sd) →…
cm-wfi-senior-director-dashboard.html2026-09-22 16:00 ET (MJ's 14:24 anchor + elapsed)
v1.1 rename+toggle — MJ 09-22 15:45 URGENT: Allan's home is THIS dashboard and it needs a proper designator (other Senior Directors will get their own), and he must toggle between it and his Concord Director dash. (1) RENAMED sr-director-dashboard.html →…
cm-coo-dashboard.html2026-09-22 16:00 ET
sd-rename r1 — Test-as home for Allan → cm-wfi-senior-director-dashboard.html (sr-director-dashboard.html renamed; old path redirects). One line + label. Firestore rules: N/A. Constant Contact: N/A.
requirements.html2026-09-22 15:36 ET
v3.4.1 yeps-invite-fix — found answering MJ's question ("as soon as a youth is selected they get the invite, correct?"): the v3.4 edit put a // comment in front of the invite loop on the YEPS-apply path, commenting it out on the same line — a youth moved to…
requirements.html2026-09-22 15:20 ET (MJ's 14:24 anchor + elapsed)
v3.4 yeps-report-drives-status — MJ 09-22 15:00 ("perfect!"): the YEPS status report a staffer pulls must change a participant's status on Solutions, Selected included. The v2.7/v2.8 sync already moved Pending/Selected → selected (with the auto-invite),…
call-in.js2026-09-22 14:34 ET (MJ's 14:24 anchor + elapsed)
v6.2 board-directors-only — URGENT (MJ 09-22 14:24, Miya's screenshot on Concord): staff could see one another's call-out requests in the 'Out today' / 'Upcoming' lists. Only Directors and above may see that. FIX: (1) NEW isReviewer(email) = DECIDERS (CPO ·…
youth-dashboard.html2026-09-22 12:40 ET
v2.5 post-training fixes — MJ 09-22 12:11 list (items 4–7). (4) 48-HOUR PAPERWORK WINDOW: a Selected youth sees, at the top of 🎓 Requirements and on the tile, "⏱ Upload by <due> — N h left" or "⏱ Your 48-hour window ended <due> — upload now, NYCID is waiting"…
v1.9 transcript-date — MJ 09-22 12:11 (item 5): both transcript cards (proof of address, employment authorization) now lead with "Transcript must be dated June 1, 2026 or later — an older printout cannot be accepted." Nothing else changed. Rides suite zip…
requirements.html2026-09-22 12:40 ET
v3.3 post-training fixes — MJ 09-22 12:11 list. (1) ✏️ EDIT on Contact information works again — ROOT CAUSE v3.2.5 foldDrawer() overwrote every section's id with dsec-N, so paintContact(edit) looked for #dContact, found nothing and returned silently; ids are…
requirements.html2026-09-22 09:50 ET
v3.2.7 undock — MJ 09-22 09:45 (“allow the case management screen to undock and be moved as desired by user”): the case drawer's top bar gets ⧉ Undock — the drawer becomes a floating window (rounded, shadowed) you drag by the ⋮⋮ grip in its title bar (mouse…
requirements.html2026-09-22 09:40 ET
v3.2.6 director-pin — MJ 09-22 09:38 (“put a pin on the director view 0225”): the 📊 Director View tab asks for PIN 0225 before it opens — once per browser session (sessionStorage), Cancel/wrong PIN leaves you on the current tab with a “Wrong PIN” toast, every…
requirements.html2026-09-22 09:35 ET
v3.2.5 case-feed + fold — MJ 09-22 09:25 (“it's showing replies for every message — noise — remove all of that… put drop downs for the items in the case manager, it's a lot of scrolling to get to the messages at the bottom”). (1) 📩 Reach NYCID is ONE…
cm-cpo-dashboard.html2026-09-22 09:30 ET
activity-lens r14 — MJ 09-17 (“all of the clicks everywhere and anywhere… wired to the CPO dashboard”), built 09-22 session 4: NEW 👣 Activity lens (amber fat pill beside Work Tracker) = MC's read side of activity.js — activity_log on nycid-solutions read…
activity.js2026-09-22 09:30 ETcurrent build
r1.1 named-app fallback — suite-wide pass (session 4): db()/who() now use firebase.app() and fall back to firebase.apps[0], because the cm-* dashboards initialise only a NAMED app ('nycid-gate') and the default-app calls threw, so nothing was logged there;…
requirements.html2026-09-22 09:20 ET
v3.2.4 master-queue grouped — MJ 09-22 09:15 (“this master queue is not grouping the messages from youth. It should”): 🗂 Master Queue now shows ONE row per youth — name + ▸ N wires toggle (expands the individual wires beneath, each with its own Take over /…
requirements.html2026-09-22 09:12 ET
v3.2.3 ss-applies — session 4 small item: Selective Service “applies” was age-only (18+) because sex lives in restricted youth_demographics that enrollment staff cannot read. Now the DYCD Connect importer stamps a plain boolean enrollment_tracking.ssApplies…
strategy-board.html2026-09-22 09:10 ET (08:41 anchor + elapsed)
v1.8 pick-many + library-keeps-assigned + out-spans — MJ 09-22: "assign more than one staff to a task BEFORE it goes into the to dos today … that task searchable again if I need to reassign it or add people — right now once I assign to someone it comes off…
requirements.html2026-09-22 09:05 ET
v3.2.2 hits-100 + placement col — session 4 small items: (1) Find a Participant hit list cap raised 25 → 100 with “showing 100 of N — narrow the search” when it overflows; (2) roster table gets a sortable Placement column (worksite · job title from…
youth-dashboard.html2026-09-22 08:45 ET
v2.4 docs-in-messages — MJ 09-22 08:40 (“there is no document uploader, just share a screenshot… add a document uploader that has the documents we need from them so we can align everything”): the 📩 Reach NYCID sheet gains a 📎 DOCUMENTS NYCID STILL NEEDS block…
requirements.html2026-09-22 08:45 ET
v3.2.1 queue-refresh — MJ 09-22 08:40 (“I need a refresh button for messages on my queue”): ↻ Refresh button on the My Queue bar and on the Master Queue bar — re-reads youth_help_requests + the roster (load()) and repaints in place; shows “Refreshed h:mm”.…
mfa-gate.js2026-09-22 08:45 ETcurrent build
r4 warm-recaptcha + gesture-sync — MJ 09-22 session 4 item 1 (kid enters cell, taps Text me the code → no text on the first tap). Root-cause work: r3 rebuilt the host node per attempt but still built the reCAPTCHA verifier INSIDE the promise chain, after…
youth-dashboard.html2026-09-22 08:32 ET
v2.3.1 auto-continue — MJ 09-22 08:30 (“did I have to choose Continue? I want this automatic”): the two-button prompt is GONE. When the youth has an open conversation with their staff member, Reach NYCID opens straight on that conversation with the reply box…
youth-dashboard.html2026-09-22 08:20 ET
v2.3 new-message tag — MJ 09-22 08:15 (screenshot, tested r288 “working”): the tiny white dot on the Reach NYCID pill is not enough. NEW #newMsgs tag under the business card (where the arrow points), closed by default: “📩 You have 1 new message from NYCID —…
youth-dashboard.html2026-09-22 07:45 ET
v2.2 wire-routing — MJ 09-22 07:22 GO (session 3, routing decision): every Reach NYCID message now carries routeTo (assigned staff email | 'comms') so an enrollment answer lands in the assigned staff's My Queue on requirements.html and never in general Comms.…
requirements.html2026-09-22 07:45 ET
v3.2 wires + Master Queue — MJ 09-22 07:22 GO (session 3 routing decision, r287 confirmed deployed): Reach NYCID messages are WIRES now, and each carries routeTo (assigned staff email | 'comms', set by youth-dashboard v2.2 from the topic; a wire with no…
requirements.html2026-09-22 06:52 ET
v3.1 legacy-port cut 2 — MJ 09-22 06:52 "Confirmed" (r286 deployed as delivered, md5 de9a07ab): the three Legacy tabs that cut 1 left on the v2.x layouts. 🎯 MY QUEUE = the Legacy stat strip (Your caseload · Need H&L · Need SHPT · Need Orientation · No contact…
Monday, September 21, 2026 18 builds
youth-dashboard.html2026-09-21 21:50 ET
v2.1.1 photo-rules — MJ 09-21: "put a message when clicked that this should be a professional looking photo and not a playful photo or anything inappropriate." Tapping the photo picker (My Info → add / replace photo) now shows a confirm FIRST — professional,…
requirements.html2026-09-21 21:49 ET
v3.0 legacy-port cut 1 — MJ 09-21 21:33 ("requirements.html was supposed to be a COPY of the Legacy compliance tracker WITH additions"): the Legacy compliance-outreach-tracker.html (10,198 ln, 21 Legacy collections) is now the BASE of this page, on Solutions…
youth-dashboard.html2026-09-21 21:40 ET
v2.1 reach-topics+photo — MJ 09-21 21:08 (screenshots): (1) 📩 REACH NYCID gets its topic choices back — the old participants.html modal had a pick-list, the v2.0 sheet had only a textarea; new "What we can fix" row (demo copy: Pay · placement · hours · login…
requirements.html2026-09-21 21:37 ET
v2.9.2 email-case — MJ 09-21 21:37 (the youth-dash "can't find you" for kids whose YEPS email has capitals): Google reports a signed-in email lowercase, YEPS exports keep the kid's typing, and the youth_profiles list rule compares exactly, so JSmith@Gmail.com…
activity.js2026-09-21 21:20 ET
v1.0 touch stream — MJ 09-17 ("all of the clicks everywhere and anywhere… if it's not wired, I want all touches to report out") / 09-21 team call: every touch on a suite page writes an activity record to activity_log on nycid-solutions for the CPO (MC)…
youth-dashboard.html2026-09-21 21:05 ET
v2.0 cockpit — MJ 09-21 20:10 (“the dash demo is supposed to be the new dash … PUT THIS IN PLACE AS THE ONLY DASHBOARD”): the v1.x flat-card page is RETIRED; this is dash-demo-oy.html’s shell (functional-v3.9, 08-16: cockpit CSS, header with the light/dark…
cm-chro-dashboard.html2026-09-21 19:25 ET
chro-dashboard v1.9.1 over-wording — MJ 09-21 18:57 "why does it say it's 554K over?" — the v1.9 card wrote "$554,960 over", which reads as an overrun; it is the workbook's Revenue Over Expenses line (revenue − budgeted expenses). Now "$554,960 revenue over…
cm-hr-director-dashboard.html2026-09-21 18:52 ET
hr-director-dashboard v1.4 published-budget — MJ 09-21 18:40: the hidden 💰 Budget lens is now the reader for publish-picker.js — after sign-in it loads budget_publications addressed to the signed-in director (Emily, or Lauryn on the same page) from…
v2.20 publish-picker — MJ 09-21 18:40: 📤 Publish figures to Director Dashboards opens the who-sees-what shadow box (publish-picker.js r1): the CPO ticks directors (none pre-listed — add by @nycid.org email, saved in budget_alloc_settings.directors) and picks…
ffs v1.6 publish-picker — MJ 09-21 18:40: 📤 Publish figures to Director Dashboards now opens the who-sees-what shadow box (publish-picker.js r1). Tick Emily / Lauryn (add more by email — saved in ffs_budget_alloc_settings.directors), pick per director the…
NEW r1 — the director-side reader for publish-picker.js. NYCID_PublishedBudget.mount(el,{db,email,onCount}) lists every active budget_publications doc addressed to the signed-in director (across depts) as one card per site with only the figure groups the…
publish-picker.js2026-09-21 18:50 ETcurrent build
NEW r1 — MJ 09-21 18:40: "when the CPO or the CHRO hits Publish figures to Director Dashboards this should open as a shadow box for the executive to choose the items they want the director(s) to see — certain items to Emily and none to Lauryn; the CPO will do…
cm-chro-dashboard.html2026-09-21 18:34 ET
chro-dashboard v1.9 live-ffs-card — MJ 09-21 16:17 (screenshot: card says $3,334,010 revenue · 15 sites, "is it right that it's 3 million?"). No. The hero card text was a STATIC string baked on 09-17 from the 15-site seed; the extra $1,566,000 is exactly the…
cm-budget-allocations-ffs.html2026-09-21 16:14 ET
ffs v1.5 hidden-sheets-out — MJ 09-21 16:12 (Ivy: the seed WAS the right workbook, but five sheets that are hidden in it came along). Checked the upload with openpyxl: COMPASS 44 · COMPASS 57 · PS74FFS · PS 59 Advantage · LEAPS 59 are sheet_state=hidden, the…
cm-budget-allocations-ffs.html2026-09-21 16:09 ET
ffs v1.4 reload-from-workbook — MJ 09-21 16:06: “the CHRO dash has a problem — somehow the wrong data is seeded on her budgets and there is no way to reseed or bake it in” (+ uploaded _FY_27_Budgets_-FFS.xlsx as the correct one). FINDING: the baked seed…
mfa-gate.js2026-09-21 16:03 ET
r3 recaptcha-rebuild + kept errors — MJ 09-21 (entered his mobile on ‘Secure your account’ from youth-dashboard connect-by-email, tapped Text me the code, no text came, second tap read ‘reCAPTCHA has already been rendered in this element’). (1) Every attempt…
wlg-compliance-tracker.html2026-09-21 08:04 ET (MJ's 07:16 anchor + elapsed)current build
REDIRECT STUB → requirements.html?cycle=wlg-2026-27 (the tracker is now the cycle-driven Requirements page; this name stays only so old links and bookmarks keep working).
index.html2026-09-21 08:04 ET (MJ's 07:16 anchor + elapsed)
requirements-tile r1 — the 🗂️ hot-bar tile now opens requirements.html (the cycle-driven Requirements page that replaces wlg-compliance-tracker.html; old name redirects). Tile text + ⧉ copy link only; nothing else touched. Firestore rules: see…
Friday, September 18, 2026 7 builds
cm-budget-allocations-ffs.html2026-09-18 10:25 ET
ffs v1.3 seed-fix — MJ 09-18 10:10 screenshot: "this load button does not work." ROOT CAUSE (a v1.0 bug, reproduced against the real firebase@10.7.1 SDK): every PROGRAMS_SEED site carries revenue as an ARRAY OF ARRAYS ([["FFS After-Care",322500],…]) and…
cm-chro-dashboard.html2026-09-18 09:50 ET
chro-dashboard v1.8 budget-fits-the-screen — MJ 09-18 09:35: on the 💰 FFS Budgets lens (1) the console frame breaks out of the 1,300px page column to the full window width (up to 1,900px) so the 18-column grid has room and needs no sideways slider (pairs with…
cm-budget-allocations-ffs.html2026-09-18 09:50 ET
ffs v1.2 fit-one-screen — MJ 09-18 09:35 (CHRO dash, "the budget page is a wreck"): (1) NO SIDEWAYS SLIDER — the budget grid (row label + 15 sites + off-sheet + Total = 18 columns) was 2,285px wide inside a ~1,340px frame; it is now a fixed-layout table that…
cm-hr-director-dashboard.html2026-09-18 09:10 ET
no-christina-wording r1 — MJ 09-18 08:45: HR does not route receipts to Christina, so the 💰 lens note no longer reads "Same figures as MC's and Christina's boards" — it now says what the grid is (FY27 program OTPS, read-only reference from the CPO Budget…
cm-budget-allocations-ffs.html2026-09-18 09:10 ET
ffs v1.1 no-christina — MJ 09-18 08:45: "the CHRO and Emily and Lauryn are not sending receipts to Christina, so their dashboards should not say so." The 🧾 OTPS Receipts chain on Ivy's console is now logged → ✔ approved (Ivy / C-suite) and approved is the…
cm-executive-assistant-dashboard.html2026-09-18 08:15 ET
v1.3 split-upload — MJ 09-18 07:25 ("split orders"): (C) the 📤 Upload a receipt form ("Send to Christina", incl. the ?receipts=1 director view) gains ✂ Split this receipt: a toggle opens rows of program + category + % AND $ (two-way fill — type either, the…
cm-cpo-budget-command.html2026-09-18 08:15 ET
v1.1 shadow-box+move — MJ 09-18 07:25 ("budget sheets must go deeper"): (A) 🔎 SHADOW BOX — every "spent" figure is now a door: tap the spent line in any grid cell, the program TOTAL row, the category Total column, the vendor-account row, or "spent so far"…
Thursday, September 17, 2026 55 builds
cm-chro-dashboard.html2026-09-17 16:55 ET
chro-dashboard v1.7 ffs-budget-console — MJ 09-17 16:02 ("IB now has her budgets… same cm-budget-allocation interface I have for CMSI… add it as a tab only on the CHRO's dashboard"): the 💰 Budget lens is no longer a placeholder — it mounts NEW…
cm-budget-allocations-ffs.html2026-09-17 16:55 ET
ffs v1.0 NEW — MJ 09-17 16:02: "IB now has her budgets… I want her to have the same cm-budget-allocation interface I have for CMSI… add it as a tab only on the CHRO's dashboard." GENERATED from cm-budget-allocations.html v2.19 (same code, same grid, same…
v1.2 +src=ffs — links sent from the NEW cm-budget-allocations-ffs.html (CHRO Fee-for-Service console) carry ?src=ffs: the page then reads ffs_budget_snapshots on nycid-solutions and titles the sheet "Fee-for-Service & After-School"; without the parameter…
cm-test-students.html2026-09-17 12:35 ET (10:55 anchor + elapsed)current build
🧹 purge v1.3 · MJ 09-17 ("do that zztests"): the console-only purge note becomes a 🧹 Purge button — signs the staffer in on nycid-solutions (the seeder only ever signed in on the legacy gate, so the deletes need a real Solutions token), then deletes every…
ltw-hours.html2026-09-17 12:28 ET (11:20 anchor + elapsed)
v2.4.1 test-as via COO — Test-as now also honors the suite-wide localStorage nycidTestAs flag set from cm-coo-dashboard.html (8-hour expiry); Exit clears both. Firestore rules: N/A. Constant Contact: N/A.
cm-coo-dashboard.html2026-09-17 12:25 ET (11:20 anchor + elapsed)
+strategy-pill+test-as r1 — MJ 09-17: (1) 📋 Strategy Board pill in the lens bar (links strategy-board.html) + a row in the All-dashboards list with its copy-link; (2) 👁 Test as… picker: choose an LTW Internship Coordinator or lane Director and the suite pages…
cm-coo-dashboard.html2026-09-17 12:12 ET (10:55 anchor + elapsed)
test-as-home r2 · MJ 09-17 GO (r253 step 3): the 👁 Test as… picker now OPENS the person's home page in a new tab the moment you pick them (lane page for coordinators/advocates/directors, sr-director-dashboard for Allan, the YABC hub for a school partner) —…
strategy-board.html2026-09-17 12:10 ET (11:20 anchor + elapsed)
v1.7 carry-over — MJ 09-17 URGENT: "not carrying over tasks that I assigned yesterday into today's view." Cause: the day view only listed tasks whose planDate equalled the viewed day; earlier-day open tasks sat in a collapsed planner-only 'Planned on earlier…
yabc-hub.html2026-09-17 12:06 ET (10:55 anchor + elapsed)current build
v3.0 redirect · The YABC hub now lives in program-hub.html?p=yabc (lane-keyed hub for YABC · Concord · Olympus, r253). This file only forwards — query string (?thread=…) and hash are carried over so every existing link, bookmark and the installed PWA…
yabc-case-management.html2026-09-17 11:55 ET (11:20 anchor + elapsed)
stipend-pill r1 — MJ 09-17 ("I need the LTW hour app to be attached to each of the coordinators dashboards"): ⏱ LTW Internship Stipends & hours pill (ltw-hours.html?p=yabc) leads the Internship Coordinator view and sits under the FY27 OTPS hero on the…
olympus-case-management.html2026-09-17 11:55 ET (11:20 anchor + elapsed)
stipend-pill r1 — MJ 09-17 ("I need the LTW hour app to be attached to each of the coordinators dashboards"): ⏱ LTW Internship Stipends & hours pill (ltw-hours.html?p=olympus) leads the Internship Coordinator view and sits under the FY27 OTPS hero on the…
concord-case-management.html2026-09-17 11:55 ET (11:20 anchor + elapsed)
stipend-pill r1 — MJ 09-17 ("I need the LTW hour app to be attached to each of the coordinators dashboards"): ⏱ LTW Internship Stipends & hours pill (ltw-hours.html?p=concord) leads the Internship Coordinator view and sits under the FY27 OTPS hero on the…
yabc-case-management.html2026-09-17 11:50 ET (10:55 anchor + elapsed)
role-bind r1 · MJ 09-17 ("turn the demo off — everyone incl. @schools.nyc.gov sees the Hub"): (1) the signed-in account IS the view — NEW shared lane-role.js gates the page behind Google sign-in on the ltw app (nycid-solutions), maps the person to ONE role…
olympus-case-management.html2026-09-17 11:50 ET (10:55 anchor + elapsed)
role-bind+live r1 · MJ 09-17 ("turn the demo off"; "remove all of the fake data … leave the Concord data"): (1) LIVE ROSTER — the 16 named demo students, the 180-student generator, seeded notes/wraparound/escalations and the fabricated phones/emails are GONE;…
ltw-hours.html2026-09-17 11:50 ET (11:20 anchor + elapsed)
v2.4 test-as — MJ 09-17 ("the ltw programs are still not untangled and set to the individual user as near as I can tell"): the v2.3 lane lock only applies to coordinators and lane Directors — admins (MJ) and the SD always see all three, which is why it looked…
concord-case-management.html2026-09-17 11:50 ET (10:55 anchor + elapsed)
role-bind r1 · MJ 09-17 ("turn the demo off"; Concord keeps the roster it was set up with — untouched): (1) ROLE-BIND via NEW shared lane-role.js (+ firebase-auth-compat 10.12.2): Google sign-in gate on the ltw app (nycid-solutions), one role per account —…
wlg-documents-guide.html2026-09-17 11:40 ET (11:20 anchor + elapsed)
v1.8 +birth-cert+lease-b — MJ 09-17: slot 01 (birth certificate a) = the DYCD-annotated NYC Certification of Birth sample ("Document is clear and legible"), names/identifiers blacked out at source; slot 14 (lease b) = a real residential lease MJ supplied,…
lane-role.js2026-09-17 11:40 ET (10:55 anchor + elapsed)
NEW r1 role-bind · Shared by yabc/olympus/concord-case-management.html (MJ 09-17 GO: "everyone incl. @schools.nyc.gov sees the Hub"). The signed-in account IS the identity: a full-screen Google sign-in gate on the 'ltw' app (nycid-solutions) resolves the…
cm-hr-director-dashboard.html2026-09-17 11:20 ET
hr-director-dashboard v1.3 folders-repo+ready — MJ 09-17: (1) Forms Library now holds TWO repositories — 📄 blank templates (as before) and 📁 Completed staff folders (hr-onboarding-repo.js v1.2 HR_REPO.completed: every folder marked complete, Download / Email…
cm-chro-dashboard.html2026-09-17 11:20 ET
chro-dashboard v1.6 folders-repo+ready — MJ 09-17: (1) Forms Library now holds TWO repositories — 📄 blank templates (as before) and 📁 Completed staff folders (hr-onboarding-repo.js v1.2 HR_REPO.completed: every folder marked complete, Download / Email…
cm-hr-director-dashboard.html2026-09-17 10:55 ET
hr-director-dashboard v1.2 sdk-match+hub-hero — (1) RELOAD-STUCK-ON-GATE FIX, MJ console 10:54: the boot now loads auth/firestore/storage compat from whatever Firebase version is already on the page (call-in.js/team-hub.js = 10.7.1) instead of forcing 10.12.2…
cm-chro-dashboard.html2026-09-17 10:55 ET
chro-dashboard v1.5 sdk-match+hub-hero — (1) RELOAD-STUCK-ON-GATE FIX, MJ console 10:54: the boot now loads auth/firestore/storage compat from whatever Firebase version is already on the page (call-in.js/team-hub.js = 10.7.1) instead of forcing 10.12.2 on top…
cm-hr-director-dashboard.html2026-09-17 10:30 ET
hr-director-dashboard v1.1.3 hub-first — MJ 09-17 ("move the Onboarding Hub up"): the 🚀 Onboarding Hub card is now the FIRST card on the Hiring lens, ahead of Hire Request Form in the top grid (10:05 had moved it within the lower Career Center grid, which is…
cm-chro-dashboard.html2026-09-17 10:30 ET
chro-dashboard v1.4.2 hub-first — MJ 09-17 ("move the Onboarding Hub up"): the 🚀 Onboarding Hub card is now the FIRST card on the Hiring lens, ahead of Hire Request Form in the top grid (10:05 had moved it within the lower Career Center grid, which is not…
cm-onboarding-hub.html2026-09-17 10:05 ET
example-tom r1 — MJ 09-17 "I want an example person to use for learning — can we add Tom DeVito somehow?": 🎓 Example: Tom DeVito button beside Add loads Tom DeVito Jr. (EXAMPLE) onto the roster on the SACC track with 7 of 28 steps done; he lives only in this…
cm-hr-director-dashboard.html2026-09-17 10:05 ET
hr-director-dashboard v1.1.2 hub-up — MJ 09-17: 🚀 Onboarding Hub card moved up to the second slot of the Career Center grid (first row), right after the Master Portal. Nothing else changed.
cm-chro-dashboard.html2026-09-17 10:05 ET
chro-dashboard v1.4.1 hub-up — MJ 09-17: 🚀 Onboarding Hub card moved up to the second slot of the Career Center grid (first row), right after the Master Portal. Nothing else changed.
ltw-hours.html2026-09-17 09:55 ET
v2.3 lane lock — MJ 09-17 09:5x confirmed the Internship Coordinators: miya@ → Concord · mpaul@ → Olympus · pcuozzo@ → YABC. Each coordinator (and each lane Director: aavidano@ Concord · jjeanty@ Olympus · tdesiderio@ YABC) now lands on her own lane with the…
ltw-hours.html2026-09-17 09:45 ET
v2.2 role links + centered month — MJ 09-17 09:3x: (1) the Also-bar was a static leftover from v1 (not a sign-in effect) — now ROLE-AWARE: budget admins + the Senior Director (aavidano@) see 🏛 Senior Director dashboard + the three Director views; a lane…
cm-chro-dashboard.html2026-09-17 09:45 ET
v1.4 hr-budget-seed-ready+launch-pills — MJ 09-17: (1) CPO BUDGET STRIPPED — the FY27 OTPS + Fee-for-Service hero cards and the program_otps_allocations/budget_lines lens body are gone from Ivy's page; one 💰 HR Budget hero card + a seed-ready Budget lens that…
nycid-careers-admin.html2026-09-17 09:20 ET
signed-in-identity r1 — MJ 09-17: the reviewer Last, First box is retired; reviewedBy is the signed-in @nycid.org email (auto-filled; a 🔐 Sign in button appears top-right when no session). Firestore rules: N/A. Constant Contact: N/A.
ltw-hours.html2026-09-17 09:20 ET
v2.1 accordion + light — MJ 09-17: (1) the month strip opens on the CURRENT MONTH and expands like an accordion — Show: Month / Quarter / Half / Year (fiscal quarters Jul–Sep · Oct–Dec · Jan–Mar · Apr–Jun; halves Jul–Dec · Jan–Jun), ◀ ▶ step by the chosen…
cm-onboarding-hub.html2026-09-17 09:20 ET
signed-in-identity r1 — MJ 09-17: "Your name" box replaced by the signed-in @nycid.org email (read-only, auto-filled after the staff gate); onboarding_progress.updatedBy now carries the account. Firestore rules: N/A. Constant Contact: N/A.
nycid-careers.html2026-09-17 07:55 ET
theme+logo r3 — hero logo centered (display:block so margin:auto applies).
nycid-careers.html2026-09-17 07:50 ET
theme+logo r2 — MJ screenshot: both logos painted side by side in the top bar and the hero showed the dark-lettering mark on dark; cause = .crest img{display:block} outranked the theme swap. The two swap rules now carry !important. Nothing else changed.
nycid-careers.html2026-09-17 07:35 ET
theme+logo r1 — per MJ 09-17 screenshots: (1) FIX the black-on-dark department / program titles — .path and .pill are <button>s and Chrome paints buttons in buttontext black; one rule button{color:inherit} (2) LIGHT/DARK: html[data-theme=light] variable set +…
cm-hr-director-dashboard.html2026-09-17 07:10 ET
hr-director-dashboard v1.1.1 +lfazio — per MJ 09-17: Lauryn Fazio (lfazio@nycid.org, onboarding & documents / compliance) added to REPO_WRITERS (Onboarding Repository uploads + ticks; NOT the Forms Library HR_WRITERS set) — paired with firestore_v40.rules…
cm-chro-dashboard.html2026-09-17 07:10 ET
chro-dashboard v1.3.1 +lfazio — per MJ 09-17: Lauryn Fazio (lfazio@nycid.org, onboarding & documents / compliance) added to REPO_WRITERS (Onboarding Repository uploads + ticks; NOT the Forms Library HR_WRITERS set) — paired with firestore_v40.rules…
cm-hr-director-dashboard.html2026-09-17 06:55 ET
hr-director-dashboard v1.1 +tasks — per MJ 09-17 ("build it into the CPO dashboard as tasks needing to be complete"): NEW 📋 Tasks lens = org-tasks.js (shared with cm-cpo-dashboard.html once its deployed copy is uploaded), list basecamp-migration — the 10-step…
cm-chro-dashboard.html2026-09-17 06:55 ET
chro-dashboard v1.3 +tasks — per MJ 09-17 ("build it into the CPO dashboard as tasks needing to be complete"): NEW 📋 Tasks lens = org-tasks.js (shared with cm-cpo-dashboard.html once its deployed copy is uploaded), list basecamp-migration — the 10-step…
wlg-documents-guide.html2026-09-17 06:29 ET (MJ's 04:24 anchor + elapsed)
v1.7 +ssa+dol — MJ re-sent both held letters with the names and address blocks blacked out at source: slot 35 proof of disability = SSA Retirement, Survivors and Disability Insurance benefits letter (Jamaica NY program service center); slot 20 official state…
wlg-documents-guide.html2026-09-17 06:19 ET (MJ's 04:24 anchor + elapsed)
v1.6 +verizon+hra+reportcard — MJ 09-17 directed three more samples in: slot 12 utility bill c = Verizon Fios bill (no customer name, address blurred at source); slot 23 SNAP = HRA Richmond Job Center notice of decision on PA/SNAP/Medicaid (name and case…
wlg-documents-guide.html2026-09-17 06:07 ET (MJ's 04:24 anchor + elapsed)
v1.5 +sss+bank — slot 34 = Selective Service SSS Form 3A/3B registration-acknowledgment letter + card, official form with every field already blacked out at source; slot 26 = Chase 'Jon Doe' illustrative checking statement (publisher footer: purely…
wlg-documents-guide.html2026-09-17 05:56 ET (MJ's 04:24 anchor + elapsed)
v1.4 +coned-sample — slot 10 (utility bill a) is now Con Edison's own published sample residential bill (Mina Miller, account 99999-99999-9, placeholder phone/email — issuer specimen), replacing the drawn card. 21 slots still illustrations. Firestore rules:…
wlg-documents-guide.html2026-09-17 05:53 ET (MJ's 04:24 anchor + elapsed)
v1.3 +paystub+lease samples — MJ 09-17 supplied two NYCID-prepared FICTIONAL full-document samples (watermarked SAMPLE / NOT A REAL LEASE, footer says all names/amounts invented): 22 government pay stub = City of New York / NYPD earnings statement for John A.…
wlg-documents-guide.html2026-09-17 05:41 ET (MJ's 04:24 anchor + elapsed)
v1.2 issuer-samples — MJ 09-17 ("the index cards are not great — we need real doc examples"): five drawn illustrations replaced with issuer-published samples MJ supplied: 09 transcript = the NYC DOE 'How to Read a High School Transcript' sample (page 2 only —…
team-hub.js2026-09-17 05:05 ET (MJ's 03:01 anchor + elapsed)
wfh-out-of-chats r2 — MJ 09-17 screenshot (four 9/4 10:54 threads to Nigel · Maram · Allan · Tara, all 'You: 🏠 WFH request' = his own test fan-out from the Wire form, on the pre-r224 build): per-message 🗑 was four taps per thread. NOW: 🗑 Remove chat in every…
wlg-documents-guide.html2026-09-17 05:00 ET (MJ's 04:24 anchor + elapsed)
v1.1 safe-samples+lightbox — tap any sample to open it full size (the red callouts are readable only enlarged). MJ 09-17 ("there are actual SSNs, DoBs and tons of other real info in these images — we should not have them out there"): the 31 images from…
wlg-documents-guide.html2026-09-17 04:42 ET (MJ's 04:24 anchor + elapsed)
NEW v1.0 dycd-docs-guide — static reference page (no Firebase, no sign-in) built from Cathy Lynch's "DRAFT - Revised" email (02-11-2026, mdevito@ inbox) that lists every document DYCD requires for enrollment: 5 core categories (proof of age · Social Security…
index.html2026-09-17 04:42 ET (MJ's 04:24 anchor + elapsed)
+wlg-tracker+docs-guide tiles r1 — two hot-bar tiles (inside #dev-preview, ⧉ Copy link like their neighbours) for the NEW wlg-compliance-tracker.html and wlg-documents-guide.html, placed right before the 🎓 youth-dashboard tile. Nothing else touched. Firestore…
cm-hr-director-dashboard.html2026-09-17 04:40 ET (MJ 03:01 anchor + elapsed)
v1.0 hr-director — 🧑💼 NEW: Emily Marks's (HR Director under IB, emarks@nycid.org) home, per MJ 09-17 "a Director dash for her that mirrors the hiring work the CHRO is doing". Generated from cm-chro-dashboard.html v1.2 THIS turn (same code, same lenses): 🧑💼…
cm-chro-dashboard.html2026-09-17 04:40 ET (MJ 03:01 anchor + elapsed)
v1.2 career-center+onboarding-repo — per MJ 09-17: (1) 🧑💼 HIRING lens is now the NYCID CAREER CENTER: Master Portal (⧉ copy link) · Live Tracker (all depts + SYEP, one list) · SYEP detailed posting (public page only; its applicants route to the unified…
team-hub.js2026-09-17 04:25 ET (MJ's 03:01 anchor + elapsed)
wfh-out-of-chats r1 — MJ 09-17 GO ("WFH requests don't belong in Chats"). FOUR PIECES. (1) NO MORE WFH DMs: reqSubmit no longer posts the 🏠 request card to the Sr. Directors + Tara, and wDecideReq / the agenda editor no longer DM the requester a decision card…
cm-cpo-dashboard.html2026-09-17 03:35 ET (MJ's 03:01 anchor + elapsed)
callout-void r13 — MJ 09-17: test call-out requests (sent from the email flow) sit in MC's 🏖 strip and are not real; MC and CK must be able to remove them. THREE FIXES on the 🏖 Time-off box. (1) VOID: every card gets ✖ Remove for VOIDERS = mcandella@ · ckuhn@…
call-in.js2026-09-17 03:20 ET (MJ's 03:01 anchor + elapsed)
v6.1 withdraw-restored — MJ 09-17 (testing as tomdevitojr@ on staff-requests.html): "the withdraw feature is gone." ROOT CAUSE: it was never removed from this file — the only Withdraw button lived inside the 'Out today' / 'Upcoming' board lists, and…
Wednesday, September 16, 2026 39 builds
ltw-hours.html2026-09-16 19:50 ET
v2.0 STIPEND REBUILD — MJ 09-16 19:10–19:20: cut loose from the OTPS budgets (no budget-board.js, no program_budgets/program_purchases, OTPS link gone from the Also-bar) and rebuilt to function like each program's stipend sheet (Concord/Olympus/YABC Google…
ltw-budget.html2026-09-16 19:50 ET
v1.1.1 no-hours-link — MJ 09-16 19:10: ltw-hours.html is a separate stipend/payroll tool; its link leaves the Also-bar so OTPS budgets and stipends never point at each other. Nothing else changed. Rules N/A. CC N/A. Validated node/tags/Playwright.
cm-wfi-senior-director-dashboard.html2026-09-16 19:50 ET
v1.0.1 no-hours-link — MJ 09-16 19:10: the LTW stipend/hours app is a separate payroll tool, not part of the OTPS budgets; the ⏱ Internship hours pill is removed from the nav so the two systems never point at each other. Nothing else changed. Rules N/A. CC…
yabc-case-management.html2026-09-16 18:50 ET
budget-hero r1 — MJ 09-16 17:20: (1) BUDGET TO THE TOP: a blue 💰 FY27 OTPS hero pill (styled like the cm-cpo-dashboard hero) now leads the Director view — lane total of the FIVE Director lines (Program Supplies · Incentives · Trips & Outings · Refreshments ·…
olympus-case-management.html2026-09-16 18:50 ET
budget-hero r1 — MJ 09-16 17:20: (1) BUDGET TO THE TOP: a blue 💰 FY27 OTPS hero pill (styled like the cm-cpo-dashboard hero) now leads the Director view — lane total of the FIVE Director lines (Program Supplies · Incentives · Trips & Outings · Refreshments ·…
ltw-hours.html2026-09-16 18:50 ET
v1.0.2 approvers — +jjeanty@ (Joseph Jeanty, Olympus Director) to APPROVERS per the 09-16 17:30 staff bindings; Concord's approver stays Allan (aavidano@). Stacks on v1.0.1. Rules N/A (ltw_hours unchanged in v34). CC N/A. Validated node/tags/Playwright.
ltw-budget.html2026-09-16 18:50 ET
v1.1 sd-link — MJ 09-16 17:20: the 🧮 All-three view retires into the NEW sr-director-dashboard.html (link pill for admins + the Sr. Director); boards mount budget-board.js r3 so a Director sees only the five Director lines. Stacks on v1.0.1. Rules v34 (this…
concord-case-management.html2026-09-16 18:50 ET
budget-hero r1 — MJ 09-16 17:20: (1) BUDGET TO THE TOP: a blue 💰 FY27 OTPS hero pill (styled like the cm-cpo-dashboard hero) now leads the Director view — lane total of the FIVE Director lines (Program Supplies · Incentives · Trips & Outings · Refreshments ·…
cm-wfi-senior-director-dashboard.html2026-09-16 18:50 ET
NEW v1.0 — SENIOR DIRECTOR DASHBOARD for Allan Avidano (aavidano@; also the 5 budget admins), per MJ 09-16 17:30–17:38: Allan is Senior Director of ALL WFI except YouthBuild AND the Concord LTW Director — one login, both roles. nycid-solutions config, house…
budget-board.js2026-09-16 18:50 ET
r3 director-lines+roles+lanes — MJ 09-16 17:20–17:38: (1) DIRECTOR VIEW = FIVE LINES ONLY (Program Supplies · Incentives · Trips & Outings · Refreshments · Program Events Expense): mount(el,{view:'director'|'full'}) — at Director level the dials, totals…
v1.6.1 show-to-syep — MJ 09-16: "SYEP should also be a choice here." Show-to on 💼 Employer partners gains SYEP (visibleTo key 'syep'; employer-board.js already filters by any program key, so the SYEP/WLG picker port reads it with program:'syep'); new rows…
v1.6 nycid-app-auto-stages — MJ 09-16: "It's not DYCD app it's NYCID App — and a lot of these are automatic when they are done in the app." Stage 1 renamed NYCID app. The four pipeline stages now stamp THEMSELVES from the site's worksite_profiles record (the…
ltw-hours.html2026-09-16 16:40 ET
v1.0.1 light-nav — light theme: the program pills were white-on-white in the nav bar (dark-header styling); off pills now take the page ink + line colors under html[data-theme=light], and the theme button reads ☾ Dark when light is active. Nothing else…
ltw-budget.html2026-09-16 16:40 ET
v1.0.1 light-nav — light theme: the program pills were white-on-white in the nav bar (dark-header styling); off pills now take the page ink + line colors under html[data-theme=light], and the theme button reads ☾ Dark when light is active. Nothing else…
v1.5 pipeline-onepage+dates+jd-owner — MJ 09-16 screenshot of the 🏢 WLG pipeline: "Invalid Date" in Opened door, "via android-app://com.google.android.gm/" under it, rows too tall in an inner scroll box, and "owner is either Steven or Kyra as they are the…
budget-board.js2026-09-16 16:35 ET (MJ's 14:24 anchor + elapsed)
r2 dials+theme+seed-once — MJ 09-16 (three screenshots): (1) DIALS: the amount + "0% of $15,744" sat inside a 90px ring and spilled over it — ring is now 104px/r40 with only the spent amount + "N% used" inside, the line budget printed under the ring ("of…
jd-dashboard.html2026-09-16 16:10 ET (from MJ's 15:55 anchor + elapsed)
v1.4 tags+quick-email-no-seed — MJ 09-16 15:55, three items. (1) 🌱 Seed pill REMOVED (the 25-26 sheet was seeded once and must never run again; the baked-in 43 rows are gone from the file; ⬆ Import xlsx and + Add employer remain, both still merge with SYEP…
yabc-case-management.html2026-09-16 15:35 ET (MJ's 14:24 anchor + elapsed)
live-budget r1 — MJ 09-16: "the 9.9.26 budget summary shows Directors their OTPS numbers … create the working monitoring of these budgets so that Directors have them on their dashboards and can make purchases and upload receipts." The Director view's Program…
olympus-case-management.html2026-09-16 15:35 ET (MJ's 14:24 anchor + elapsed)
live-budget r1 — MJ 09-16: "the 9.9.26 budget summary shows Directors their OTPS numbers … create the working monitoring of these budgets so that Directors have them on their dashboards and can make purchases and upload receipts." The Director view's Program…
concord-case-management.html2026-09-16 15:35 ET (MJ's 14:24 anchor + elapsed)
live-budget r1 — MJ 09-16: "the 9.9.26 budget summary shows Directors their OTPS numbers … create the working monitoring of these budgets so that Directors have them on their dashboards and can make purchases and upload receipts." The Director view's Program…
ltw-hours.html2026-09-16 15:20 ET (MJ's 14:24 anchor + elapsed)
NEW v1.0 — LTW INTERNSHIP HOURS: the Internship Coordinator's weekly hours entry for the three LTW lanes (?p=yabc | olympus | concord), nycid-solutions config, house deco skin, @nycid.org Google sign-in. Roster = youth_profiles for the program (legacy…
ltw-budget.html2026-09-16 15:05 ET (MJ's 14:24 anchor + elapsed)
NEW v1.0 — LTW OTPS BUDGET MONITOR: the Director's stand-alone budget page for the three LTW lanes (?p=yabc | olympus | concord), nycid-solutions config, house deco skin. Mounts budget-board.js r1: FY27 line-item dials from the 9/9/26 budget summary…
budget-board.js2026-09-16 14:55 ET (MJ's 14:24 anchor + elapsed)
NEW r1 — LIVE OTPS BUDGET BOARD for the LTW lanes (YABC = PO 6 · Olympus Academy = LTW column · Concord = CONC column of the 9/9/26 "PO - Youth program Summary" budget sheet). One <script src="budget-board.js"> +…
jd-dashboard.html2026-09-16 13:25 ET (carried from 11:17 handoff + elapsed — MJ to confirm)
v1.3 all-syep-sites — MJ 09-16: "the wlg seeded but not all the SYEP 2026 sites." CAUSE: v1.1/v1.2 read only worksite_profiles on the legacy project, which holds just the sites that set up a profile; the full SYEP 2026 worksite list is the DYCD `jobs` upload…
jd-dashboard.html2026-09-16 13:10 ET (carried from 11:17 handoff + elapsed — MJ to confirm)
v1.2 merge-sheet-with-syep — MJ 09-16: "I want her to be able to merge those on the sheet that are already on the SYEP 2026 roster." Seed and ⬆ Import now match each sheet employer against the SYEP 2026 worksite_profiles already loaded from the legacy project…
jd-dashboard.html2026-09-16 12:55 ET (carried from 11:17 handoff + elapsed — MJ to confirm)
v1.1 pipeline-from-syep+invites — MJ 09-16: "the WLG pipeline should be coming off of all the emails we sent … next the worksite should populate from last SYEP." The 🏢 WLG pipeline now starts from LAST SUMMER: a second Firebase app on the legacy project…
employer-board.js2026-09-16 12:25 ET (carried from 11:17 handoff + elapsed — MJ to confirm)current build
NEW r1 — the connective tissue: one <script src="employer-board.js"> + NYCID_EmployerBoard.mount(el,{program:'concord'|'yabc'|'olympus'|'wlg', youth:true}) renders the LIVE employer/job list Shantell keeps on jd-dashboard.html (collection employer_partners on…
jd-dashboard.html2026-09-16 12:20 ET (carried from 11:17 handoff + elapsed — MJ to confirm)
NEW v1.0 — LEAD JOB DEVELOPER DASHBOARD for Shantell Walker, per MJ 09-16 ("look at all of the work we need to accomplish — all of the new WLG apps coming in, all of the worksite assurance, pre-assessments … marry the SYEP/WLG job section tool with the LTW so…
strategy-board.html2026-09-16 11:40 ET (carried from handoff 11:17 + elapsed — MJ to confirm)
v1.6 sender-cc + Powerson — MJ 09-16: "I need to also get a copy of the tasks not just a preview and also add epowerson@nycid.org Emmanual Powerson to the list." CAUSE: v1.0–v1.5 stripped the signed-in sender from Cc on the real ✉ send…
strategy-board.html2026-09-16 11:12 ET (from MJ's 06:45 anchor + elapsed)
v1.5 preview+test — MJ 09-16: "a test button so I can see what I am sending to MC." NEW 👁 Preview email (planner toolbar): opens the exact email — To/Cc/Subject line + the HTML in an iframe — built by the SAME buildPlanMail() the ✉ send now calls (the email…
strategy-board.html2026-09-16 10:55 ET (from MJ's 06:45 anchor + elapsed)
v1.4 mark-out FIX — MJ 09-16: "mark someone out is not working." CAUSE: the button reused id=btnOut, which the header Sign-out button already owns — getElementById bound the mark-out handler to Sign out, and the mark-out button had no handler at all…
strategy-board.html2026-09-16 10:35 ET (from MJ's 06:45 anchor + elapsed)
v1.3 multi-assign — MJ 09-16: "I need to assign the same task to more than one person." A planned task now carries assignees:[emails]; the select on a planned task reads '+ Add person' and ADDS to the list (from the library it still assigns the first person);…
strategy-board.html2026-09-16 10:00 ET (from MJ's 06:45 anchor + elapsed)
v1.2 agvep-lane — MJ 09-16: "add the AGVEP audit — we need to audit all files." NEW lane 'AGVEP 2026 audit' + 8 seed tasks agv_01–08 from the DYCD 09-15 notice (10 youth + 3 worksites, everything due 10/2): sample list into the 🚀 AGVEP sub-tabs · Kevin Yao…
strategy-board.html2026-09-16 09:45 ET (from MJ's 06:45 anchor + elapsed)
v1.1 out+note+week — MJ 09-16: "identify staff that called out offline … make a note … add tasks for the week." THREE additions. (1) 📵 MARK SOMEONE OUT (planners): pick a team member + optional note → strategy_tasks/_out_{date}_{email} {kind:'out', title,…
staff-requests.html2026-09-16 09:20 ET (from MJ's 06:45 anchor + elapsed)current build
v1.2 form-visible FIX — MJ 09-16 screenshot (signed in as tomdevitojr@, sheet open, body EMPTY): the v1.1 no-tally rule '#ci-sheet .ci-sec{display:none}' also hid the request form, because call-in.js wraps the form in its own .ci-sec inside #ci-form. Selector…
call-in.js2026-09-16 08:20 ET (from MJ's 06:45 anchor + elapsed)
v6.0 callout-requests — MJ 09-15/16 (MC "is disturbed that staff are TELLING him, not asking"): EVERY call out is now a REQUEST. (1) REQUEST_TYPES = all six (sick · personal/vacation · late · early · remote · other) → status 'requested'; the sheet reads…
staff-requests.html2026-09-16 07:35 ET (from MJ's 06:45 anchor + elapsed)
v1.1 no-tally — MJ 09-16: "There should be no tally on the bottom for the entire org to see." The call-in.js 📞 pill and its out-today badge are hidden on THIS page (CSS only: #ci-pill,#ci-badge display:none), and the Call Out sheet shows the request form only…
staff-requests.html2026-09-16 07:15 ET (from MJ's 06:45 anchor + elapsed)
NEW v1.0 — the two-door STAFF REQUESTS landing page, per MJ 09-16 ("a link to the WFH request that exists and another link to the Call Out requests — a special landing page for just these two items"). No sign-in on the page itself, no Firestore of its own:…
wfh-request.html2026-09-16 07:05 ET (from MJ's 06:45 anchor + elapsed)current build
v1.1 decision-to-chain — MJ 09-16: "those emails trigger a reply back to everyone who is on the chain." The Approve / Deny decision email (email button OR the on-page reviewer queue) now goes To the requester, Cc Allan · MC · Tara · MJ · CK minus whoever…
Tuesday, September 15, 2026 5 builds
strategy-board.html2026-09-15 20:30 ET (from MJ's 19:31 anchor + elapsed)
NEW v1.0 — SYEP / WLG STRATEGY BOARD, per MJ 09-15 ("an interface that allows me to quickly assign SYEP/WLG tasks to the team and then those assignments emailed to Candella in the a.m. — a strategy board with all the SYEP/WLG tasks on it, I build the tasks…
wfh-request.html2026-09-15 20:05 ET (from MJ's 19:31 anchor + elapsed)
NEW v1.0 — the WFH Request form UNDOCKED from The Wire, per MJ 09-15 ("a simple WFH Request log that is not attached to the Wire for now — an interface that allows the staff to select what they are working on for the day and upon submission the email goes…
index.html2026-09-15 13:35 ET (est. — anchor unset)
+youth-dashboard tile r1 — one 🎓 hot-bar tile (inside #dev-preview, ⧉ Copy link like its neighbours) for the NEW youth-dashboard.html (WLG youth page on Solutions), placed right before the 🆕 What's New tile. Re-cut on the audit chat's r191 (index there was…
wlg-faq.html2026-09-15 09:15 ET (estimated from the 08:34 worklog stamp; MJ to confirm)current build
NEW wlg-faq v1.0 — MJ 09-15: "a WLG FAQ built for Argenis to respond to comms messages… split between student issues and program issues." Static reference page (no Firebase, no rules, no data — safe on nycid-data and apps.nycid.org). Two tabs: 🎓 Student…
cm-coo-dashboard.html2026-09-15 07:25 ET (from MJ's 07:09 anchor + elapsed)
+all-dashboards lens r1 — NEW 🗂 All dashboards tab, now the landing lens (MJ 09-15: "as COO I need access to all dashboards — a tab with all the dashboards listed so I can jump to them"): every page in the suite except this one (85 of them) grouped Executive…
Monday, September 14, 2026 7 builds
yabc-case-management.html2026-09-14 15:05 ET (container UTC−4h — MJ confirm)
undock-live-roster r1 — YABC RUNS ON REAL YOUTH NOW. (1) NAMED_STUDENTS + buildRoster (17 named + 418 fabricated) DELETED: STUDENTS starts EMPTY and fills from youth_profiles on nycid-solutions (program 'yabc', status≠inactive) the moment an @nycid.org…
cs-mentoring.html2026-09-14 13:45 ET (container 17:45 UTC −4h — MJ confirm)current build
deco-skin r1 — MJ: "the SYEP suite has a real futuristic feel … Chrysler-building futuristic panels and lettering — the pages you are building now do not." CSS-only reskin to the house language seen on yabc-case-management / the Solutions index / the SYEP…
cm-cpo-dashboard.html2026-09-14 13:00 ET (container 17:00 UTC −4h — MJ confirm)
+cs-mentoring-links r1 — MC's workflow gains Tara's Community Schools Leadership Mentoring: (1) the five OCS cards on the 🦅 bird's-eye program grid (PS16 · Port · PS78 · PS44 · Lehman) now carry href → cs-mentoring.html?p=<school>, so "dashboard coming soon"…
cs-mentoring.html2026-09-14 12:40 ET (container 16:40 UTC −4h — MJ confirm)
NEW cs-mentoring v1.0 — Community Schools Leadership Mentoring case management (Tara Muglia's program, under MC's CPO workflow), the in-app replacement for Mike Candella Jr.'s 26-27 Google-Forms suite (Encounter Form per school → Clean Data → per-mentor tabs…
wlg-apply.html2026-09-14 12:25 ET (from MJ's 10:47 anchor + elapsed)current build
v1.2 outreach-link — MJ: "is it possible to get a link to give to Steven for his own outreach, like we do with the express center?" YES: https://apps.nycid.org/wlg-apply.html?via=steven . (1) NEW ?via= tag (letters/digits/._- only, ≤40) is stored on the click…
wlg-apply.html2026-09-14 11:50 ET (from MJ's 10:47 anchor + elapsed)
v1.1 notify-shantell — MJ: "notification to Shantell Walker when a worksite applies". Every worksite click now ALSO writes one `mail` doc to the legacy transport (Trigger Email on syep-2026-job-placement; `mail` create is open on both projects, same unauth…
wlg-apply.html2026-09-14 11:05 ET (from MJ's 10:47 anchor + elapsed)
NEW wlg-apply v1.0 — the tracked door to the DYCD WLG Worksite Application (MJ 09-14: "I need them to go through our interface to get to the site so we know they are doing it"). The admin-dashboard.html employer template wlg_worksite_app_open sends each site…
Sunday, September 13, 2026 3 builds
index.html2026-09-13 10:55 ET (container 14:55 UTC −4h — MJ confirm)
+coo-dashboard tile r1 — one 🔐 hot-bar tile (inside #dev-preview, ⧉ Copy link like its neighbours) for the NEW cm-coo-dashboard.html, placed right before the 🆕 What's New tile, and the finder now routes Michael De Vito Jr. → cm-coo-dashboard.html (dashboard…
cm-coo-dashboard.html2026-09-13 10:40 ET (container 14:40 UTC −4h — MJ confirm)
NEW coo-dashboard v1.0 Phase 1 — MJ's home (MJ 09-13: "it's high time that I have a COO dashboard — CMSI staff and budgets but also let me manage the apps — in this case the approval of a new staff member"). THREE LENSES, one live: 🔐 APPS — Partner Access:…
partner-join.html2026-09-13 10:15 ET (container 14:15 UTC −4h — MJ confirm)
NEW partner-join v1.0 — the SCHOOL-PARTNER SIGN-UP FORM (MJ 09-13: "a form we generate for the school staff to complete… short link and a qr code… they fill it out and they are added… approved by a NYCID data person — for now this should be me").…
Saturday, September 12, 2026 4 builds
team-hub.js2026-09-12 09:35 ET (MJ's 07:53 anchor + elapsed)
wire-wfh-cards+drawers r1 — MJ 09-12 (screenshots of the WFH-request DMs in The Wire): "I should be able to approve or deny these WFH requests here, more uniform / bullet format, the approver should be able to change the items to work on — a slide-out for the…
nycid-calendar.js2026-09-12 09:35 ET (MJ's 07:53 anchor + elapsed)
slide-out r1 — MJ 09-12: "add the NYCID calendar here too as a slide out." The centered pop-up is now a RIGHT-EDGE DRAWER (same treatment as the Message Board in team-hub.js the same turn): slides in over the page's right edge, sits BESIDE The Wire when the…
team-hub.js2026-09-12 08:05 ET (MJ's 07:53 anchor + elapsed)
the-wire-name r1 — MJ 09-12: "the NYCID In App Messenger would be called The Wire — not the YABC comms center." LABELS ONLY: the 💬 In App Team Messenger pill is now 📡 The Wire, and every user-visible "Team Hub" string (panel title, aria-label, float-window…
comms-core.js2026-09-12 08:05 ET (MJ's 07:53 anchor + elapsed)
r1.1 name-neutral — MJ 09-12: The Wire is the NYCID team messenger (team-hub.js), not this engine. Default wireName is now "Comms" (the hub passes "YABC Comms"); the mail/messages meta app tag is comms-core (was the-wire). The wireThreadId/wireMsgId meta keys…
Friday, September 11, 2026 4 builds
comms-core.js2026-09-11 15:20 ET (MJ's 14:33 anchor + elapsed)
NEW r1 — THE WIRE ENGINE for nycid-solutions (MJ 09-11: "copy the way SYEP email interfaces with all the features that apply here — uploads, forwards, sent mail — it needs to function just like Gmail, also it needs to interface with the in-app messenger").…
program-attendance.html2026-09-11 09:35 ET
v1.3 student-app-qr — MJ: "add it to the attendance screen when they check in and it goes green, give it a little time to show the QR that they can scan to download." The green ✓ screen now carries a white QR card (scan →…
index.html2026-09-11 09:05 ET
+whats-new tile r1 — one 🆕 hot-bar tile (inside #dev-preview, admin eyes only, ⧉ Copy link like its neighbours) for the new whats-new.html feature log generated by tools/build-whats-new.py; nothing else touched. Firestore rules: N/A. Constant Contact: N/A.
PROGRAM-ROSTER MODE r1 (MJ GO 08:20: case managers build an event from the attendance app, it shows on the NYCID calendar, and they pick who is in the room; first use = LTW new-student meeting Wed 09-16). NEW 4th tile on "How do you want to track…
Thursday, September 10, 2026 15 builds
mfa-gate.js2026-09-10 15:32 ET (est. — confirm anchor)
r2 stuck-on-sending — MJ hit 'Sending…' for 2+ minutes on the enrollment wall (michaeldevitojr@gmail.com, yabc-student.html). (1) Wall z-index dropped from 2147483600 to 1999999000 so a visible reCAPTCHA challenge (Google draws it at 2000000000) can no longer…
yabc-case-management.html2026-09-10 14:35 ET (MJ's 13:03 anchor + elapsed)
hub-tab+phone-theme-dodge — MJ: (1) "Add the hub to the top too for now": new 🏫 Hub tab at the end of the gantry — a link-out that opens yabc-hub.html in a new tab (persona untouched, so the page you were on stays put); (2) "the in app messenger is covering…
yabc-case-management.html2026-09-10 14:15 ET (MJ's 13:03 anchor + elapsed)
pwa-install-btn — the manifest/icons were already wired (09-01 PWA INSTALL v1.0) but there was no button: +pwa-install-yabc.js gives the same "⬇ Add to device" button + per-device steps as index.html, bottom-left above the build tag. Stacks on 13:40…
pwa-install-yabc.js2026-09-10 14:15 ET (MJ's 13:03 anchor + elapsed)current build
v1.0 — MJ: "the install feature is not available on the suite. Put the same install feature that is on the index on all yabc pages." Shared drop-in ported from index.html's pwa-install-solutions: one-click install when Chrome offers beforeinstallprompt,…
program-attendance.html2026-09-10 14:15 ET (MJ's 13:03 anchor + elapsed)
v1.2.1 pwa-install — installable on the tablet: manifest-yabc-attendance.json (start_url ?p=yabc) + pwa-install-yabc.js; the "⬇ Add to device" button is .staff-only, so it exists only in staff mode (kids never see it). Stacks on 09:15 v1.2 kiosk-hardening.…
yabc-case-management.html2026-09-10 13:40 ET (MJ's 13:03 anchor + elapsed)
hub-notices r1 — pairs with NEW yabc-hub.html v1.0: the Student tab's "My attendance · live" card now shows 📣 notices staff sent from the hub (youth_profiles.notices[] minus noticeAck) as purple must-dismiss banners; "Got it ✓" writes noticeAck.{id} on the…
youthbuild-case-management.html2026-09-10 09:55 ET
bridge-wording-fix — MJ: "it's cross the bridge, not climb the bridge, double-check that on all pages." The 09-02 theme+bridge pass missed one live string: the CM KPI card read "n crossed to placement · n still climbing" → now "still crossing". Only visible…
yabc-case-management.html2026-09-10 09:55 ET
bridge-wording-fix — MJ: "it's cross the bridge, not climb the bridge, double-check that on all pages." The 09-02 theme+bridge pass missed one live string: the CM KPI card read "n crossed to placement · n still climbing" → now "still crossing". Only visible…
olympus-case-management.html2026-09-10 09:55 ET
bridge-wording-fix — MJ: "it's cross the bridge, not climb the bridge, double-check that on all pages." The 09-02 theme+bridge pass missed one live string: the CM KPI card read "n crossed to placement · n still climbing" → now "still crossing". Only visible…
concord-case-management.html2026-09-10 09:55 ET
bridge-wording-fix — MJ: "it's cross the bridge, not climb the bridge, double-check that on all pages." The 09-02 theme+bridge pass missed one live string: the CM KPI card read "n crossed to placement · n still climbing" → now "still crossing". Only visible…
bridge-wording-fix — MJ: "it's cross the bridge, not climb the bridge, double-check that on all pages." The 09-02 theme+bridge pass missed one live string: the CM KPI card read "n crossed to placement · n still climbing" → now "still crossing". Only visible…
bridge-wording-fix — MJ: "it's cross the bridge, not climb the bridge, double-check that on all pages." The 09-02 theme+bridge pass missed one live string: the CM KPI card read "n crossed to placement · n still climbing" → now "still crossing". Only visible…
program-attendance.html2026-09-10 09:15 ET
v1.2 kiosk-hardening — MJ: "that should not be accessible on that screen. what if a kid fucks with it?" Every staff control is now .staff-only and does not exist on the youth screen: Staff tools, Switch program, "Staff: check in without OSIS", "Staff: undo…
worksite-monitor-assessment.html2026-09-10 08:55 ET (MJ's 07:27 anchor + elapsed)current build
back-to-loader — MJ: "when they use the back button on the assessment, it brings them back to their worksite app. The back button should bring them back to the 'Start a weekly assessment' screen." The header ← Back pill now checks which screen is open: on an…
yabc-case-management.html2026-09-10 08:20 ET
tom-demo-persona r1 — Tom DeVito (MJ's demo alter ego) seeded as a NAMED YABC student: Susan Wagner site, advocate Ashley Granata, enrolled, 92% attendance, internship track (2 WBL), OSIS 200000042 (last four 0042), DOB 04/15/2008 — so he appears on every…
Wednesday, September 9, 2026 4 builds
solutions-comms.html2026-09-09 16:20 ET (carried from MJ’s 15:56 anchor)current build
solutions-comms r3 staff-copy+send-feedback — MJ (screenshot, "Email 68" did nothing visible): (1) SEND FEEDBACK AT THE BUTTON — every stop (not connected, blank subject, unknown tag, nobody reachable, batch error) now paints a status line directly under the…
solutions-comms.html2026-09-09 15:30 ET (est. container −4h — confirm wall-clock)
solutions-comms r2 legacy-connect — MJ (live): "messages log read failed: Missing or insufficient permissions." ROOT CAUSE ON THE BYTES, not the rules: v23 already lets any signed-in @nycid.org read + create messages on both projects. r1 tried to sign the…
index.html2026-09-09 15:05 ET (est. container −4h — confirm wall-clock)
index-copy-links r1 — MJ (screenshot of the live index): "there is no tag on solutions add one - and always make it one click copy if possible." TWO NEW HOT-BAR TILES right after 🎯 Employer Outreach: 📣 Solutions Comms Center (solutions-comms.html) and 📋…
solutions-comms.html2026-09-09 13:30 ET (est. container −4h — confirm wall-clock)
NEW solutions-comms r1 — 📣 COMMS CENTER FOR NYCID SOLUTIONS (MJ: "unlike SYEP I do not have a comms center for NYCID Solutions. I need that now. Copy the logic. We want to be able to text and email these folks asap."). WHAT IT DOES: staff page (@nycid.org…
yeps-eval-intake (STACKS ON today's audit-chase-campaign + w3-gate-profile-cohort + w3-gate-start-date + audit-sheet-mode + staff-audit-scope — one deploy carries all six) — MJ: "I need to get these sheets in front of the kids to sign … the Burlington kids…
audit-chase-campaign (STACKS ON today's w3-gate-profile-cohort + w3-gate-start-date + audit-sheet-mode + staff-audit-scope — one deploy carries all five) — MJ: "express still not showing all sites … write me a specific search for this — add unsigned referrals…
w3-gate-profile-cohort (STACKS ON today's w3-gate-start-date + audit-sheet-mode + staff-audit-scope — one deploy carries all four) — MJ: "7744496 Emily still didn't come up." Her referral persists no formData.startDate and its cohort field holds a PROGRAM…
w3-gate-start-date (STACKS ON today's audit-sheet-mode + staff-audit-scope — one deploy carries all three) — MJ (Lehman High School: Emily Calderon 7744496, 9160010, 6396073 got no Week 3 card on the catch-up link; her audit folder's "signed" Week 3 PDF…
audit-sheet-mode (STACKS ON today's staff-audit-scope — one deploy carries both) — MJ: "It's not loading the correct audience. Look at all the places missing week 3 and week 6 and right now it pulled ~6." The sheet CSV he sent says 16 sites / 41 youth (30…
staff-audit-scope — MJ: "what I need is to send a direct link to the worksites who did not submit Week 3 and Week 6 evals for ONLY the kids on the audit sheet." The 09-02 ols-audit-scope build only made the RESPOND page honor &ols=; the staff side never…
Monday, September 7, 2026 7 builds
yabc-case-management.html2026-09-07 08:40 ET
live-attendance r2 storage-photos — pairs with program-attendance.html v1.1: youth photos now live in Storage (youth_photos/yabc/{key}.jpg), the doc carries photoUrl only; Student "take my photo" uploads bytes unauthenticated under its own key then patches…
program-attendance.html2026-09-07 08:40 ET
v1.1 storage-photos — MJ: "No storage for the photos?" Photo BYTES now go to Firebase Storage at youth_photos/{program}/{profileKey}.jpg (contentType image/jpeg, ≤480px, staff-signed-in upload); the youth_profiles doc carries only photoUrl/photoAt/photoBy.…
yabc-case-management.html2026-09-07 08:20 ET
+live-attendance r1 — pairs with NEW program-attendance.html v1.0 (the in-school kiosk, program YABC). STUDENT tab: "My attendance · live" card above the portal — last name + last four of OSIS + DOB rebuild the kiosk's sha256 lookup key and read ONE…
program-attendance.html2026-09-07 08:20 ET
NEW v1.0 — in-school attendance kiosk on nycid-solutions, first program YABC. Descended from the SYEP yy-attendance.html flow (tap-your-name → confirm → full-screen ✓) with the location search REMOVED: the program is resolved from ?p=<code>, then the device…
cm-chro-dashboard.html2026-09-07 08:10 ET (est. — MJ confirm wall-clock)
chro-dashboard v1.1 hiring-home+dials — per MJ 9/7: (1) the page now LANDS ON HIRING (LENS default 'hiring'; People still one tap away and its call-in / WFH / time-off / tracker loads unchanged in the background). (2) NYCID CAREERS links in place on the…
cm-executive-assistant-dashboard.html2026-09-07 07:40 ET (container 11:39 UTC −4h — MJ confirm)
minutes-focus r1 — per MJ 9/7: the 📝 Minutes pill on the CPO and CHRO dashboards landed on Christina's ENTIRE board with the minutes tab selected; now ?minutes=1 is a FOCUSED view like ?receipts=1 already is — head reads '📝 Meeting minutes', the quick tiles +…
cm-chro-dashboard.html2026-09-07 07:40 ET (container 11:39 UTC −4h — MJ confirm)
chro-dashboard v1.0 r2 — per MJ 9/7: the person emoji dropped from the header title and the Hiring tab ("no need for it"). The 📝 Minutes pill is unchanged here — the fix for "it opens Christina's whole dashboard" lives in cm-executive-assistant-dashboard.html…
Sunday, September 6, 2026 47 builds
cm-chro-dashboard.html2026-09-06 08:40 ET
chro-dashboard v1.0 Phase 1 — 🧑💼 NEW: Ivy Bilotti's (CHRO) home, per the 08:07 kickoff. Native-light with html[data-theme=dark] (cm-cpo pattern, shared nycid-admin-theme key). FIVE LENSES: 👥 PEOPLE — call-ins strip + 🏠 WFH requests + 🏖 time-off approve/deny…
tracking.html2026-09-06 07:35 ETcurrent build
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
org-chart.html2026-09-06 07:35 ETcurrent build
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
index.html2026-09-06 07:35 ET
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-04…
funding.html2026-09-06 07:35 ETcurrent build
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
forms.html2026-09-06 07:35 ETcurrent build
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
fiscal.html2026-09-06 07:35 ETcurrent build
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
events.html2026-09-06 07:35 ETcurrent build
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
cm-test-students.html2026-09-06 07:35 ET
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-06…
cm-senior-director-dashboard-demo.html2026-09-06 07:35 ET
light-palette r1 — suite light-theme sweep batch 1 (Tier 1; pattern = cm-cpo hardcode-kill): this sheet was all Tailwind-slate literals, so every color in the stylesheet + Chart.js axis/grid/label colors (read from the vars at build; charts keep the palette…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
cm-onboarding-hub.html2026-09-06 07:35 ET
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-06…
cm-executive-dashboard-demo.html2026-09-06 07:35 ET
light-palette r1 — suite light-theme sweep batch 1 (Tier 1; pattern = cm-cpo hardcode-kill): this sheet was all Tailwind-slate literals, so every color in the stylesheet + Chart.js axis/grid/label colors (read from the vars at build; charts keep the palette…
cm-executive-assistant-dashboard.html2026-09-06 07:35 ET
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-04…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
cm-director-dashboard-demo.html2026-09-06 07:35 ET
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-06…
cm-director-dashboard-demo.html2026-09-06 07:35 ET
light-palette r1 — suite light-theme sweep batch 1 (Tier 1, pattern = olympus 07:25 palette port + cm-cpo hardcode-kill): invert(1) hack retired to a no-op; html.nycid-light now sets the hand-tuned bridge palette; every hardcoded dark surface in the sheet…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
cm-cpo-dashboard.html2026-09-06 07:35 ET
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-04…
cm-cpo-budget-command.html2026-09-06 07:35 ET
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-03…
cm-counselor-dashboard-demo.html2026-09-06 07:35 ET
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-06…
cm-counselor-dashboard-demo.html2026-09-06 07:35 ET
light-palette r1 — suite light-theme sweep batch 1 (Tier 1, pattern = olympus 07:25 palette port + cm-cpo hardcode-kill): invert(1) hack retired to a no-op; html.nycid-light now sets the hand-tuned bridge palette; every hardcoded dark surface in the sheet…
cm-case-manager-dashboard.html2026-09-06 07:35 ET
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-06…
cm-case-manager-dashboard.html2026-09-06 07:35 ET
light-palette r1 — suite light-theme sweep batch 1 (Tier 1; pattern = cm-cpo hardcode-kill): this sheet was all Tailwind-slate literals, so every color in the stylesheet + every JS-built inline style/SVG fill (KPI tiles, rings, queue rows, mentor table)…
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
cm-budget-allocations.html2026-09-06 07:35 ET
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-03…
casework.html2026-09-06 07:35 ETcurrent build
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-02…
call-in.html2026-09-06 07:35 ETcurrent build
gate-logo r1 — per MJ screenshot: NYCID logo (nycid-logo.png, white lettering — the gate overlay is always slate-dark) replaces the emoji above "NYCID Staff Sign-In" on the shared staff gate; suite-wide, one line, nothing else touched (stacks on 2026-09-03…
olympus-case-management.html2026-09-06 07:25 ET (MJ's 07:13 anchor)
case-card+light-palette r1 — THE TWO ASKS: (1) CASE CARD, compliance-tracker style — the right-side dock is DEAD: cases open as a centered card (940px, z9000 above the messenger pill so nothing overlaps), header carries an ACT-IN-PLACE contact row (✉ mailto ·…
Friday, September 4, 2026 19 builds
cm-cpo-dashboard.html2026-09-04 10:12 ET
work-tracker r14 timeoff-own-box — 🏖 time-off approvals get their OWN amber box under the green WFH box (were rendering beneath the WFH header — wrong read); each queue clears independently; decisions repaint only the amber box; time-off paints even when the…
cm-cpo-dashboard.html2026-09-04 10:05 ET
work-tracker r13 -whos-in-tile — the 'Who's in / out' hero tile (routed to Christina's dash) removed per MJ: the tracker's 🟢 live-now + approvals cover it from MC's own page. Rides r95.
cm-cpo-dashboard.html2026-09-04 09:58 ET
work-tracker r12 timeoff-unblocked — the 🏖 approval queue no longer hides behind the WFH sign-in: staff_callins loads FIRST from this page's own db and renders even when the Solutions session is absent (sign-in line and time-off cards coexist); shared card…
team-hub.js2026-09-04 09:48 ET
work-tracker-phase1 r8 +mock-balances — 🏖 mock accrual line in My Work (Sick 8d · Vac 12d · Pers 3d, labeled mock/sample per MJ — live accruals link later). Rides r93.
cm-cpo-dashboard.html2026-09-04 09:48 ET
work-tracker r11 +timeoff-approvals — 🏖 sick/vacation/personal approvals in MC's strip: pending = future-dated staff_callins with no approval, ✔/✖ merges {approval,approvedBy,approvedAt} (RULES v19), mock accrual balances on every card (labeled mock, live…
cm-executive-assistant-dashboard.html2026-09-04 09:43 ET
v1.2.1 director-view-clean — ?receipts=1 hides the new quick-cards strip AND the tab row too (they leaked onto the director sender view after v1.2): directors see header + inbox + uploader only, like before. Christina full view untouched. Rides r92.
team-hub.js2026-09-04 09:30 ET (MJ 06:48 anchor)
work-tracker-phase1 r7 elapsed-beats — TOM AT 6 MIN AFTER AN HOUR, root cause: background-tab timer THROTTLING + flat +2 per fire = sparse fires undercount everyone working beside the app. Beats now credit REAL ELAPSED minutes since the last beat (clamped…
cm-cpo-dashboard.html2026-09-04 09:30 ET
work-tracker r10 +live-on-top — 🟢 LIVE NOW section pinned ABOVE Remote workers: everyone whose beat landed in the last 6 min, every program mixed, sorted by minutes desc, green-bordered cards — no scrolling to find who's on. Empty when nobody's live. Rides…
cm-executive-assistant-dashboard.html2026-09-04 09:20 ET (MJ 06:48 anchor)
v1.2 rebill+void+minutes+alive — FOUR per MJ at T-15: (1) ↺ RE-BILL on any processed receipt — program+category selects on the card, moves the SAME otps_expense doc so MC's tallies shift instantly, stamped rebilledBy (creates the expense if one never…
cm-cpo-dashboard.html2026-09-04 09:20 ET
work-tracker r9 +minutes-pill — 📝 Minutes pill in the lens row → EA dashboard ?minutes=1 (shared repository, rules v18).
cm-executive-assistant-dashboard.html2026-09-04 09:12 ET (MJ 06:48 anchor)
v1.1.5 +callout-deeplink — ?callout=1 opens straight to the on-behalf 'Log a call-out' tab with a director-facing header, mirroring ?receipts=1 (paired mock-dash tile). The self-vs-behalf split MJ hit is real and by design: the 📞 sheet = report YOURSELF (name…
v1.3 +behalf-tile — Call Out split into two honest tiles: 📞 yourself (the locked-name sheet, working as designed) + ☎️ log a call-out for your staff → EA on-behalf form via ?callout=1 (needs rules v17 published to save).
team-hub.js2026-09-04 08:55 ET (MJ 06:48 anchor)
work-tracker-phase1 r6 logged-in-time — per MJ live: the visible+2-min-input gate undercounted real work (Tom typing an email beside the app logged 6 min); the beat now counts LOGGED-IN time — app open + signed in — pausing only after 2 IDLE HOURS of zero app…
cm-cpo-dashboard.html2026-09-04 08:55 ET (MJ 06:48 anchor)
work-tracker r8 +live-dots — 🟢 LIVE NOW: green dot on any staffer whose heartbeat landed in the last 6 min (remote cards + all-staff rows) + a '🟢 N live now' chip first in the birds-eye strip — MC watches the team come online in real time as they sign in this…
cm-executive-assistant-dashboard.html2026-09-04 08:40 ET (MJ 06:48 anchor)
v1.1.4 figures-fallback+one-dropdown — TWO from MJ's screenshot: (1) '\u26a0 not seeded' was wrong-headed even if technically true — the figures card now bakes Mike's FY27 sheet budgets VERBATIM (Command Center SHEET.budgets, 'ESD 75 ?'\u2192'ESD 75') as the…
team-hub.js2026-09-04 08:15 ET (MJ 06:48 anchor, T-75 live fire)
work-tracker-phase1 r5 app-fallback — ROOT CAUSE OF TOM'S ZERO MORNING, found via MJ's 404 check: the SYEP admin dash loads THIS file by absolute URL from apps.nycid.org (team-hub-js-unify 09-03 08:20) and there the hub BORROWS the page's default compat app —…
cm-executive-assistant-dashboard.html2026-09-04 07:35 ET (MJ 06:48 anchor)
v1.1.3 eaApp-scope+receipts-header — THREE from MJ's live screenshot, T-70: (1) 'eaApp is not defined' — my 22:25 helper sat in ONE script scope while purFSInit lives in another; the helper is gone, the getApp-or-init logic is INLINED at both call sites (no…
index.html2026-09-04 07:15 ET (MJ 06:48 anchor)
whoami-chip r1 — 👤 signed-in identity in the header like the SYEP admin dash per MJ: chip under the title shows the nycid-gate session's email + Sign out (modular SDK, polls until the gate app boots, onAuthStateChanged keeps it honest, sign-out reloads).…
cm-tom-workspace.html2026-09-04 07:05 ET (MJ 06:48 anchor)current build
v1.0 tom-syep-workspace — Tom's OWN page for the 9:30 demo (MJ: "Tom's dash doesn't do anything"): SYEP-framed tiles wired STRAIGHT into the live tracker tools team-hub.js exposes — ✅ My To-Dos opens the hub on the To-Dos tab, 📞 Log a call fires wtCallModal()…
Thursday, September 3, 2026 40 builds
cm-executive-assistant-dashboard.html2026-09-03 22:25 ET (MJ 9:30 anchor + elapsed)
v1.1.2 gate-race-fix — LIVE BUG from MJ's screenshot: ?receipts=1 deep-links open the inbox tab at page load, RACING the sign-in gate's async initializeApp('nycid-gate') — getApp threw app/no-app and BOTH the figures card and the inbox died. FIX: new eaApp()…
index.html2026-09-03 22:15 ET (MJ 9:30 anchor + elapsed)
demo-tiles r1 — TWO tiles beside 📋 Case Manager Hub in the finder per MJ, so nothing needs reaching-for in the 9:30 walkthrough: 🎯 Director Dashboard (preview) and 🧑💻 Tom's demo workspace — BOTH route to cm-director-mock.html, deliberately: the mock page…
nycid-careers-admin.html2026-09-03 22:00 ET (MJ 9:30 anchor + elapsed)
ssn-wipe r1 — 🔒 THE YOUTH WIPE for Candace's demo, mirroring the staff hire form's ssn-redact-v1 (which ALREADY exists on cm-hire-form.html since 09-01 — three entry points there): every enrollment row with an SSN on file gains a '🔒 Wipe first 5' button…
cm-cpo-dashboard.html2026-09-03 21:55 ET (MJ 9:30 anchor + elapsed)
work-tracker r7 -pie-tiles — per MJ: the 12 per-program budget PIE TILES + legend + go-deep note REMOVED from bird's-eye (they only routed to the general budget sheet, not each program's own budget — superfluous; the hero $ tile still opens the Command…
cm-director-mock.html2026-09-03 21:40 ET
v1.2 +logo — white-lettering NYCID logo in the header (dark-native page).
cm-cpo-dashboard.html2026-09-03 21:40 ET (MJ's 9:30 anchor)
work-tracker r6 +logo+theme-safe — TWO per MJ's live screenshot before tomorrow's skeptic demo: (1) 🕊 NYCID LOGO in the header, theme-swapped — dark-lettering PNG on the light theme, full-white-lettering on dark (both logo files REFRESHED in the suite from…
team-hub.js2026-09-03 21:20 ET (MJ's 9 PM anchor + elapsed)
work-tracker-phase1 r4 +dirpill-dead — MJ, FINAL: 'it's on the in-app team messenger — for once and for all take it away.' wDirPill is now a hard no-op with a tombstone: the page-level 🏠 WFH pill is DEAD everywhere (this is its second removal — 11:25 removed…
cm-director-mock.html2026-09-03 21:20 ET
v1.1 — WFH note reworded: pill is dead suite-wide (team-hub r4); requests live in the 💬 Team Hub.
cm-cpo-dashboard.html2026-09-03 21:20 ET (MJ's 9 PM anchor + elapsed)
work-tracker r5 +global-exclusions — my 19:50 r4 keyed the CG/CMSI carve-out to MC's sign-in only, so MJ's own live view still showed both. NOW GLOBAL: cgonzalez@ and the entire CMSI group never render on this tracker for ANY viewer. Firestore rules: N/A.…
cm-executive-assistant-dashboard.html2026-09-03 21:05 ET (MJ's 9 PM anchor)
v1.1.1 +travel-placeholder — one line on the Receipt Inbox intro: 🚗 travel reimbursements land here next (placeholder per MJ; the real lane is a next-cycle build routed through Christina's View). Zero logic change; stacks on 19:35 v1.1. Firestore rules: N/A.…
cm-director-mock.html2026-09-03 21:05 ET (MJ's 9 PM anchor)
v1.0 director-mock — QUICK MOCK DIRECTOR DASH for the 9/4 walkthrough per MJ: "what if we created a really quick mock Director dash - just to send these things along tomorrow." One light page, real wiring: 📤 Send Christina a receipt →…
cm-cpo-budget-command.html2026-09-03 21:05 ET (MJ's 9 PM anchor)
+receipt-on-log r1 +christinas-view — MJ crystal-clear: receipts must be uploadable and the log must carry one. (1) 🧾 Log-an-expense gains an optional 📎 receipt photo: canvas-compressed (the EA inbox's exact 1280px/JPEG recipe) and written as a budget_lines…
team-hub.js2026-09-03 19:50 ET (carried from MJ's 17:55 anchor + elapsed)
work-tracker-phase1 r3 +dirpill-yields — MJ (live screenshot): the 🏠 WFH Requests pill still paints on the CPO dash beside the new requests strip. CORRECTION FOR THE RECORD: my 19:35 delivery wrongly called the pill stale code — the 15:45 dirpill r1 build…
cm-cpo-dashboard.html2026-09-03 19:50 ET (carried from MJ's 17:55 anchor + elapsed)
work-tracker r4 +mc-sightline — per MJ on the live tracker: MC's view drops CG's row (the CEO is not his report) and the ENTIRE CMSI group (COO-managed, same carve-out his budget board states in its own header). WT_VIEWER_EXCLUDE map applied inside canSee, so…
cm-executive-assistant-dashboard.html2026-09-03 19:35 ET (carried from MJ's 17:55 anchor + elapsed — say if drifted)
💵 receipts-move-the-grid v1.1 — THE WIRE MJ ASKED TO CONFIRM, and no, it was NOT connected: the Command Center's Spent line = Σ budget_lines kind:'otps_expense', but attaching a receipt only substantiated the kind:'purchase_request' doc, which that sum…
cm-cpo-dashboard.html2026-09-03 19:35 ET (carried from MJ's 17:55 anchor + elapsed — say if drifted)
work-tracker r3 +wfh-requests-strip — 🏠 WFH REQUESTS ON TOP per MJ's arrow: green strip ABOVE the lens row, reviewer-only (MC · MJ · Avidano · Wyatte · Salem · Muglia), pending wfh_requests from nycid-solutions via the SAME 'nycid-wfh' named app the Hub…
cm-cpo-budget-command.html2026-09-03 19:35 ET (carried from MJ's 17:55 anchor + elapsed — say if drifted)
+wfi-note r1 — one blue note card under the open-questions card per MJ: WFI programs are not on this board yet, figures not loaded (so missing columns never read as missing money). ZERO logic/data change. NOTE for the record: the floating WFH pill MJ circled…
team-hub.js2026-09-03 18:55 ET (carried from MJ's 17:55 anchor + elapsed)
work-tracker-phase1 r2 — TOM EMAIL FIX per MJ: the demo persona's Workspace address had a problem, michael@nycid.org → tomdevitojr@nycid.org EVERYWHERE in this file (THX_STAFF roster row + stamps; the r1 stamp below now reads the new address because the swap…
cm-cpo-dashboard.html2026-09-03 18:55 ET (carried from MJ's 17:55 anchor + elapsed)
work-tracker r2 — TOM EMAIL FIX: michael@nycid.org → tomdevitojr@nycid.org in the ?demo=1 tracker seed + wtPerson references (global swap; the r1 stamp below shows the new address). Zero other changes. Firestore rules: v14 with the paired team-hub.js this…
call-in.js2026-09-03 18:55 ET (carried from MJ's 17:55 anchor + elapsed)
v5.3 tom-email-fix — michael@nycid.org → tomdevitojr@nycid.org in the DIRECTORY row + demo roster (global swap; the v5.2/v5.1 stamps below now show the new address). reportsTo aavidano@ unchanged. Zero other changes. Firestore rules: N/A this file. Constant…
cm-executive-assistant-dashboard.html2026-09-03 18:40 ET
📥 receipt-inbox v1.0 — NEW 📥 Receipt Inbox tab: directors (any @nycid.org sign-in; ?receipts=1 deep-links straight to the tab) upload a receipt photo/PDF with program + claimed amount; images are canvas-compressed client-side (≤1280px JPEG, ≤~700KB) and…
team-hub.js2026-09-03 18:20 ET (anchored to MJ's 17:55 wall clock)
work-tracker-phase1 r1 — WORK TRACKER PHASE 1 per work-catalog-draft v1.1 + the 17:20 handoff, for MC's 9:30 AM 9/4 demo. (1) TOM RE-ROLE: tomdevitojr@nycid.org sub concord→syep (paired call-in.js v5.2 moves his DIRECTORY row to SYEP / WFI · Employment…
cm-executive-assistant-dashboard.html2026-09-03 18:20 ET
hi-christina r1 — header now greets her: h1 "Hi Christina 👋", dashboard name moves to the sub line. Text only. Firestore rules: N/A. Constant Contact: N/A.
cm-cpo-dashboard.html2026-09-03 18:20 ET (anchored to MJ's 17:55 wall clock)
work-tracker r1 — 📊 WORK TRACKER FAT PILL + LENS for MC's 9:30 AM 9/4 demo, layout per MJ verbatim: fat gradient pill first in the lens row → new lens-track section: birds-eye chip strip (active staff · total app-minutes · total events · per-agenda-group…
call-in.js2026-09-03 18:20 ET (anchored to MJ's 17:55 wall clock)
v5.2 tom-syep-rerole — Tom DeVito Jr. (tomdevitojr@nycid.org) DIRECTORY row re-roled Concord Personal Advocate → 'SYEP / WFI' · 'Employment Specialist (Remote)' · location 'Shared / WFI' for the Work Tracker demo (reportsTo aavidano@ unchanged — same chain,…
cm-budget-allocations.html2026-09-03 18:16 ET
v2.19 📊 BVA TAB — per MJ: page now has two tabs, Budget Console (unchanged) and BVA — Budget vs Actual. BVA tab takes the Intacct GL-detail CSV export (the hanks.csv / snug.csv shape: account sections with Balance-forward headers, dated Debit/Credit rows,…
cm-executive-assistant-dashboard.html2026-09-03 18:10 ET
🛒 purchases v1.0 + callout-rename r1 — NEW 🛒 Purchases tab for Christina: every order she places (event food, t-shirts, supplies) logged at order time, walked Requested→Ordered→Received→Substantiated (actual invoice $ + receipt ref), committed-vs-actual pills…
team-hub.js2026-09-03 16:05 ET (anchored to MJ's 15:33 wall clock)
tom-demo-persona r1 — DEMO PERSONA for tomorrow's showcase per MJ: tomdevitojr@nycid.org · Tom DeVito Jr. joins THX_STAFF sub:concord — renders in the finder/pickers, DMs, passes the @nycid.org gate, so MJ can sign into the app as a regular Concord staffer.…
call-in.js2026-09-03 16:05 ET (anchored to MJ's 15:33 wall clock)
v5.1 tom-demo-persona — tomdevitojr@nycid.org · Tom DeVito Jr. joins the routing DIRECTORY: Concord · Personal Advocate · reportsTo aavidano@nycid.org — his call-outs walk the real Concord chain (Avidano → Candella, CPO-cc guard tmuglia@+ckuhn@ fires as…
team-hub.js2026-09-03 15:45 ET (anchored to MJ's 15:33 wall clock)
callout+colors+lists+dirpill r1 — FOUR pieces per MJ 15:38. (1) 🏠 WFH DIR-PILL RETURNS — MJ ("I do not see the WFH pill on the Director dashboards anywhere - I asked for it three times"): new wDirPill() paints the fixed green 🏠 WFH Requests pill bottom-LEFT,…
call-in.js2026-09-03 15:45 ET (anchored to MJ's 15:33 wall clock)
v5.0 call-out+no-wfh — TWO changes per MJ's Call Out package. (1) RENAME Call In → CALL OUT in every user-facing string: pill aria-label, sheet title 📞 Staff Call Out, sign-in copy, submit button 'Send call out', email subject prefix [NYCID Call Out], mail…
call-in.html2026-09-03 15:45 ET (anchored to MJ's 15:33 wall clock)
call-out r1 — page renamed Call In → CALL OUT everywhere a staffer reads it (title, header, card copy, big button), matching call-in.js v5.0; the WFH mention stays out — WFH requests live in the Team Hub 🏠 WFH module. Filename stays call-in.html so every…
index.html2026-09-03 12:12 ET
pill-order-explicit r1 — MJ: "you didn't reorder and move them." Width-sort RETIRED; the row is now hard-ordered left→right per his numbered screenshot: 🌙 Dark mode (1) · 📲 Add to device (2) · 📅 Calendar (3) · 💬 Messenger (4) · 🏛️ SYEP Admin (end).…
index.html2026-09-03 12:06 ET (anchored to MJ's 11:03 wall clock)
syep-admin-pill r1 — per MJ screenshot (red arrow): 🏛️ SYEP Admin pill joins the desktop top-right row, pinned to the END after the width-sort (navy/gold, links admin-dashboard.html); the right-anchored flex row grows leftward so the four existing pills slide…
index.html2026-09-03 11:50 ET (anchored to MJ's 11:03 wall clock)
syep-moves-in r1 — THE MOVE, step one of killing the two-folder life: admin-dashboard.html (08:55 acx-ready-to-contact, md5 0f3e4a38, uploaded fresh by MJ) + worksite-express.html (md5 7cc95082) now ride the Solutions suite BYTE-UNTOUCHED — hosting move only,…
404.html2026-09-03 11:50 ET (anchored to MJ's 11:03 wall clock)current build
not-moved-yet r1 — honest landing for any path that doesn't exist on nycid-data during the SYEP→Solutions move; Netlify serves this automatically for missing files.
team-hub.js2026-09-03 11:25 ET (anchored to MJ's 11:03 wall clock)
wfh-hub-only r1 — PAGE-LEVEL 🏠 WFH REQUESTS PILL REMOVED per MJ ("Remove the WFH request tab on the actual app and leave it only on the Team Hub"): the fixed green pill that wfh-requests r1 pinned to every page for reviewers is excised from wMaybeBanner; the…
community-signups.html2026-09-03 10:05 ET (est. container −4h — confirm wall-clock)current build
ccon-signups-viewer r3 — 🔁 THE SIGN-IN LOOP, FOUND AND KILLED (MJ: "stuck in a loop of over and over requiring me to sign in"). ROOT CAUSE, read off r2 itself: csLoad fired sign-in AT PAGE LOAD, but the compat SDK restores a persisted session ASYNCHRONOUSLY —…
community-signups.html2026-09-03 09:15 ET (est. container −4h — confirm wall-clock)
NEW ccon-signups-viewer r1 — 📋 STAFF VIEWER FOR COMMUNITY CONNECT (MJ: "where are the RSVPs landing for the hiring hall… the new one we did for the interest"). ANSWER + THE MISSING TOOL: community-connect.html writes community_signups on NYCID-SOLUTIONS…
team-hub.js2026-09-03 08:40 ET (est. container −4h — confirm wall-clock)
wfh-auth-hardening r1 — 🏠 WFH SIGN-IN UNSTUCK (MJ screenshot: overlay frozen at "Signing in to the WFH log…" + "The requested action is invalid." in the popup; 9 AM meeting). DIAGNOSIS ON THE BYTES: WFH_CFG is byte-identical to the working LTW_CFG (olympus…
Wednesday, September 2, 2026 216 builds
community-connect.html2026-09-02 21:45 ET
copy r1 — MJ 21:42: hall-card tag "First up" → "Next up"; biz-wanted label reworded to MJ's exact phrasing "What businesses would you like to see at a hiring hall?" (field itself landed in the 21:20 build — bizWanted, unchanged). Base = 21:20 build md5…
community-connect.html2026-09-02 21:20 ET
+biz-wanted r1 — MJ 21:16: short type-in field "What businesses would you like to see at the Hiring Hall?" (optional, single line, maxlength 120) after the interest chips; saved as bizWanted on the community_signups doc (additive field, no rules change —…
community-connect.html2026-09-02 21:05 ET
+logo/map/calendar r1 — MJ 20:57: (1) NYCID logo (existing root asset nycid-logo-2021-white-lettering.png, 95KB, white-on-dark) added to the header; (2) 📍 Map & Directions block in the Hiring Hall card — embedded Google Maps iframe (no API key, output=embed,…
community-connect.html2026-09-02 20:30 ET
NEW — NYCID Solutions Community Connect quick interest link. One-screen public form (first/last/email required; mobile, ZIP, 18+, interest chips optional) with the Sept 30 Hiring Hall as the featured card (facts from hiring-hall-flyer-seekers.png: Wed Sept 30…
olympus-intake r1 — the Olympus Academy admissions packet, digitized page-by-page from the paper PDF (MJ; team flagged it missing). Ten warm, mobile-first steps mirroring the packet's sections: welcome letter → about you → parent/guardian & emergency → how…
youthwins-case-management.html2026-09-02 16:20 ET
theme+bridge r1 — MJ: (1) ☀️ light-theme toggle on every dashboard (invert v1, palette port next cycle); (2) wording: crossing the bridge, not climbing.
youthbuild-case-management.html2026-09-02 16:20 ET
theme+bridge r1 — MJ: (1) ☀️ light-theme toggle on every dashboard (invert v1, palette port next cycle); (2) wording: crossing the bridge, not climbing.
yabc-case-management.html2026-09-02 16:20 ET
theme+bridge r1 — MJ: (1) ☀️ light-theme toggle on every dashboard (invert v1, palette port next cycle); (2) wording: crossing the bridge, not climbing.
olympus-case-management.html2026-09-02 16:20 ET
theme+bridge r1 — MJ: (1) ☀️ light-theme toggle on every dashboard (invert v1, palette port next cycle); (2) wording: crossing the bridge, not climbing.
concord-case-management.html2026-09-02 16:20 ET
theme+bridge r1 — MJ: (1) ☀️ light-theme toggle on every dashboard (invert v1, palette port next cycle); (2) wording: crossing the bridge, not climbing.
cm-senior-director-dashboard-demo.html2026-09-02 16:20 ET
theme+bridge r1 — MJ: (1) ☀️ light-theme toggle on every dashboard (invert v1, palette port next cycle); (2) wording: crossing the bridge, not climbing.
cm-executive-dashboard-demo.html2026-09-02 16:20 ET
theme+bridge r1 — MJ: (1) ☀️ light-theme toggle on every dashboard (invert v1, palette port next cycle); (2) wording: crossing the bridge, not climbing.
cm-executive-assistant-dashboard.html2026-09-02 16:20 ET
theme+bridge r1 — MJ: (1) ☀️ light-theme toggle on every dashboard (invert v1, palette port next cycle); (2) wording: crossing the bridge, not climbing.
cm-director-dashboard-demo.html2026-09-02 16:20 ET
theme+bridge r1 — MJ: (1) ☀️ light-theme toggle on every dashboard (invert v1, palette port next cycle); (2) wording: crossing the bridge, not climbing.
cm-counselor-dashboard-demo.html2026-09-02 16:20 ET
theme+bridge r1 — MJ: (1) ☀️ light-theme toggle on every dashboard (invert v1, palette port next cycle); (2) wording: crossing the bridge, not climbing.
cm-case-manager-dashboard.html2026-09-02 16:20 ET
theme+bridge r1 — MJ: (1) ☀️ light-theme toggle on every dashboard (invert v1, palette port next cycle); (2) wording: crossing the bridge, not climbing.
youthwins-case-management.html2026-09-02 15:38 ET
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
youthbuild-case-management.html2026-09-02 15:38 ET
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
youth-enrollment.html2026-09-02 15:38 ET
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
yabc-case-management.html2026-09-02 15:38 ET
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
tracking.html2026-09-02 15:38 ET
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
syep-careers.html2026-09-02 15:38 ETcurrent build
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
syep-careers-admin.html2026-09-02 15:38 ET
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
sms-terms.html2026-09-02 15:38 ETcurrent build
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
sms-privacy.html2026-09-02 15:38 ETcurrent build
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
sms-optin.html2026-09-02 15:38 ETcurrent build
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
cm-counselor-dashboard-demo.html2026-09-02 15:38 ET
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
cm-case-manager-dashboard.html2026-09-02 15:38 ET
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
cm-budget-master.html2026-09-02 15:38 ET
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
cm-budget-allocations.html2026-09-02 15:38 ET
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
cm-attendance.html2026-09-02 15:38 ET
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
casework.html2026-09-02 15:38 ET
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
call-in.html2026-09-02 15:38 ET
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
budget-fiscal-view.html2026-09-02 15:38 ET
+mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Netconnect hardening); one script tag before </body>, no other change.
mfa-gate.js2026-09-02 15:35 ET
mfa-gate r1 — enforced second factor for non-@nycid.org sign-ins (Donal/Netconnect hardening). WHAT: (1) patches compat signInWithPopup so an account that already has an enrolled factor completes its SMS challenge right at sign-in on every page, no per-page…
call-in.js2026-09-02 15:35 ET (est. from the 14:32 anchor — confirm)
v4.6 wfh-request — per MJ: +🏡 REQUEST WFH type. New TYPES entry ['wfh','🏡 Request WFH'] (7th chip); REQUEST_TYPES now {personal, wfh} so the existing request machinery does the work: status 'requested' not 'reported', submit button flips to 'Send request to…
team-hub.js2026-09-02 15:05 ET (anchored to MJ's 14:32 wall-clock)
wfh-log+room-admin r1 — THREE PIECES. (1) 🏠 WFH DAILY LOG MODULE (appended standalone IIFE, ~430 ln): MC's paper Daily WFH Log driven by the app. Preset always-remote list per MJ (Piper, S.Walker, Lynch, Doyle, Rosario, Rodolico, Gross PT, K.King PT, K.Young…
youthwins-case-management.html2026-09-02 15:00 ET
pill-top r2 — MJ: still in the way; 💬 pill moves TOP-RIGHT under the ▶ Demo button (top:74px, compact), rail + bottom corners fully clear; no other change.
youthbuild-case-management.html2026-09-02 15:00 ET
pill-top r2 — MJ: still in the way; 💬 pill moves TOP-RIGHT under the ▶ Demo button (top:74px, compact), rail + bottom corners fully clear; no other change.
yabc-case-management.html2026-09-02 15:00 ET
pill-top r2 — MJ: still in the way; 💬 pill moves TOP-RIGHT under the ▶ Demo button (top:74px, compact), rail + bottom corners fully clear; no other change.
olympus-case-management.html2026-09-02 15:00 ET
pill-top r2 — MJ: still in the way; 💬 pill moves TOP-RIGHT under the ▶ Demo button (top:74px, compact), rail + bottom corners fully clear; no other change.
concord-case-management.html2026-09-02 15:00 ET
pill-top r2 — MJ: still in the way; 💬 pill moves TOP-RIGHT under the ▶ Demo button (top:74px, compact), rail + bottom corners fully clear; no other change.
cm-director-dashboard-demo.html2026-09-02 15:00 ET
pill-top r2 — MJ: still in the way; 💬 pill moves TOP-RIGHT under the ▶ Demo button (top:74px, compact), rail + bottom corners fully clear; no other change.
cm-counselor-dashboard-demo.html2026-09-02 15:00 ET
pill-top r2 — MJ: still in the way; 💬 pill moves TOP-RIGHT under the ▶ Demo button (top:74px, compact), rail + bottom corners fully clear; no other change.
cm-case-manager-dashboard.html2026-09-02 15:00 ET
pill-top r2 — MJ: still in the way; 💬 pill moves TOP-RIGHT under the ▶ Demo button (top:74px, compact), rail + bottom corners fully clear; no other change.
youthwins-case-management.html2026-09-02 14:55 ET
pill-left r1 — MJ urgent screenshot: 💬 messenger pill overlapped the right-side action rail; desktop pill now parks bottom-LEFT on this page (≤700px mobile pin untouched); no other change.
youthbuild-case-management.html2026-09-02 14:55 ET
pill-left r1 — MJ urgent screenshot: 💬 messenger pill overlapped the right-side action rail; desktop pill now parks bottom-LEFT on this page (≤700px mobile pin untouched); no other change.
yabc-case-management.html2026-09-02 14:55 ET
pill-left r1 — MJ urgent screenshot: 💬 messenger pill overlapped the right-side action rail; desktop pill now parks bottom-LEFT on this page (≤700px mobile pin untouched); no other change.
olympus-case-management.html2026-09-02 14:55 ET
pill-left r1 — MJ urgent screenshot: 💬 messenger pill overlapped the right-side action rail; desktop pill now parks bottom-LEFT on this page (≤700px mobile pin untouched); no other change.
concord-case-management.html2026-09-02 14:55 ET
pill-left r1 — MJ urgent screenshot: 💬 messenger pill overlapped the right-side action rail; desktop pill now parks bottom-LEFT on this page (≤700px mobile pin untouched); no other change.
cm-director-dashboard-demo.html2026-09-02 14:55 ET
pill-left r1 — MJ urgent screenshot: 💬 messenger pill overlapped the right-side action rail; desktop pill now parks bottom-LEFT on this page (≤700px mobile pin untouched); no other change.
cm-counselor-dashboard-demo.html2026-09-02 14:55 ET
pill-left r1 — MJ urgent screenshot: 💬 messenger pill overlapped the right-side action rail; desktop pill now parks bottom-LEFT on this page (≤700px mobile pin untouched); no other change.
cm-case-manager-dashboard.html2026-09-02 14:55 ET
pill-left r1 — MJ urgent screenshot: 💬 messenger pill overlapped the right-side action rail; desktop pill now parks bottom-LEFT on this page (≤700px mobile pin untouched); no other change.
index.html2026-09-02 14:48 ET
pill-dodge r2 (r1 dodge lost to the adopter's inline right:16px — !important added)
stacked on: 14:45 pill-dodge r1 — MJ urgent screenshot (pills sitting ON the open 💬 drawer): the desktop pill row moves DOWN (top 12→64px) and OVER — whenever #thx-panel…
youthwins-case-management.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
youthbuild-case-management.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
yabc-case-management.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
tracking.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
syep-careers-admin.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
org-chart.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
olympus-case-management.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
nycid-solutions.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
nycid-careers-admin.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
migrate-copier.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
lunch-learn.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
job-acceptance-admin.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
funding.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
forms.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
fiscal.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
events.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
device-inventory.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
device-inventory-admin.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
concord-case-management.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-wfi-training.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-wfi-interns.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-wfi-budget.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-test-students.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-staff-update.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-staff-master.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-senior-director-dashboard-demo.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-ps-outcomes-director-demo.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-program-requirements.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-otps-allocator.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-onboarding-hub.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-intake-form.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-incentives.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-funding-pipeline.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-executive-dashboard-demo.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-executive-assistant-dashboard.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-event-budget.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-employer-outreach.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-director-survey.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-director-dashboard-demo.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-decision-rights.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-cpo-walkthrough.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-cpo-dashboard.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-cpo-budget-command.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-cover-letter.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-counselor-dashboard-demo.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-case-manager-dashboard.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-budget-master.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-budget-allocations.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
cm-attendance.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
casework.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
call-in.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
budget-fiscal-view.html2026-09-02 14:32 ET
+team-hub r1 — MJ urgent: 💬 In-App Team Messenger pill added SUITE-WIDE (one <script src="team-hub.js"> before </body>); staff pages only, public/youth pages excluded; no other change to this file.
nycid-calendar.js2026-09-02 14:20 ET (MJ wall clock 14:12 anchor)
workers-attend r1 — MJ post-training: (1) 👷 WORKERS on every event — a + staff picker on each event card assigns staff as workers; roster comes live from team-hub's window.__thxNames map (118 @nycid.org entries, zero duplication in this file); searchable,…
index.html2026-09-02 13:55 ET (est. — confirm wall clock)
single-tile-finder r1 — per MJ ("remove all the program pills because staff will search for their name and get their program… leave the general case management"): the five program tiles (LTW—YABC · LTW—Concord · LTW—Olympus · YouthBuild · YouthWINS) are…
youthbuild-case-management.html2026-09-02 13:40 ET (est. — confirm wall clock)
-zztest-roster r1 — REVERT of 12:55 +zztest-roster per MJ ("training without the test subjects … please delete them"): ZZTEST Alpha + Beta removed from NAMED_STUDENTS; roster back to the pre-12:55 shape (buildRoster refills to 60/15-per-advocate). Firestore…
index.html2026-09-02 13:40 ET (est. — confirm wall clock)
pill-row-v2-flex r1 — FIX per MJ deployed screenshot (Messenger pill overlapping Calendar): the 13:10 fixed right-offsets die on font-width differences between machines, so v2 replaces them with a JS-adopted FLEX container top-right — the four pills (💬…
youthwins-case-management.html2026-09-02 13:30 ET (est. — confirm wall clock)
steering-hub v2.0 — FULL REPLACEMENT per MJ ("remove what nonsense is there and instead of coming soon put a meeting calendar for steering committee events and collaboration placeholders"): the two-ZZTEST pipeline board is GONE. This is now the NYSERDA…
youth-enrollment.html2026-09-02 13:25 ET
exit-demo-center r2 — the 🚪 Exit-demo pill moves bottom-right → bottom-CENTER so the 📞 phone pill (now right:14 in call-in.js phone-pill-right r1, same r36) owns the base of the right-side ladder with no demo-mode collision. One CSS line. Firestore rules:…
yabc-case-management.html2026-09-02 13:25 ET
exit-demo-center r2 — the 🚪 Exit-demo pill moves bottom-right → bottom-CENTER so the 📞 phone pill (now right:14 in call-in.js phone-pill-right r1, same r36) owns the base of the right-side ladder with no demo-mode collision. One CSS line. Firestore rules:…
cm-staff-update.html2026-09-02 13:25 ET
exit-demo-center r2 — the 🚪 Exit-demo pill moves bottom-right → bottom-CENTER so the 📞 phone pill (now right:14 in call-in.js phone-pill-right r1, same r36) owns the base of the right-side ladder with no demo-mode collision. One CSS line. Firestore rules:…
cm-executive-assistant-dashboard.html2026-09-02 13:25 ET
exit-demo-center r2 — the 🚪 Exit-demo pill moves bottom-right → bottom-CENTER so the 📞 phone pill (now right:14 in call-in.js phone-pill-right r1, same r36) owns the base of the right-side ladder with no demo-mode collision. One CSS line. Firestore rules:…
cm-cpo-walkthrough.html2026-09-02 13:25 ET
exit-demo-center r2 — the 🚪 Exit-demo pill moves bottom-right → bottom-CENTER so the 📞 phone pill (now right:14 in call-in.js phone-pill-right r1, same r36) owns the base of the right-side ladder with no demo-mode collision. One CSS line. Firestore rules:…
cm-cpo-dashboard.html2026-09-02 13:25 ET
exit-demo-center r2 — the 🚪 Exit-demo pill moves bottom-right → bottom-CENTER so the 📞 phone pill (now right:14 in call-in.js phone-pill-right r1, same r36) owns the base of the right-side ladder with no demo-mode collision. One CSS line. Firestore rules:…
cm-cpo-budget-command.html2026-09-02 13:25 ET
exit-demo-center r2 — the 🚪 Exit-demo pill moves bottom-right → bottom-CENTER so the 📞 phone pill (now right:14 in call-in.js phone-pill-right r1, same r36) owns the base of the right-side ladder with no demo-mode collision. One CSS line. Firestore rules:…
cm-case-manager-dashboard.html2026-09-02 13:25 ET
exit-demo-center r2 — the 🚪 Exit-demo pill moves bottom-right → bottom-CENTER so the 📞 phone pill (now right:14 in call-in.js phone-pill-right r1, same r36) owns the base of the right-side ladder with no demo-mode collision. One CSS line. Firestore rules:…
call-in.js2026-09-02 13:25 ET
phone-pill-right r1 — per MJ (live test): the 📞 pill moves to the RIGHT side (right:14, bottom:14 — the base of the dashboards' pill ladder) and is icon-only, just the phone + unread badge; the “Call In” label is gone everywhere the widget mounts. Exit-demo…
call-in.html2026-09-02 13:25 ET
exit-demo-center r2 — the 🚪 Exit-demo pill moves bottom-right → bottom-CENTER so the 📞 phone pill (now right:14 in call-in.js phone-pill-right r1, same r36) owns the base of the right-side ladder with no demo-mode collision. One CSS line. Firestore rules:…
index.html2026-09-02 13:10 ET (est. — still need your wall clock)
pill-top-row+ltw-yabc r1 — per MJ screenshot (red arrows): 🌙 Dark mode + 📅 NYCID Calendar + 💬 In App Team Messenger move UP into one fixed TOP-RIGHT row beside 📲 Add to device (now fixed too), SIZE ORDER widest→narrowest left→right: Messenger · Calendar · Add…
youthbuild-case-management.html2026-09-02 13:05 ET
+abq-overlay r1 — per MJ (“I had asked for these questions be added to case management dashboards… its not there”): the 💡 ABQ (Always Be Questioning) strengths-based question set — built 08-30 into cm-case-manager-dashboard’s ABQ tab only — now lives on THIS…
yabc-case-management.html2026-09-02 13:05 ET
+abq-overlay r1 — per MJ (“I had asked for these questions be added to case management dashboards… its not there”): the 💡 ABQ (Always Be Questioning) strengths-based question set — built 08-30 into cm-case-manager-dashboard’s ABQ tab only — now lives on THIS…
olympus-case-management.html2026-09-02 13:05 ET
+abq-overlay r1 — per MJ (“I had asked for these questions be added to case management dashboards… its not there”): the 💡 ABQ (Always Be Questioning) strengths-based question set — built 08-30 into cm-case-manager-dashboard’s ABQ tab only — now lives on THIS…
concord-case-management.html2026-09-02 13:05 ET
+abq-overlay r1 — per MJ (“I had asked for these questions be added to case management dashboards… its not there”): the 💡 ABQ (Always Be Questioning) strengths-based question set — built 08-30 into cm-case-manager-dashboard’s ABQ tab only — now lives on THIS…
youthbuild-case-management.html2026-09-02 12:55 ET (est. from your 12:47 addendum — confirm wall clock)
+zztest-roster r1 — per MJ ("fix the demo issue and get test subjects in there"): ZZTEST Alpha + ZZTEST Beta baked into NAMED_STUDENTS (Alpha→Tanya Wells RA, Beta→Marcus Boone MB; both enrolled, intern-track, WBL steps 2 & 3, interests 'Training test…
index.html2026-09-02 12:55 ET (est. from your 12:47 addendum — confirm wall clock)
youthwins-routing r1 — items B+C, all four approved: (1) Sean Ghazala finder row program NYSERDA→YouthWINS; (2) PROGRAM_DASHBOARDS gains YOUTHWINS/WINS/NYSERDA/NYSERDAHUB → youthwins-case-management.html, so Sean + Lynese Castillo + Gabriella Grinwald-Alves…
youthbuild-case-management.html2026-09-02 12:40 ET
single-site r1 — per MJ (“Only YABC has two sites - remove ‘all sites’ from the other dashboards”): the Director site bar now renders the All-sites/school segmented toggle ONLY when the program has more than one school; single-site programs show just the…
olympus-case-management.html2026-09-02 12:40 ET
single-site r1 — per MJ (“Only YABC has two sites - remove ‘all sites’ from the other dashboards”): the Director site bar now renders the All-sites/school segmented toggle ONLY when the program has more than one school; single-site programs show just the…
index.html2026-09-02 12:40 ET
miya-to-concord r1 — per MJ (“Miya DeVito is concord now not YABC… when you search for her she’s on YABC still”): finder entry moved program Shared→Concord, reportsTo Desiderio→Avidano (LTW Director, Concord), srDir dual-hat, dashboard:'' like her Concord…
concord-case-management.html2026-09-02 12:40 ET
single-site r1 — per MJ (“Only YABC has two sites - remove ‘all sites’ from the other dashboards”): the Director site bar now renders the All-sites/school segmented toggle ONLY when the program has more than one school; single-site programs show just the…
call-in.js2026-09-02 12:40 ET
miya-to-concord r1 — per MJ: Miya DeVito’s chain-roster row YABC/tdesiderio@ → Concord/aavidano@nycid.org (program + supervisor + group), so her call-ins walk the Concord chain. Paired with index.html finder + team-hub.js group fixes in this r34. Stacks on…
youthbuild-case-management.html2026-09-02 12:30 ET
+app-pills r1 — per MJ (pre-training sweep): this dashboard now carries the shared staff apps — 📞 Call In widget (call-in.js include, self-mounted pill bottom-left, first time on the CM dashboards) + a bottom-right pill stack 📋 Attendance (cm-attendance.html)…
yabc-case-management.html2026-09-02 12:30 ET
+app-pills r1 — per MJ (pre-training sweep): this dashboard now carries the shared staff apps — 📞 Call In widget (call-in.js include, self-mounted pill bottom-left, first time on the CM dashboards) + a bottom-right pill stack 📋 Attendance (cm-attendance.html)…
olympus-case-management.html2026-09-02 12:30 ET
+app-pills r1 — per MJ (pre-training sweep): this dashboard now carries the shared staff apps — 📞 Call In widget (call-in.js include, self-mounted pill bottom-left, first time on the CM dashboards) + a bottom-right pill stack 📋 Attendance (cm-attendance.html)…
concord-case-management.html2026-09-02 12:30 ET
+app-pills r1 — per MJ (pre-training sweep): this dashboard now carries the shared staff apps — 📞 Call In widget (call-in.js include, self-mounted pill bottom-left, first time on the CM dashboards) + a bottom-right pill stack 📋 Attendance (cm-attendance.html)…
cm-test-students.html2026-09-02 12:30 ET
+yb-youthwins v1.2 — per MJ ("you added the test subjects only to the LTW - if should be for YB too… also I need a dashboard for YouthWINS"): PROGRAMS grows 3 → 5, adding YouthBuild and YouthWINS — same Alpha/Beta pair, same shapes, into…
cm-case-manager-dashboard.html2026-09-02 12:30 ET
+app-pills r1 — per MJ (pre-training sweep): this dashboard now carries the shared staff apps — 📞 Call In widget (call-in.js include, self-mounted pill bottom-left, first time on the CM dashboards) + a bottom-right pill stack 📋 Attendance (cm-attendance.html)…
cm-test-students.html2026-09-02 12:10 ET
gate-on-legacy v1.1 — 🔧 FIX per MJ live screenshot ("The requested action is invalid" from nycid-solutions.firebaseapp.com/__/auth/handler): v1.0 gated sign-in on the SOLUTIONS project, whose Authentication is not configured for apps.nycid.org (no Google…
cm-test-students.html2026-09-02 11:55 ET
zztest-seeder v1.0 — 🧪 NEW per MJ (training prep, "another way to populate 2 test subjects… I don't want to go into a rabbit hole with the LTW paperwork; my focus is on case management"): one staff-only page that seeds ZZTEST Alpha + Beta into ALL THREE…
youth-enrollment.html2026-09-02 11:40 ET
+exit-demo r1 — 🚪 per MJ (training prep): staff on the INSTALLED app have no URL bar, so ?demo=1 was a one-way door. In demo mode a fixed bottom-right pill "Exit demo — go live" now reloads the page with the query stripped, dropping them into the real…
yabc-case-management.html2026-09-02 11:40 ET
+exit-demo r1 — 🚪 per MJ (training prep): staff on the INSTALLED app have no URL bar, so ?demo=1 was a one-way door. In demo mode a fixed bottom-right pill "Exit demo — go live" now reloads the page with the query stripped, dropping them into the real…
cm-staff-update.html2026-09-02 11:40 ET
+exit-demo r1 — 🚪 per MJ (training prep): staff on the INSTALLED app have no URL bar, so ?demo=1 was a one-way door. In demo mode a fixed bottom-right pill "Exit demo — go live" now reloads the page with the query stripped, dropping them into the real…
cm-executive-assistant-dashboard.html2026-09-02 11:40 ET
+exit-demo r1 — 🚪 per MJ (training prep): staff on the INSTALLED app have no URL bar, so ?demo=1 was a one-way door. In demo mode a fixed bottom-right pill "Exit demo — go live" now reloads the page with the query stripped, dropping them into the real…
cm-cpo-walkthrough.html2026-09-02 11:40 ET
+exit-demo r1 — 🚪 per MJ (training prep): staff on the INSTALLED app have no URL bar, so ?demo=1 was a one-way door. In demo mode a fixed bottom-right pill "Exit demo — go live" now reloads the page with the query stripped, dropping them into the real…
cm-cpo-dashboard.html2026-09-02 11:40 ET
+exit-demo r1 — 🚪 per MJ (training prep): staff on the INSTALLED app have no URL bar, so ?demo=1 was a one-way door. In demo mode a fixed bottom-right pill "Exit demo — go live" now reloads the page with the query stripped, dropping them into the real…
cm-cpo-budget-command.html2026-09-02 11:40 ET
+exit-demo r1 — 🚪 per MJ (training prep): staff on the INSTALLED app have no URL bar, so ?demo=1 was a one-way door. In demo mode a fixed bottom-right pill "Exit demo — go live" now reloads the page with the query stripped, dropping them into the real…
cm-case-manager-dashboard.html2026-09-02 11:40 ET
+exit-demo r1 — 🚪 per MJ (training prep): staff on the INSTALLED app have no URL bar, so ?demo=1 was a one-way door. In demo mode a fixed bottom-right pill "Exit demo — go live" now reloads the page with the query stripped, dropping them into the real…
call-in.html2026-09-02 11:40 ET
+exit-demo r1 — 🚪 per MJ (training prep): staff on the INSTALLED app have no URL bar, so ?demo=1 was a one-way door. In demo mode a fixed bottom-right pill "Exit demo — go live" now reloads the page with the query stripped, dropping them into the real…
cm-cpo-dashboard.html2026-09-02 10:50 ET
light-dark r5 — per MJ ("give mike light and dark views"): same theme mechanism as index.html light-theme-r6 / admin-dash light-theme-v1, INVERTED because this file is native-LIGHT — (1) <head> boot script applies html[data-theme=dark] before first paint…
cm-cpo-dashboard.html2026-09-02 10:35 ET
callin-grid r4 — two per MJ: (1) "CMSI excluded (COO-managed)" removed from the header sub — CMSI is simply absent, no callout. (2) NEW 📞 call-in strip between the three hero pills and the bird/worm toggle: tight 4-col grid (2-col ≤700px) of small cells —…
nycid-calendar.js2026-09-02 10:10 ET
pill-right-stack r2 — MJ live-phone screenshot: 📅 sat on the logo; ≤700px it now stacks top-RIGHT at 56px under the 💬 (index's 🌙 takes 104px in the same r28 zip). Desktop untouched. Stacks on 09-01 20:15 mobile-pill-pin r1. Rules N/A · CC N/A · validated node…
index.html2026-09-02 10:10 ET
pill-right-stack r2 — MJ live-phone screenshot: 📅+🌙 were sitting on the logo. ≤700px all three pills now STACK top-RIGHT — 💬 8px / 📅 56px / 🌙 104px (calendar move rides nycid-calendar.js r2 in this zip) — logo clear; 📲 Add-to-device shrinks (6×10px pad,…
cm-cpo-dashboard.html2026-09-02 09:55 ET
dials-pies-search r3 — three per MJ (screenshot turn): (1) 🎛 TOP DIAL BAR, big-picture NYCID totals across ALL programs — 7 conic-ring dials: Enrolled · Avg attendance · Staff · Youth served YTD (sample-labeled) + FY27 OTPS $ w/ %-spent ring,…
cm-cpo-dashboard.html2026-09-02 09:35 ET
birds-and-worms r2 — per MJ: 🦅 BIRD'S EYE = every program Mike manages (16: 4 CM + 12 OCS/21C-community) as stat cards — Enrolled / Attendance / Staff / FY27 OTPS — plus the existing dashboard + budget-health sections; 🐛 WORM'S EYE = one-program deep dive…
cm-cpo-budget-command.html2026-09-02 09:35 ET
+vendor-credits r2 — 💳 NEW section per MJ ("tabs for vendors we have credit with — I do not see those credits"): opening / used / on-account per vendor, total-on-account column, tap-to-edit (two prompts) saving credit:{opening,used} onto the vendor's…
index.html2026-09-02 09:05 ET
cpo-routing r1 — finder now routes the C-suite: Michael Candella → cm-cpo-dashboard.html (NEW this build, his all-programs home with the Budget Command Center) and Christina Kuhn → cm-executive-assistant-dashboard.html. Two seed-row dashboard fields, nothing…
cm-cpo-dashboard.html2026-09-02 09:05 ET
cpo-dashboard v1.0 — 💼 NEW: Mike Candella's own home, per MJ ("The CPO needs his own view of all programs that includes this budget command center"). Three hero tiles with LIVE figures — 💰 FY27 OTPS total/spent/left (programs + vendor accounts, seed fallback…
cm-cpo-budget-command.html2026-09-02 09:05 ET
+home-btn r1 — 🏠 CPO-dashboard button added beside Christina's (pairs with new cm-cpo-dashboard.html).
cm-executive-assistant-dashboard.html2026-09-02 08:35 ET
+otps-receipts v1.0 — 🧾 NEW TAB for Christina, the receipts half of the CPO budget vision: every expense logged on cm-cpo-budget-command.html (budget_lines, kind:otps_expense) lands here newest-first with a big receipt checkbox — checking it writes {receipt,…
worksite-express.html2026-09-02 08:25 ET (est. container UTC−4 — confirm wall-clock)
ols-audit-scope — MJ (SYEP 2026 OY audit prep): "I want a link to send to the worksites for the missing evals only for the audit kids not for all their placements." NEW &ols= URL SCOPE on every RESPOND surface:…
cm-cpo-budget-command.html2026-09-02 08:20 ET
cpo-command v1.0 — 💼 NEW: the CPO Budget Command Center, Mike Candella's hand-linked FY27 OCS/21st spreadsheet rebuilt as a live app. HIS EXACT NUMBERS are baked in as the seed (parsed programmatically from…
call-in.js2026-09-02 07:38 ET
v4.5 chain-for-all — per MJ: every call-in type (not just personal-day requests) now walks the full reportsTo chain, so the route line reads e.g. 'Goes to: Timothy Desiderio, Allan Avidano, Michael Candella · cc Tara Muglia, Christina Kuhn'. One-line NOTIFY…
call-in.js2026-09-02 07:30 ET (wall clock confirmed 07:08 anchor)
v4.4 name-from-account — ✍️→🔒 per MJ (pre-CPO-demo): a signed-in @nycid.org staffer NEVER types their name. onUser now guarantees the box fills — directory/roster fullName → Google displayName → prettified email local part — then sets it read-only with a…
youthbuild-case-management.html2026-09-02 07:15 ET (wall clock CONFIRMED by MJ 07:08; container ≈ ET exactly today)
slogan-fix r1 — hero slogan corrected per MJ: "You're moving N young people toward the bridge." → "You are improving the lives of N young people." One line, live count kept, bridge VISUAL theme (palette, progress dots) untouched by design. Same one-line fix…
yabc-case-management.html2026-09-02 07:15 ET (wall clock CONFIRMED by MJ 07:08; container ≈ ET exactly today)
slogan-fix r1 — hero slogan corrected per MJ: "You're moving N young people toward the bridge." → "You are improving the lives of N young people." One line, live count kept, bridge VISUAL theme (palette, progress dots) untouched by design. Same one-line fix…
olympus-case-management.html2026-09-02 07:15 ET (wall clock CONFIRMED by MJ 07:08; container ≈ ET exactly today)
slogan-fix r1 — hero slogan corrected per MJ: "You're moving N young people toward the bridge." → "You are improving the lives of N young people." One line, live count kept, bridge VISUAL theme (palette, progress dots) untouched by design. Same one-line fix…
concord-case-management.html2026-09-02 07:15 ET (wall clock CONFIRMED by MJ 07:08; container ≈ ET exactly today)
slogan-fix r1 — hero slogan corrected per MJ: "You're moving N young people toward the bridge." → "You are improving the lives of N young people." One line, live count kept, bridge VISUAL theme (palette, progress dots) untouched by design. Same one-line fix…
cm-director-dashboard-demo.html2026-09-02 07:15 ET (wall clock CONFIRMED by MJ 07:08; container ≈ ET exactly today)
slogan-fix r1 — hero slogan corrected per MJ: "You're moving N young people toward the bridge." → "You are improving the lives of N young people." One line, live count kept, bridge VISUAL theme (palette, progress dots) untouched by design. Same one-line fix…
cm-counselor-dashboard-demo.html2026-09-02 07:15 ET (wall clock CONFIRMED by MJ 07:08; container ≈ ET exactly today)
slogan-fix r1 — hero slogan corrected per MJ: "You're moving N young people toward the bridge." → "You are improving the lives of N young people." One line, live count kept, bridge VISUAL theme (palette, progress dots) untouched by design. Same one-line fix…
Tuesday, September 1, 2026 21 builds
nycid-calendar.js2026-09-01 20:15 ET (est. container −4h — confirm wall-clock)
mobile-pill-pin r1 — 📱 phone fix from MJ's screenshot: on ≤700px the 📅 pill moves from bottom-left to TOP-left (safe-area aware), icon-only (font-size:0 + ::before '📅'). Desktop untouched; rides every page that loads this file. Stacks on 08-31 17:20…
index.html2026-09-01 20:15 ET (est. container −4h — confirm wall-clock)
mobile-pill-pin r1 — 📱 phone fix from MJ's screenshot ("the floating pills show up" over the finder on mobile): ≤700px pins all three floating pills to a TOP row — 📅 top-left + 💬 top-right (those fixes ride team-hub.js / nycid-calendar.js mobile-pill-pin r1…
index.html2026-09-01 18:45 ET (est. container -4h - confirm wall-clock)
pwa-install-solutions — the landing hub now installs as an app like the SYEP admin dash: static head wiring (link rel=manifest to /manifest-solutions.json, theme-color #1E2761, full apple meta set, apple-touch-icon) + a header 'Add to device' button…
yabc-case-management.html2026-09-01 18:30 ET (est. container -4h - confirm wall-clock)
PWA INSTALL v1.0 (nycid-data): static head wiring per the 2026-08-11/12 nycid-syep pattern — link rel=manifest to /manifest-yabc.json + theme-color #0A0E14 + full apple-mobile-web-app meta set + apple-touch-icon, all at parse time; stay-in-app interceptor…
olympus-case-management.html2026-09-01 18:30 ET (est. container -4h - confirm wall-clock)
PWA INSTALL v1.0 (nycid-data): static head wiring per the 2026-08-11/12 nycid-syep pattern — link rel=manifest to /manifest-olympus.json + theme-color #0A0E14 + full apple-mobile-web-app meta set + apple-touch-icon, all at parse time; stay-in-app interceptor…
concord-case-management.html2026-09-01 18:30 ET (est. container -4h - confirm wall-clock)
PWA INSTALL v1.0 (nycid-data): static head wiring per the 2026-08-11/12 nycid-syep pattern — link rel=manifest to /manifest-concord.json + theme-color #0A0E14 + full apple-mobile-web-app meta set + apple-touch-icon, all at parse time; stay-in-app interceptor…
yabc-case-management.html2026-09-01 18:12 ET (est. container -4h - confirm wall-clock)
STAFF FIX per MJ: Patricia Cuozzo is the YABC Internship Coordinator (coordinator persona, note author, staffing, event contacts); Shawn Berry (sberry@nycid.org) is a Personal Advocate — he takes over Cuozzo's advocate caseload lane (COUNSELORS id MB, init…
yabc-case-management.html2026-09-01 18:05 ET (est. container -4h - confirm wall-clock)
STAFF: Shawn Berry (sberry@nycid.org) added as YABC Internship Coordinator, replacing Miya DeVito (Miya is now Concord's IC) — coordinator persona note-author, note seed, staffing widget, and intern-facing event contacts updated. No other changes.
olympus-case-management.html2026-09-01 17:55 ET (est. container -4h - confirm wall-clock)
REAL ROSTER v1.0: demo-placeholder staff swapped for the real Olympus Academy roster from cm-staff-master — Advocate Counselors Hayma Lallapersaud / Tiffany James / Jamal Jones (3 counselors, 60 students each, DE lane removed), Internship Coordinator Mary…
concord-case-management.html2026-09-01 17:55 ET (est. container -4h - confirm wall-clock)
REAL ROSTER v1.0: demo-placeholder staff swapped for the real Concord LTW roster from cm-staff-master — Advocate Counselors Jazmine Young / Cheyenne Baker / Jasmine Walker (3 counselors, 60 students each, DE lane removed), Internship Coordinator Miya DeVito…
yabc-case-management.html2026-09-01 16:20 ET (est. container -4h - confirm wall-clock)
LTW DOCS MODULE v1.0: new 'LTW Docs' gantry tab — digital New Hire Intake (doc checkboxes + in-browser photo capture, shrunk to <=900px JPEG, saved to Firestore), LTW Agreement (Mon–Sun schedule grid w/ live 15-hr cap, 4-party draw-to-sign, partial-signature…
olympus-case-management.html2026-09-01 16:20 ET (est. container -4h - confirm wall-clock)
LTW DOCS MODULE v1.0: new 'LTW Docs' gantry tab — digital New Hire Intake (doc checkboxes + in-browser photo capture, shrunk to <=900px JPEG, saved to Firestore), LTW Agreement (Mon–Sun schedule grid w/ live 15-hr cap, 4-party draw-to-sign, partial-signature…
concord-case-management.html2026-09-01 16:20 ET (est. container -4h - confirm wall-clock)
LTW DOCS MODULE v1.0: new 'LTW Docs' gantry tab — digital New Hire Intake (doc checkboxes + in-browser photo capture, shrunk to <=900px JPEG, saved to Firestore), LTW Agreement (Mon–Sun schedule grid w/ live 15-hr cap, 4-party draw-to-sign, partial-signature…
call-in.js2026-09-01 15:00 ET
v4.3 TEST PERSONA for the CPO demo: 'Test Staffer' (callin-test@nycid.org, Admin / Shared) added to DIRECTORY reporting to mcandella@ so a call-in for it lands in Mike Candella's inbox; TEST_ACCOUNTS map switches OFF the CPO-cc guard for it (Muglia/Kuhn never…
call-in.js2026-09-01 14:40 ET
v4.2 RECIPIENT PREVIEW: the sheet now shows the staffer who will be emailed BEFORE they send — a 📨 line under the Send button ("Goes to: Timothy Desiderio" / "Request goes to: Desiderio, Avidano, Candella · cc Muglia, Kuhn"), re-resolved live whenever the…
call-in.js2026-09-01 14:20 ET
v4.1 CEO OFF THE ROUTE: cgonzalez@ never receives call-in mail (NEVER_TO). CPO and COO call-ins route to the Executive Assistant (EXEC_TO = ckuhn@) instead of the CEO; Candella/De Vito reportsTo cleared in DIRECTORY. Everything else from v4 unchanged.
call-in.js2026-09-01 13:45 ET
v4 ROUTING FROM MASTER ROSTER: CALLOUT_ROUTING per-program map replaced by a baked 98-person org DIRECTORY (Drive xlsx 12kdj5srhQqj3GO_yk4wCoKqe8B9aBGdO, corrections confirmed by MJ 9/1) with a reportsTo chain per person → recipients are walked per staffer,…
sms-privacy.html2026-09-01 08:55 ET
v5: NYCID Solutions text line (929) 441-6650 now stated in §1, §6 and §10 (page previously never named the sending number); §2 and all carrier-required clauses unchanged.
index.html2026-09-01 (time not confirmed — MJ set it)
light-theme-r6 — 🌗 LIGHT THEME copied from admin-dashboard.html (light-theme-v1 + logo-theme-swap + corner-unstack, 08-21), the same mechanism byte-for-byte where it transfers: (1) <head> boot script applies html[data-theme=light] before first paint from…
index.html2026-09-01 (time not confirmed — MJ set it)
staff-only-r5 — (1) EA ORG BOARD TILE REMOVED per MJ (Christina-only; he will show her directly). The page itself is NOT lost: cm-executive-assistant-dashboard.html · 08-31 12:55 ET · 356 ln was delivered in the "Case management system deployment and training…
index.html2026-09-01 (time not confirmed — MJ set it)
full-roster-r4 — EVERY STAFF NAME IS NOW SEARCHABLE. Root cause of "still no names to search": every prior build had only the 9-person CMSI tranche plus ~16 bare names, because that is all any chat had been given; the deployed finder worked exactly as built,…
Monday, August 31, 2026 13 builds
index.html2026-08-31 18:00 ET (est. from container UTC−4 — wall clock STILL unconfirmed 08-31; container now reads 17:2x ET, earlier stamps ran ahead — MJ confirm)
who-goes-where-r3 — the reporting-structure sheet (NYCID_Staff_Roster_Reporting_Structure — CMSI COO chain CSV, MJ this turn) built out into the finder: every chain row now carries ftpt · full reportsTo · srDir · cpo · chainNote verbatim, and each search…
index.html2026-08-31 17:45 ET (est. from container UTC−4 — confirm wall-clock; none confirmed today)
finder-merge-r2 — TWO FIXES (search-match + adopter). THE SEARCH MISS, REPRODUCED then fixed: matching was a plain substring over the spaced name, so 'devito' could never find 'Michael De Vito Jr.' — any squashed surname typed without its space returned…
nycid-calendar.js2026-08-31 17:20 ET (est. from container UTC−4 — confirm wall-clock; none confirmed today)
global-calendar-v1 — 📅 GLOBAL NYCID CALENDAR (MJ: "we need a global Calendar added that will appear everywhere"). ONE <script src="nycid-calendar.js"></script> tag on any Solutions page gives it the org calendar: a 📅 pill bottom-LEFT (the 💬 messenger owns…
index.html2026-08-31 17:20 ET (est. from container UTC−4 — confirm wall-clock; none confirmed today)
calendar+roster-cmsi-chain — STACKS ON this session’s 16:45 staff-finder+team-hub (one deploy carries both). THREE PIECES. (1) 📅 GLOBAL CALENDAR: one <script src="nycid-calendar.js"> tag beside the team-hub tag — the new drop-in org calendar (see…
index.html2026-08-31 16:45 ET (est. from container UTC−4 — confirm wall-clock; none confirmed today)
staff-finder+team-hub — TWO PIECES (MJ: "figure out a way for the index to have an interface which allows a staff to find their name so they get the right dashboard … the messenger needs to work across all programs"). (1) 🧭 STAFF FINDER panel at the top of…
call-in.js2026-08-31 13:15 ET
v3.1 CALLOUT_ROUTING: email routing now per-program (FY27 org chart tiers: Program Director → Senior Director → CPO), per "Setting up email notification hierarchy" chat — the staff.supervisor chain-walk remains as a per-person override but the column is empty…
cm-executive-assistant-dashboard.html2026-08-31 12:55 ET
+request state: Personal/vacation rows show "PTO request · awaiting discussion" + who was emailed (call-in.js v3 chain email).
call-in.js2026-08-31 12:45 ET
v3 REQUESTS + EMAIL: Personal/Vacation day is now a REQUEST (status:'requested', policy statement shown on tap: must be discussed with your supervisor immediately); every submit queues an email via the `mail` collection (Trigger Email/SendGrid, from…
call-in.html2026-08-31 12:15 ET
NEW standalone Staff Call-In app page for the Solutions suite: NYCID-GATE + call-in.js with the sheet auto-opened on load (report absence / out-today board / upcoming), install-friendly single purpose page for staff who don't live in a dashboard; ?demo=1…
cm-executive-assistant-dashboard.html2026-08-31 11:45 ET
NEW Executive Assistant Dashboard (Christina Kuhn · ckuhn@nycid.org): org-wide staff whereabouts fed by call-in.js — Today board by program w/ call-back numbers + coverage alerts, Mon–Fri week grid, full roster w/ live In/Out status (source for every…
call-in.js2026-08-31 11:30 ET
v2 FEED + DEMO: window.NYCIDCallIn now a live feed for every dashboard (.docs/.today()/.statusFor(name|email)/.submit(rec) on-behalf/.staffRoster()/'nycid:callin-board' event); query widened to today−14d for week views; ?demo=1 or data-demo="1" → in-memory…
call-in.js2026-08-31 10:40 ET
NEW shared staff call-in widget: one <script src="call-in.js"> on any Solutions page → floating 📞 Call In pill (bottom-left), sheet w/ absence form (name/program auto-filled from `staff` by signed-in @nycid.org email, date defaults to today ET, type:…
worksite-monitor-assessment.html2026-08-31 08:55 ET (est. container UTC−4 — confirm wall-clock)
sup-sig-3way — ✍ THREE WAYS TO PUT THE WORKSITE SUPERVISOR’S SIGNATURE ON FILE FROM THE CATCH-UP SCREENS (Michael 08-31: "add a signature panel for the worksite supervisor on the catch up assessments and also add digital signature — 3 choices: 1. upload 2.…
Sunday, August 30, 2026 15 builds
cm-case-manager-dashboard.html2026-08-30 11:20 ET (est. container −4h — confirm wall-clock)
ABQ QUICK LESSON — new 💡 ABQ tab (Always Be Questioning): strengths-based questioning micro-lesson; question-of-the-day (date-rotating) + shuffle, 4 practice tips, 25-question bank in 6 themes, tap-to-copy into touchpoint notes. Source: Melanie Atkins, 50…
youthbuild-case-management.html2026-08-30 11:05 ET (est. container −4h — confirm wall-clock)
concord-case-management.html2026-08-30 11:05 ET (est. container −4h — confirm wall-clock)
Brand hue update: red hue + Concord logo; accent vars + hardcoded rgba swept
worksite-monitor-assessment.html2026-08-30 10:55 ET
bulk-id-filter — 📥 PASTE ANY NUMBER OF WORKSITE IDS, ONLY THE OWING ONES LOAD (Michael 08-30 10:41, pasting ~74 mixed comma/newline IDs from the notes tool: "trying to load this … its not bringing up the 34"). ROOT CAUSE: mgLoad line-1802 hard-REFUSED any…
youthbuild-case-management.html2026-08-30 10:50 ET (est. container −4h — confirm wall-clock)
NEW PLATFORM: NYCID YouthBuild case-management lane forked from yabc-case-management.html (2026-08-03 build) — same flow: Director / Coordinator / Case Manager / School Partner / Student & Intern portals / Rolodex / Staff, elevation chain, case notes, demo…
olympus-case-management.html2026-08-30 10:50 ET (est. container −4h — confirm wall-clock)
NEW PLATFORM: Olympus Academy · LTW case-management lane forked from yabc-case-management.html (2026-08-03 build) — same flow: Director / Coordinator / Case Manager / School Partner / Student & Intern portals / Rolodex / Staff, elevation chain, case notes,…
concord-case-management.html2026-08-30 10:50 ET (est. container −4h — confirm wall-clock)
NEW PLATFORM: Concord High School · LTW case-management lane forked from yabc-case-management.html (2026-08-03 build) — same flow: Director / Coordinator / Case Manager / School Partner / Student & Intern portals / Rolodex / Staff, elevation chain, case…
cm-director-dashboard-demo.html2026-08-30 10:50 ET (est. container −4h — confirm wall-clock)
STANDARDIZED: rebuilt as the org-standard Director dashboard on the NYCID case-management platform (forked from yabc-case-management.html 2026-08-03 build) — same dark bridge theme, motivational hero, KPI tiles, site toggle, elevated-cases panel, counselor…
cm-counselor-dashboard-demo.html2026-08-30 10:50 ET (est. container −4h — confirm wall-clock)
STANDARDIZED: rebuilt as the org-standard Counselor dashboard on the NYCID case-management platform (forked from yabc-case-management.html 2026-08-03 build) — same dark bridge theme, motivational deck, weekly-reach ring, coverage bar, needs-attention banner,…
worksite-monitor-assessment.html2026-08-30 07:50 ET
sweep-universe-fix — 🌐 SWEEP SCANS THE REAL UNIVERSE + OPERATOR-SIGNATURE CLARITY (Michael 08-30: sweep missed CVS Pharmacy 807703, DSW 944587, DSW 125993, Grounds Donut House 345899 — all 5-of-6 in the notes tool; and "the bottom shows only me signing").…
worksite-monitor-assessment.html2026-08-30 07:25 ET
mega-typed-sigs — ✍ EVERY GRID-ASSIGNED SITE SIGNS AS ITS REAL MONITOR (Michael 08-30, worksite-monitor-grid.html uploaded as REFERENCE — not edited: "you have all the monitors names in the monitor grid — please add everyone — this is starting to take too…
migrate-copier.html2026-08-30 07:20 ET
v2 — dry-run counting no longer needs aggregate count() (missing from compat 10.7.1): tries count(), falls back to paged ID-ordered reads.
worksite-monitor-assessment.html2026-08-30 07:05 ET
mega-monitor-attribution — 👤 MEGA/SWEEP VISITS SIGN AS EACH SITE’S REAL MONITOR (Michael 08-30: "the mega catch-up is not grabbing the actual monitors that covered the sites — it’s treating it as if it were the monitor I am logged into"). Every…
worksite-monitor-assessment.html2026-08-30 06:45 ET
superadmin-sweep — 🏁 SUPER-ADMIN SWEEP: EVERY SITE STILL MISSING VISITS, SUITE-WIDE, NO STAFF NEEDED (Michael 08-30 06:27: "many sites only have 5 visits … I need a super super admin so I can sign and seal the remaining sites without staff help … how do we…
Saturday, August 29, 2026 2 builds
worksite-monitor-assessment.html2026-08-29 10:20 ET (est. container UTC−4 — confirm wall-clock)
notreq-weeks — 🚫 NOT-REQUIRED WEEKS HONORED EVERYWHERE (Michael 08-29 08:26, restarted after the prior chat was killed by a classifier flag: sites with weeks where NO youth were assigned — Pride Center 821972 3 wks, Small Angels 663699 2 wks — must read as…
worksite-monitor-assessment.html2026-08-29 07:40 ET (est. from screenshot clock ~07:34; confirm wall-clock)
email-label-clarity — Michael 08-29: "Supervisor email (for the consent / scrub notice — optional) … this is definitely optional right? I do not want people confused." VERIFIED FIRST, unchanged since yesterday: exactly ONE mail write exists in this whole tool…
Friday, August 28, 2026 6 builds
worksite-express.html2026-08-28 11:05 ET
eop-owing-only — Michael 11:01: "yesterday or the day before i asked for an update to not send emails for end of program to the youth who have everything complete … I see now that the express app is still loading the entire audience." FACT CHECK ON THESE…
migrate-copier.html2026-08-28 09:40 ET
NEW — one-time Firestore copier: syep-2026-job-placement → nycid-solutions. 45 Solutions-side collections preset (mail EXCLUDED on purpose — copying it would make the new Trigger Email extension resend every archived email). Dual compat apps, two @nycid.org…
worksite-monitor-assessment.html2026-08-28 08:45 ET (est. — carried forward from Michael’s 07:17 anchor; confirm wall-clock)
catchup-regenerate — 🔄 REGENERATE SAVED VISITS ON BOTH CATCH-UP SCREENS (Michael 08:3x: "needs to let you regenerate the catch up and mega catch ups so if you missed something you can fix it"). Saved visits STAY locked by default — nothing changed about the…
worksite-monitor-assessment.html2026-08-28 08:20 ET (est. — carried forward from Michael’s 07:17 anchor; confirm wall-clock)
back-pill-noframe — 🛑 STOP THE STACKING "← Back to dashboard" BARS (Michael 08:1x screenshot: three bars — Pride Center, Better Biz ×2 — stacked atop the live monitor app). ROOT CAUSE, read off both files: the monitor app opens this tool in its #asmt-overlay…
worksite-monitor-assessment.html2026-08-28 07:55 ET (est. — carried forward from Michael’s 07:17 anchor; confirm wall-clock)
catchup-sup-upload — 📷 UPLOAD THE WORKSITE SUPERVISOR’S SIGNATURE RIGHT ON THE CATCH-UP SCREENS (Michael 07:5x: "on the catch up interface put a way to upload the worksite supervisors signature"). BOTH catch-up surfaces get it: (1) 🚀 MEGA — every site card…
worksite-monitor-assessment.html2026-08-28 07:35 ET (est. forward from Michael’s 07:17 anchor)
mega-catchup — 🚀 MEGA CATCH-UP: EVERY MISSING VISIT ACROSS ALL OF A MONITOR’S SITES AT ONCE (Michael 07:17: Tracey Giraudy’s 14 behind-pace sites; "I want to do these all together — the app needs to confirm if we have a signature to use because the worksite…
Thursday, August 27, 2026 3 builds
cm-budget-allocations.html2026-08-27 15:55 ET (est. container −4h — confirm wall-clock)
v2.18 FINAL CHANGES INTO FISCAL SNAPSHOT — per Michael (fiscal-view screenshot): ✉ Send SELECTED (and 🧪 Test email) now write a `changes` list into the budget_snapshots doc so budget-fiscal-view.html v1.1 can show the changes at the bottom of the sheet and…
budget-fiscal-view.html2026-08-27 15:55 ET (est. container −4h — confirm wall-clock)
v1.1 ONE-PAGE + FINAL CHANGES + EXCEL — per Michael (screenshot: horizontal slider under the sheet, Total column cut off). (1) ONE PAGE: table-layout:fixed at 100% width, wrap widened to 1500px, compact .74rem cells, Line column wraps instead of forcing width…
worksite-monitor-assessment.html2026-08-27 06:13 ET
catchup-q6q7-online — ⚡ CATCH-UP INTERVIEW DEFAULTS FIXED (Michael 06:13, urgent: "the catch up feature that creates all assessments at once is defaulted to Paper and yes for 6 How do you complete your sign-in sheet? / 7 For Paper ONLY: Do you sign in when…
Wednesday, August 26, 2026 16 builds
worksite-express.html2026-08-26 19:45 ET
eop-history-ladder — Michael 19:32: "the end of program audience is going good but it stops at 'this is our second message' — can we keep track and add 3rd, 4th, 5th?" FACT CHECK ON THESE BYTES: the numbering was never capped — eopOrd() formats…
cm-budget-allocations.html2026-08-26 16:50 ET (est. container −4h — confirm wall-clock)
v2.17 EXCEL CHANGE EXPORT — per Michael: two new buttons in the pending box, ⬇ Excel (selected) and ⬇ Excel (all). SELECTED = only the CHECKED pending rows, oldest→newest (the exact set + order ✉ Send SELECTED would email, so ⭐ Latest only + v2.11 coalescing…
cm-employer-outreach.html2026-08-26 13:25 ET (anchored to Michael’s 12:16 +elapsed)
SENDER SWAP over the 13:10 email build, per Michael “talk away no reply”: noreply@nycid.org is GONE — outgoing mail now sends AS kking@nycid.org or tdoyle@nycid.org via a From select in the compose (defaults to the case’s assigned manager when it’s Kyra or…
cm-employer-outreach.html2026-08-26 13:10 ET (anchored to Michael’s 12:16 +elapsed)
LINKS + IN-APP EMAIL over the 12:40 BD-pill build: (1) Quick Links panel now three boxes — Hall sign-up, BD Tracking Form (Workforce1, copy + ↗ open), Roundtable — all one-tap sendable; (2) IN-APP EMAIL, the SYEP pattern scaled down: per-case ✉️ Email…
employer-connect.html2026-08-26 12:55 ET (anchored to Michael’s 12:16 +elapsed)
SOCIAL SHARE PASS over the 12:40 event-details build: NEW “Why table with NYCID on Sept 30” benefits card between the chooser and the hall form — five employer-benefit bullets drawn from standard SBS/Workforce1 hiring-event messaging (pre-registered…
employer-connect.html2026-08-26 12:40 ET (anchored to Michael’s 12:16 +elapsed)
EVENT DETAILS LOCKED IN: Staten Island Hiring Hall · Wed Sept 30 2026 · 10:00 AM–2:00 PM · Central Family Life Center, 59 Wright Street, Staten Island NY 10304 — woven into the chooser card, hall form facts, routed ?event=hall header, confirmation copy, AND…
cm-employer-outreach.html2026-08-26 12:40 ET (anchored to Michael’s 12:16 +elapsed)
EVENT DETAILS + BD TRACKING PILL over the 12:20 dashboard build: (1) Staten Island Hiring Hall locked in — Wed Sept 30 · 10:00 AM–2:00 PM · Central Family Life Center, 59 Wright Street, SI NY 10304 (countdown block, header subtitle, quick-links hall box); (2)…
employer-connect.html2026-08-26 12:20 ET (anchored to Michael’s 12:16)
contact swap: swalker@nycid.org → kking@nycid.org (Kyra King, Job Developer) — all 3 refs: footer mailto href + text, save-failure fallback message. No other change; form logic, doc ids, fields untouched.
cm-employer-outreach.html2026-08-26 12:20 ET (anchored to Michael’s 12:16)
CASE MANAGEMENT DASHBOARD pass, kept simple per Michael: (1) named case-manager roster — Kyra King · Tess Doyle · Michael DeVito — replaces free-text Assigned To in BOTH the add-employer form and the per-case detail (select w/ Unassigned; assignment changes…
cm-attendance.html2026-08-26 10:10 ET
Poll 4 event details corrected per Michael: Wed, Sep 30 · 10:00 AM – 2:00 PM (was 10–3) · Staten Island Hiring Hall — Central Family Life Center, 59 Wright Street, Staten Island, NY 10304. Question now reads "Are you interested in attending the Staten Island…
cm-attendance.html2026-08-26 10:05 ET
+Hiring Hall interest on the Lunch & Learn Zoom check-in form: NEW Poll 4 block after Poll 3 — "Are you interested in attending the NYCID Hiring Hall, 10 AM–3 PM at Central Family Life Center on Staten Island, Wednesday September 30, 2026?" Yes / No radios…
index.html2026-08-26 08:15 ET
+resume-review hot-button — added the Resume Builder — Review Queue (resume-review.html) featured hot-button at the top of the featured block, directly above Community Workforce Enrollment; sub-text names resume-builder.html as the participant link. Nothing…
resume-review.html2026-08-26 07:55 ET
v1.0 — NYCID-side review queue for the resume builder (Solutions app, nycid-data). Gated on an @nycid.org Google sign-in (same pattern as nycid-careers-admin.html; the resume_drafts LIST rule requires nycidStaff()). Queue: pending first, oldest first, with…
v1.0 — participant resume builder for the Solutions app (nycid-data). Tess's spec end-to-end: one question per screen with an 8-part progress rail, tapping beats typing (chips/tiles/checklists, native month+year pickers), 5th-grade copy, no age field, every…
worksite-express.html2026-08-26 07:40 ET (from Michael's 06:40 anchor)
wf1-two-days — 💼 WORKFORCE OUTREACH RESEND (Michael: resend today's Workforce1 reminder, grab a glimpse of who is interested, offer Thursday too). WF_EVENT: short/when now 'Wed 8/26 OR Thu 8/27 · 8:45 AM'; subject → 'REMINDER … (Wed 8/26 or Thu 8/27, 8:45…
Tuesday, August 25, 2026 5 builds
cm-budget-allocations.html2026-08-25 13:55 ET (Michael-anchored)
v2.16 🎯 FLUSH-TO-ZERO — per Michael: any on-sheet column with money left under budget grows a 🎯 button in its REMAINING cell. Click → pick the OTPS line to absorb it (numbered prompt) → the app computes the INDIRECT-AWARE amount: adding Δ to OTPS also adds…
cm-budget-allocations.html2026-08-25 13:35 ET (Michael-anchored)
v2.15 OTHER EXCLUDED FROM TALLY — per Michael (screenshot: OTHER's $66,690 was inflating TOTAL EXPENSES to $1,286,477.56 and flipping total REMAINING to −$4,477.56): the OTHER column is a PLACEHOLDER and is now excluded from every Total-column figure. ONE…
cm-budget-allocations.html2026-08-25 13:15 ET (Michael-anchored)
v2.14 UNLIMITED BUDGET SPLITS — fixes the "only lets me add 3 budgets" symptom (e.g. Felix Polanco across all six at varying %). ROOT CAUSE: no hard cap existed — readModalPct() silently DROPPED any allocation row still at 0%, so clicking "+ Add program"…
cm-budget-allocations.html2026-08-25 12:55 ET (Michael-anchored)
v2.13 OTHER-PROGRAMS COLUMN — per Michael: staff % billed to contracts NOT on this sheet now has a home. New always-last column OTHER ("Other programs · off-sheet"): selectable in the staff modal like any program, counts toward the 100% split (kills the amber…
cm-budget-allocations.html2026-08-25 12:35 ET (Michael-anchored)
v2.12 REMOVE STAFF LINE — per Michael: staff can now be removed entirely from the budget. 🗑 Remove-from-budget button appears in the staff modal (EDIT mode only, not on Add): confirm → SOFT delete (active:false + removedAt/By stamped — never a hard delete,…
Monday, August 24, 2026 7 builds
data-disclaimer.html2026-08-24 15:40 ET
Both NYCID texting numbers
data-disclaimer.html2026-08-24 15:16 ET
New: shareable data-disclaimer card (companion to privacy.html) for Twilio/SMS consent language
worksite-express.html2026-08-24 15:05 ET (est. — confirm wall-clock)
wf-login+placed-toggles (STACKS ON this chat's 14:25 workforce-outreach-borough-filter — one deploy carries both) — Michael: "it's sending to even the kids that were not placed … they never logged into their apps." 💼 filter bar gains ☑ include not placed and…
nycid-careers-admin.html2026-08-24 14:40 ET (est. forward from Michael's 14:22 anchor — confirm wall-clock)
🎓 YOUTH ENROLLMENTS VIEW FIXED — AUTH BEFORE READ. Live firestore.rules (08-22 build, 1,869 lines, uploaded this turn) gates youth_enrollments READ on nycidStaff() (08-19 org-tools lockdown), but this page still subscribed at page load with ZERO request.auth…
worksite-express.html2026-08-24 14:25 ET (est. — confirm wall-clock)
workforce-outreach-borough-filter — Michael: "post a special opportunity to all Staten Island SYEP participants 18 and older … via a new filter for workforce outreach — I want the filter to be for each borough." NEW 💼 Workforce outreach tab + filter bar:…
worksite-monitor-assessment.html2026-08-24 12:05 ET (est. — confirm wall-clock)
saved-monitor-sig — ✍ USE THE SIGNATURE THE MONITOR UPLOADED IN THE MONITOR APP (Michael: "on the worksite monitors assessment app, use the same signature that the worksite monitor uploaded to their monitors app"). The monitor app stores that upload at…
worksite-monitor-assessment.html2026-08-24 11:05 ET (est. forward from Michael's 10:35 anchor — confirm wall-clock)
director-slot-guard — 🛡 STOP ERASING THE DIRECTOR'S SIGNATURE (Michael: "Andrea Rodolico — all her assessments are done but it says she's missing 15… also the way the director signs them, I'm not seeing new ones to sign as they're completed"). ROOT CAUSE,…
Friday, August 21, 2026 6 builds
worksite-express.html2026-08-21 12:40 ET
thanks-portal-intent (STACKS ON 12:30 thanks-closeout chain — one deploy carries all six 8/21 builds) — Michael: on the 🙏 email, add a button for sites that INTEND to do the remaining items on the DYCD Portal. DONE: outstanding-items variant only (clean sites…
worksite-express.html2026-08-21 12:30 ET (anchored to Michael's 12:11 report pull / 12:19 copy approval)
thanks-closeout (STACKS ON 07:55 eop-cohortB-paycheck chain — ONE deploy carries all five 8/21 builds) — 🙏 NEW 9th CAMPAIGN Employer thank-you + close-out, Michael's APPROVED copy verbatim (12:15 draft + 12:19 edits: “While most of you are finishing up today,…
worksite-express.html2026-08-21 07:55 ET (est. — confirm wall-clock)
eop-cohortB-paycheck (STACKS ON 07:50 + 07:45 + 07:30 — ONE deploy carries all four) — Michael: the paycheck line must read “Cohort B final paycheck will be issued Friday, August 28, 2026.” and be a little larger. TWO copy-only touches inside eopBody's first…
worksite-express.html2026-08-21 07:50 ET (est. — confirm wall-clock)
eop-cohortA-parens-bold (STACKS ON 07:45 eop-cohortA+staff-picker + 07:30 eop-final-notice — ONE deploy carries all three) — Michael: “close put (If you were Cohort A, your last day was August 16th and your final check was today, August 21st.) and make it…
worksite-express.html2026-08-21 07:45 ET (est. — confirm wall-clock)
eop-cohortA+staff-picker (STACKS ON 07:30 eop-final-notice — one deploy carries both) — TWO ASKS (Michael): (1) COHORT A LINE — the 🏁 first-notice opening paragraph now ends “If you were Cohort A, your last day was August 16th and your final check was today,…
worksite-express.html2026-08-21 07:30 ET (est. from Michael's 07:10/07:14 anchors — confirm wall-clock)
eop-final-notice — 🏁 NEW 8th CAMPAIGN End of program (Michael 07:10: last days of OY programming are today/tomorrow; email now: no work past Sat 8/22, Saturday only with a scheduled shift; final paycheck Fri 8/28/2026; sign documents + upload WP/SS; watch for…
Thursday, August 20, 2026 10 builds
index.html2026-08-20 19:35 ET (anchored to Michael’s 19:29 message)
DRIFT RECOVERY: re-added the Employer Outreach — Hiring Hall (cm-employer-outreach.html) featured hot-button, LOST when the 08-19 13:40 reorg was built from a lineage without the 08-18 delivery. Base = the 08-20 zip’s index (reorg preserved — hot-bar stays…
cm-budget-allocations.html2026-08-20 13:40 ET (est. container −4h — confirm wall-clock)
v2.11 AUTO-COALESCE (NET CHANGES) — per Michael: nudging a line repeatedly to flush the budget no longer piles up queue rows. New queueChange() intercepts every change write (grid saves AND staff modal): if a PENDING change already exists for the same item…
cm-budget-allocations.html2026-08-20 13:15 ET (est. container −4h — confirm wall-clock)
v2.10 TEST EMAIL + UN-SEND — fixes the "tested on myself, now everything says sent" trap: (1) NEW 🧪 Test email button — sends the EXACT fiscal email (selected changes oldest→newest + snapshot link + PIN 052070) to the addresses in the Fiscal recipients box…
cm-budget-allocations.html2026-08-20 12:55 ET (est. container −4h — confirm wall-clock)
v2.9 PT HOURLY ENTRY — per Michael, PT staff are no longer entered as an annual salary: with Type=PT the staff modal swaps "Annual base $" for Rate $/hr × Hours/week × Weeks with a live computed total; all three are REQUIRED for PT saves. Doc gains…
cm-budget-allocations.html2026-08-20 12:30 ET (est. container −4h — confirm wall-clock)
v2.8 ALWAYS-ON FISCAL BOX + CLEAN HISTORY — fixes for Michael's three reports (the uploaded 08-20 zip's copy was byte-identical to v2.7 — NO drift; all three were in-design behaviors now changed): (1) the pending/fiscal box NEVER hides — with an empty queue…
cm-budget-allocations.html2026-08-20 12:05 ET (est. container −4h — confirm wall-clock)
v2.7 PIN IN THE EMAIL — per Michael, the fiscal email now includes the PIN (052070) directly beneath the budget-view link ("Open the link and enter PIN 052070"), replacing v2.6's "provided separately" line. Everything else unchanged: send writes the…
cm-budget-allocations.html2026-08-20 11:35 ET (est. container −4h — confirm wall-clock)
v2.6 FISCAL BUDGET VIEW + OLDEST-FIRST QUEUE — (1) ✉ Send SELECTED to Fiscal now ALSO writes a full budget snapshot (same rows as the CSV export, via new shared buildBudgetRows()) to NEW collection budget_snapshots (random doc id) and the email gains a link…
budget-fiscal-view.html2026-08-20 11:35 ET (est. container −4h — confirm wall-clock)
v1.0 PIN-GATED FISCAL BUDGET VIEW — NEW PAGE, linked from the Budget Console's "Send SELECTED to Fiscal" email. Reads budget_snapshots/<?s=id> (written by cm-budget-allocations.html v2.6 at send time; unguessable random doc id) and renders the full budget…
cm-budget-allocations.html2026-08-20 11:10 ET (est. container −4h — confirm wall-clock)
v2.5 SELECTABLE FISCAL QUEUE — the pending box no longer force-sends every logged edit: (1) each pending change gets a checkbox (all checked by default); (2) ☑ All / ☐ None / ⭐ Latest only — Latest keeps ONLY the newest change per item (per staff member, per…
cm-budget-allocations.html2026-08-20 10:55 ET (est. container −4h — confirm wall-clock)
v2.4 GATE-AUTH FIX ("it's all gone" false alarm) — ROOT CAUSE: the 08-19 gate signed in on a NAMED Firebase app ("nycid-gate") while the page's Firestore calls ran on the unauthenticated DEFAULT app; auth never propagates between apps, so once the 08-19 rules…
Wednesday, August 19, 2026 36 builds
tracking.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
syep-careers-admin.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
org-chart.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
job-acceptance-admin.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
index.html2026-08-19 13:40 ET (est. — confirm wall-clock)
REORG: ⚡ Working Tools hot-bar moved BELOW the demo section tiles (“working tools under the demos”); demo section retitled 🧪 Demos. Same turn: staff gate injected (stamp below).
index.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
funding.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
forms.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
fiscal.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
events.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
device-inventory.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
device-inventory-admin.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-wfi-training.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-wfi-interns.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-wfi-budget.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-staff-update.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-staff-master.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-senior-director-dashboard-demo.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-ps-outcomes-director-demo.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-program-requirements.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-otps-allocator.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-onboarding-hub.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-intake-form.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-incentives.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-funding-pipeline.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-executive-dashboard-demo.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-event-budget.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-director-survey.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-decision-rights.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-cpo-walkthrough.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-case-manager-dashboard.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-budget-master.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-budget-allocations.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
casework.html2026-08-19 13:40 ET (est. container −4h — confirm wall-clock)
STAFF GATE: shared @nycid.org Google sign-in overlay injected after <body> (named Firebase app "nycid-gate" — no collision with the page's own default app; session shared across all gated pages, sign in once). Client-side gate; the data lock is the paired…
cm-attendance.html2026-08-19 12:30 ET (est. container −4h — confirm wall-clock)
STAFF LOCKDOWN — the staff console had ZERO login (confirmed on Michael's direct question). NOW: @nycid.org Google sign-in gate (Firebase Auth v10 ESM popup, hd=nycid.org, non-NYCID accounts signed out + rejected with the address named) guards the ENTIRE…
cm-attendance.html2026-08-19 12:10 ET (est. container −4h — confirm wall-clock)
URGENT FIX — “Event not found” on shared check-in links: TWO real causes read off the code. (1) cm_events was published ONLY when staff opened the 💻 Zoom tab — links shared before that (or before the write landed) 404’d for every attendee. NOW:…
Tuesday, August 18, 2026 2 builds
employer-connect.html2026-08-18 08:45 ET (est. container −4h — confirm wall-clock)
NEW — public employer sign-up for the SBS Small Business Solutions grant recruitment: two quick links off one page — ?event=hall (NYCID Hiring Hall · Wed Sept 30 2026 · tabling all day + on-site interviews) and ?event=roundtable (Employer Roundtable · date…
cm-employer-outreach.html2026-08-18 08:45 ET (est. container −4h — confirm wall-clock)
NEW — employer recruitment case management for the SBS Small Business Solutions grant Hiring Hall (Wed Sept 30 2026, all-day tabling + on-site interviews) and the Employer Roundtable (date TBD). One page, four zones: (1) Quick Links — the two public sign-up…
Monday, August 17, 2026 4 builds
worksite-express.html2026-08-17 10:35 ET (est. container −4h — confirm wall-clock)
MERGE+allhub (STACKS ON 10:15 MERGE paperw3+finalweek+combo — one deploy carries all) — Michael: 'one email or link that lists everything that's missing — don't delete the others but I need that one main link.' DONE: NEW ?go=all&wsid= ALL-OUTSTANDING HUB —…
worksite-express.html2026-08-17 10:15 ET (est. container −4h — confirm wall-clock)
MERGE paperw3+finalweek+combo — DRIFT REPAIR (Michael: parallel chats both edited this file; deployed = this chat's 09:55 550b635b…, the other chat's 09:10 paper-w3-intake (1f6fe0cb…, 3,385 ln) was never deployed). MERGE METHOD: both branches forked the same…
worksite-monitor-assessment.html2026-08-17 10:05 ET
batch-catchup — ⚡ CATCH-UP: DO ALL VISITS AT ONCE (Michael 08:12 anchor, decisions confirmed ~09:50: standard-positive interview answers / skip recent placements / save with empty supervisor slot). New blue pill on the loader opens a batch screen: load a…
worksite-express.html2026-08-17 09:10 ET (from Michael's 08:55 anchor)
paper-w3-intake — 📄 CVS WEEK-3 PAPER EVALS → REAL DOCS + YOUTH SIGN CHASE (Michael 08:55: three CVS sites did Week 3 on paper — send to the assigned kids to sign, store in the worksite + participant folders for the audit, and show completed on the monitor's…
Sunday, August 16, 2026 3 builds
worksite-monitor-assessment.html2026-08-16 10:06 ET
visit7+iv-sync — (1) VISIT 7 FOR DUAL-COHORT SITES (Michael: "some sites were cohort A and B, so we need 7 assessments"): loader Weekly-Visit picker now offers "Visit 7 — Cohort A+B sites"; deep-link ?visit=7 works via existing setSel; copy-prev lookback, doc…
worksite-monitor-assessment.html2026-08-16 10:02 ET
copy-prev — COPY THE PREVIOUS WEEK'S ASSESSMENT ANSWERS (Michael 10:02 anchor). New blue “📋 Copy last visit's answers” card at the TOP of the Site tab: when the monitor opens Visit N (N≥2), openAssessment now also walks visits N-1 down to 1 in one parallel…
worksite-express.html2026-08-16 06:25 ET (est. from Michael's 06:06 anchor)
abc-sort+offline-evals — TWO ASKS (Michael 06:06): (1) 🔤 SORT A→Z — new toolbar toggle sorts ANY loaded audience alphabetically by the row's displayed name (site name on site rows, youth name on yrefs/💰 rows); tap again restores the campaign's default order…
Saturday, August 15, 2026 1 build
worksite-express.html2026-08-15 (wall-clock unconfirmed — set ET on deploy)
oyw-copy-certify-rebuild — 💰 THE OY-WEEKLY EMAIL'S WP/SS LINES NOW OFFER BOTH LANES (Michael: 'Show me the updated email — it doesn't look like you did it.' HE WAS RIGHT ABOUT THE FILE: the uploaded/deployed copy is the 16:20 oy-weekly-express build — the…
Friday, August 14, 2026 3 builds
worksite-express.html2026-08-14 16:20 ET (est. — confirm wall-clock)
oy-weekly-express (STACKS ON this chat’s 15:45 w6-report-uploader + 15:10 delivery-truth-always — ONE deploy carries all three) — THE BASELINE MOVE (Michael): the weekly “enter your pay” email to OY participants becomes the STANDING express-style email —…
worksite-express.html2026-08-14 15:45 ET (est. — confirm wall-clock)
w6-report-uploader (STACKS ON this chat’s 15:10 delivery-truth-always — one deploy carries both; if 15:10 is not yet deployed this single deploy covers the chain) — Michael: “add week 6 eval uploader to the express check out — here’s the report for mapping”…
worksite-monitor-assessment.html2026-08-14 08:20 ET
sig-upload — UPLOAD OPTION FOR THE WORKSITE SUPERVISOR'S SIGNATURE on the Sign tab (Michael 08:12 anchor). New "📷 Upload a photo / scan" button in the Worksite Supervisor slot: image is downscaled to ≤900px, near-white paper is thresholded to transparency and…
Thursday, August 13, 2026 2 builds
worksite-monitor-assessment.html2026-08-13 09:45 ET (est. — no anchor given this session)
assess-date — PER-ASSESSMENT COMPLETION DATE ON THE SIGNATURE PAGE (Michael: "it's putting the same date for all assessments… monitors are playing catch up"). ROOT CAUSE: DOC.date defaulted to new Date() for every unsaved visit and the small site-tab "Visit…
worksite-monitor-assessment.html2026-08-13 09:05 ET (from Michael's 08:32 anchor)
noshow-offboard — NO-SHOW YOUTH OFF THE INTERVIEW LIST (Michael: no-show youth "are still showing up… in the assessment tool"). ROOT CAUSE: loadRoster was a bare applications.where(placedWorksiteId==site) with NO placementStatus filter, so a youth flagged…
Friday, August 7, 2026 1 build
sms-optin.html2026-08-07 16:05 ET
Consent checkbox now truly optional per Twilio review: form submits either way, declined submissions recorded, two-state confirmation
Thursday, August 6, 2026 4 builds
cm-budget-allocations.html2026-08-06 10:50 ET (est.)
v2.3 ROADSIDE FIX — (1) OTPS lines NO LONGER need the unpublished budget_alloc_otps rules block: they now persist inside budget_alloc_settings/config.otpsLines, which the CURRENTLY-PUBLISHED rules already allow — the empty-OTPS symptom was permission-denied…
cm-budget-allocations.html2026-08-06 10:20 ET (est. — confirm wall-clock)
v2.2 SILENT-FAILURE KILL — (1) visible corner BUILD badge bottom-left (v2.2 · 10:20 ET) so a cached/stale deploy is instantly detectable: if the badge on screen does not say v2.2, the deploy did not take (delete-then-drag + hard refresh). (2) Save no longer…
cm-budget-allocations.html2026-08-06 10:00 ET (est. — confirm wall-clock)
v2.1 LIVE-RECALC FIX — grid now recalculates INSTANTLY on every cell change (budget amounts, OTPS cells, fringe/indirect rates): amber = saved-to-screen-not-yet-to-Firestore; Save button pulses + counts unsaved edits ("Save 2 edits → fiscal queue"); leaving…
sms-optin.html2026-08-06 08:20 ET
Full CTA rebuild: working Netlify opt-in form, consent checkbox card, disclosures, NYCID branding
Tuesday, August 4, 2026 1 build
cm-budget-allocations.html2026-08-04 17:15 ET (est. — confirm wall-clock)
v2.0 FULL BUDGET CONSOLE — entire budget laid out like the Michael Budget sheet, columns = the 8 CMSI contracts ONLY, rows = Budget Amount (editable) → FT staff (blended $ from the %-engine, click name to edit split) → PT staff → Fringe FT 30% / PT 12% (rates…
Monday, August 3, 2026 8 builds
yabc-case-management.html2026-08-03 10:30 ET
DEMO FIT-TO-SCREEN: tour bar shrunk from a ~230px slab to a compact two-line strip (caption inline w/ badge+count, slim dots, small controls, bottom padding 250→130px); demo mode now auto-zooms the page to 85% so nothing is cut off behind the bar; NEW A− / A+…
yabc-case-management.html2026-08-03 10:15 ET
SCHOOL PARTNER built out as a dashboard interface: 🏫 School Partner Command Center header (school toggle in the LIVE bar), 6 vitals tiles — Enrollment · Attendance · COUNSELED (monthly-1:1 cadence, overdue count, sessions & notes) · Internship Pipeline…
yabc-case-management.html2026-08-03 09:55 ET
FIXES per Michael: ① SYEP link now goes to nycid-syep.netlify.app/participants (participant dashboard, NOT admin root) — both in the step card and the milestone shadow-box; ② bridge is BACK and always visible — compact by default (reduced-size SVG, small…
yabc-case-management.html2026-08-03 09:40 ET
INTERNSHIP UNLOCK GATE: internship area now clearly EARNED — new 🏆 "Earn your way onto the bridge" incentive panel on the pre-track student page w/ 5-requirement checklist (① contract signed & enrolled ② attendance 90%+ ③ monthly 1:1 w/ advocate ④ WBL…
yabc-case-management.html2026-08-03 09:35 ET
DEMO PACING: auto-advance slowed to 30 SECONDS per screen (was 4.2s); Next button now pulses with a soft blue glow; new amber "Click forward when ready →" note beside it on the tour bar
yabc-case-management.html2026-08-03 09:25 ET
SCHOOL PARTNER REORDER: Elevated-to-you panel moved to the VERY TOP (above tiles); staff In/Out panel moved up directly under the vitals tiles; Student Status Roster moved to the bottom of the page; banner now greets "Hi Mike Noto 👋"
yabc-case-management.html2026-08-03 09:20 ET
STUDENT PAGES reflow: clear order Signed Contract → Attendance → Internship as a 3-card status flow on BOTH phases; prominent "Your Advocate Counselor is: X" box w/ one-tap ✉️ Message + 📣 Message-my-whole-team + per-person team row; milestone chip strip (7…
yabc-case-management.html2026-08-03 08:55 ET
Director dash refashioned as Command Center (hero bar w/ LIVE clock, attention strip w/ jump pills, 6-tile Program Vitals grid — tap any tile to jump); Coordinator refashioned as Mission Control (twin glow cards Pipeline/Paycom-Readiness + 6 stage orbs…
Sunday, August 2, 2026 5 builds
yabc-case-management.html2026-08-02 18:25 ET
LEVEL-SET pass, standard case-mgmt hierarchy (KPIs → alerts → work surface → record): dials deck restored ABOVE the cards on CM; NEW global Quick-Find on Director / Coordinator / CM / School Partner — type any name, one tap opens the full case record incl.…
yabc-case-management.html2026-08-02 17:55 ET
CM dash restructured: triage board promoted to TOP as the access point; outreach-queue / wraparound / monthly-meetings panels removed — their signals now live ON each case card ("What's happening": outreach need, 1:1 overdue/due, open+connected wraparound,…
yabc-case-management.html2026-08-02 17:35 ET
Case-note categories set to Attendance / WBL-Internship / Post Secondary / General / Goal-Setting / Family / Wraparound — now MULTI-SELECT: tickable chips w/ ✓, "Select all" toggle, pick one, several, or all; notes store cats[] and drawer/rows render every…
yabc-case-management.html2026-08-02 17:10 ET
CASE NOTES everywhere: st.notes model + seeded examples; ✎ Note button on CM triage cards, outreach queue, coordinator queue rows, director drill-down rows, escalation rows; Case-notes section (newest-first, author+category) + Add button in the case drawer;…
ZOOM ATTENDANCE LINK: new 💻 Zoom tab on every event publishes the event to Firestore (cm_events) and produces a shareable link/QR (?zoom=<eventId>). Attendees opening the link get a standalone check-in form — First/Last/Zip/Email required + Poll 1 (age, work…
sms-terms.html2026-07-29 ~ET (time estimated)
v4: §2 How-you-opt-in rewritten for A2P resubmission — voluntary/not-a-condition lead, two explicit opt-in paths (keyword JOIN/START/YES to 929-441-6650; separate optional UNCHECKED checkbox), minor parent/guardian consent, link to new sms-optin.html; opt-in…
sms-privacy.html2026-07-29 ~ET (time estimated)
v4: §2 gains explicit voluntary-consent sentence (keyword opt-in OR separate optional UNCHECKED checkbox; never a condition of enrollment/service) + link to new sms-optin.html; opt-in link added to footer. All carrier-required clauses unchanged.
Sunday, July 26, 2026 3 builds
cm-attendance.html2026-07-26 ~10:40 ET (est. — confirm wall-clock)
HOTFIX: Start Event button dead — pre-existing bug, present in the deployed copy too. The button’s inline handler called a page function named createEvent, but inline-handler scope chains resolve that name to the native document.createEvent method first,…
cm-attendance.html2026-07-26 ~10:15 ET (est. — confirm wall-clock)
Prominent amber "🎁 Incentives App →" button added to header (.incentives-btn → cm-incentives.html), clearly labeled and visually distinct from the hub/events buttons.
cm-attendance.html2026-07-26 ~10:00 ET (est. — confirm wall-clock)
Program list expanded: +LTW, CMSI, Conflict Management, Community Schools, 21st Century, Project Pivot; new "Other (type in…)" option reveals a free-text field (#ne-program-other) whose value is saved as the event program. Reset flow clears/hides the field.…
Friday, July 24, 2026 1 build
lunch-learn.html2026-07-24 08:40 ET (est. — confirm wall-clock)
v2.0 — FULL REWRITE against the real series in NYCID_LunchLearn_Flyer_EDITABLE.pptx. Everything the v1.x page claimed was wrong and is gone: it is ONLINE not 130 Stuyvesant Place, 30 MINUTES not an hour, there is NO LUNCH, the six topics are the "Top 5"…
Thursday, July 23, 2026 8 builds
youth-enrollment.html2026-07-23 14:10 ET (est. — confirm wall-clock)
v1.3 — added a discreet BUILD LABEL to the footer ("v1.3 · 2026-07-23") so a deploy can be VERIFIED from the page itself. WHY: Michael reported "demo" still showing at the top of the live app after v1.2 removed it — with no visible version marker there was no…
nycid-careers-admin.html2026-07-23 14:10 ET (est. — confirm wall-clock)
the top-right nav pill read "← Demos" and pointed at index.html, whose <title> is "NYCID Data Platform · Demo Walkthrough". On a tool that now holds live youth enrollment records with real dates of birth and addresses, labelling the nav "Demos" is wrong.…
youth-enrollment.html2026-07-23 13:35 ET (est. — confirm wall-clock)
v1.2 LIVE — DEMO MODE REMOVED ENTIRELY, not just hidden: the Demo badge, the .flag CSS, the DEMO flag variable and the ?demo=1 submit short-circuit are all gone. I took out the whole path rather than only the badge on purpose — the short-circuit made ?demo=1…
youth-enrollment.html2026-07-23 13:05 ET (est. — confirm wall-clock)
v1.1 — REMOVED the Application ID (OL number) field and the Program picker from Step 1 at Michael's direction; both are now STAFF-ASSIGNED after enrollment. Step 1 is name only. The submitted record still carries applicationId:"" and program:"" so the 🎓 Youth…
nycid-careers-admin.html2026-07-23 13:05 ET (est. — confirm wall-clock)
follows youth-enrollment.html v1.1, which REMOVED the Application ID + Program fields from the youth form (both are staff-assigned now). Two consequential fixes in the 🎓 Youth Enrollments view, nothing else touched: (1) the 5th dial was "Missing Application…
index.html2026-07-23 11:45 ET (est. — confirm wall-clock)
added Community Workforce Enrollment (youth-enrollment.html) featured hot-button at top of hot-bar, and noted the connected enrollment→tracker flow (🎓 Youth Enrollments view) in the NYCID Careers — Live Tracker sub-text. No other button, section or link…
youth-enrollment.html2026-07-23 11:20 ET (est. — confirm wall-clock)
v1.0 initial — youth-facing community workforce ENROLLMENT capture (6 steps): email, DOB + auto Age at Enrollment, FULL SSN (split-storage), Education at Enrollment, Address/City/State/Zip, NYCHA Residency, MAP Neighborhood Residency. Writes…
nycid-careers-admin.html2026-07-23 11:20 ET (est. — confirm wall-clock)
Case Manager MOTIVATIONAL DECK (modeled on cm-case-manager-dashboard): +motivational hero, +weekly-reach ring, caseload coverage bar, student-progress cards (crossing the bridge / crossed to placement / internship-ready), vs-school rank, 🌱→🏆 tier badge —…
yabc-case-management.html2026-07-20 07:08 ET
Restore staffing panel to Case Manager view (full rich CM caseload confirmed intact: outreach queue + wraparound + monthly meetings + full caseload w/ progress bridges); +School Partner passcode gate (code 0908; no NYCID login needed; Enter-to-submit; demo…
yabc-case-management.html2026-07-20 07:08 ET
Full reconcile w/ other chat: budgetPanel -> SYEP-only (drop 4-program table); +Staff tab (gantry+router+viewStaff); staff removed from Director & Coordinator (already off CM); budget under new “Program Highlights” header at bottom of Director; staffing…
Move budget panel to BOTTOM of Director dashboard; +staffing panel on School Partner dashboard (copy updated to “no internal budget”); remove staffing panel from Case Manager dashboard
+signature panel (draw-to-sign modal on contract); +"Not sure yet" post-secondary option; fix whole-page flicker (preserve scroll except on view change)
yabc-case-management.html2026-07-18 07:40 ET
Scale demo to 435 students (real generated roster; named demo students kept); 6 real SI YABC advocate counselors, 75 caseload each (one 60 to total 435)
yabc-case-management.html2026-07-18 07:40 ET
+School Partner view (Director outcomes mirror, school-scoped, no staffing/budget); real SI YABC staffing from org chart; Budget allocation baseline (CPO->Director, awaiting real $ figures)
yabc-case-management.html2026-07-18 06:42 ET
Enlarge header YABC logo (48->72px, 60px on mobile)
yabc-case-management.html2026-07-18 06:42 ET
Real YABC logo embedded (header); NYCID logo + "Part of the NYCID Solutions App" footer; Staffing status panel on Director/Coordinator/Case Manager
yabc-case-management.html2026-07-18 06:42 ET
+Touch Point 3 Wraparound Services (mental health, insurance, housing, food, SNAP/Medicaid/SS): student Support pill, Director summary, CM referrals
yabc-case-management.html2026-07-18 06:42 ET
+Contact pill (Advocate, Internship Coordinator, School Guidance, Mr. Noto); +guided Demo tour (?demo=1 or Demo button)
yabc-case-management.html2026-07-18 06:42 ET
Mobile-first: Student + Intern portals now pill-navigated single shadow-box (no long scroll); contract scrolls in-box; 7 steps as accordion; big tap targets
yabc-case-management.html2026-07-18 06:42 ET
Student Portal (contract-first, Ready to Start YABC) gating into Student Intern Portal at enrolled+90%; 90% internship gate; seed re-tuned
yabc-case-management.html2026-07-18 06:42 ET
+Internship Coordinator dashboard (intake->Paycom pipeline); motivational heroes on Director+Coordinator; real logo via YABC.png; SYEP application handoff hook
yabc-case-management.html2026-07-18 06:42 ET
New YABC lane: Director + Case Manager + Intern + Rolodex demo, touch-point driven (WBL + Post-Secondary), attendance-outreach engine, suspension-bridge process flow
Thursday, July 16, 2026 12 builds
cm-cover-letter.html2026-07-16 14:50 ET
v1.3 — removed the Firestore read-probe. cover_letters read is now gated to signed-in @nycid.org (the docs hold a signature image), so the probe would have permission-denied for every applicant and falsely blocked submit with "ask Michael to deploy the rules"…
cm-cpo-walkthrough.html2026-07-16 14:35 ET
v1.1 — FIX: deep links dead when the walkthrough is opened from a downloaded copy (relative href had no sibling dashboard) or when the board lives on another host. Added a Board URL bar that rewrites all 7 links at once (?base= param, remembered in…
cm-cover-letter.html2026-07-16 14:15 ET
v1.2 — removed the NYCID letterhead from the letter preview/print. The letter is FROM the applicant, not from NYCID; org letterhead on an inbound cover letter read as if NYCID wrote it. Letter now opens on the date. Sender identity still carried by the…
cm-cover-letter.html2026-07-16 14:00 ET
v1.1 — Step 1 is now a typed full-name + email field; roster picker/datalist removed (nobody hunts for themselves in a list). Silent exact-name match against the instructor roster still attaches staffId/title/program for HR attribution when it matches, with…
index.html2026-07-16 13:40 ET
added Quick Cover Letter (cm-cover-letter.html) featured hot-button at top of hot-bar
cm-cover-letter.html2026-07-16 13:40 ET
v1.0 NEW — Quick Cover Letter portal for instructors/new hires: (1) find your name from the 29-instructor roster pulled from cm-staff-master.html (+ "not listed" manual entry), (2) pick the position, (3) auto-written statement w/ 3 tone variants + optional…
index.html2026-07-16 13:05 ET
added CPO Walkthrough (cm-cpo-walkthrough.html) featured hot-button above the Case Manager Dashboard
cm-cpo-walkthrough.html2026-07-16 13:05 ET
v1.0 NEW — presenter-facing guided demo for the CPO: 7 scripted stops, each with what-to-click / what-to-say / the real number behind it, deep-linked into cm-case-manager-dashboard.html via ?cm=&tpl=&tab=&filter=&sid=&demo=1. Includes a REAL-vs-DEMO honesty…
cm-case-manager-dashboard.html2026-07-16 13:05 ET
v2.1 — URL deep-links (?cm= &tpl= &tab= &filter= &sid= &demo=1) so the CPO walkthrough can drive the board into an exact state; controls reflect the incoming params. No logic change otherwise.
cm-case-manager-dashboard.html2026-07-16 12:35 ET
v2.0 CARD REBUILD — Placement-Command-Center card grid (one card per youth, red-pill triage sorted to top, click to open full case), NEEDS ATTENTION banner, motivation deck (weekly goal ring, streak, coverage %, tier, vs-site-average), Today's Outreach queue…
index.html2026-07-16 11:30 ET
added Case Manager Dashboard (cm-case-manager-dashboard.html) featured hot-button at top of hot-bar
cm-case-manager-dashboard.html2026-07-16 11:30 ET
v1.0 NEW — operational case-manager surface: real 727-student caseload from NYCID_Encounter_2-26-26 (28 CMs / 6 sites), 6 touchpoint types, persisted notes + touchpoints (cm_touchpoints / cm_case_notes), 4 program templates (Community School / Concord / YABC…
Thursday, July 9, 2026 10 builds
index.html2026-07-09 20:06 ET
hot-button renamed NYCID Solutions — Community Launch, href → nycid-solutions.html
nycid-solutions.html2026-07-09 20:02 ET
RENAMED from nycid-connect.html: app branded "NYCID Solutions" throughout; old logo replaced with 2021 transparent logos (verified alpha) — white-lettering on dark theme, dark-lettering on light theme; NEW dark/light toggle (persists, phone mocks + flyer stay…
device-inventory.html2026-07-09 19:47 ET
Reframed section 2 as "Find your device — or enter a new serial" (new serials expected to miss the register; add-new form is the normal path), button now "Look up / Add", copy aligned in Add-a-new-device card
device-inventory.html2026-07-09 19:40 ET
NEW "Add a new device" card: illustrated iPhone (Settings>General>About) + Android (Settings>About phone) serial-number guides w/ highlighted Serial row, laptop tips, and a jump-to-lookup button; existing lookup/claim/manual flows untouched
index.html2026-07-09 19:28 ET
added NYCID Connect — Community Launch featured hot-button (nycid-connect.html) at top of hot-bar
nycid-solutions.html2026-07-09 19:22 ET
Wired SMS policy links for partner review: consent Privacy/Terms in the phone mock now link to sms-privacy.html / sms-terms.html, new policy bullet in flyer notes, footer links added; both compliance pages (v3, 2026-07-06 builds) folded into the suite
nycid-solutions.html2026-07-09 19:14 ET
Added partnership logo placeholder slots: dashed logo boxes on the three partner cards (NYCID logo live, SBS + Workforce1 placeholders) + "In partnership with" logo strip on the flyer
nycid-solutions.html2026-07-09 19:05 ET
NEW: NYCID Solutions community opt-in launch renderings — phone mock screens (opt-in / confirmation / updates feed), Lunch & Learn series (SBS + Workforce1 partnership, Hiring Hall late Sept), social flyer preview w/ placeholder Bitly QR + Text JOIN to (929)…
worksite-monitor-assessment.html2026-07-09 15:05 ET
BIGGER BACK BUTTONS + DEMO LINKS REMOVED (for Steven). (1) Top-bar back control is now a labeled "← Back" pill (was a 44px bare arrow): 54px min-height, 1.08rem/800, blue-bordered, links to worksite-monitor-app.html as before. (2) .switchdoc buttons ("← Open…
worksite-monitor-assessment.html2026-07-09 09:55 ET
WORKSITE & SUPERVISOR NOW PULLS FROM THE MASTER INDEX. Root cause: openAssessment only read worksite_profiles and tried field names the Master Roster Importer never writes. The 43-col roster schema stores the street in streetAddress/roomFloor/city/state (NOT…
Monday, July 6, 2026 8 builds
sms-terms.html2026-07-06 16:40 ET
v3: scope broadened to match the submitted A2P campaign description — NYCID Solutions App / all NYCID operations (SYEP + community events, free services, volunteer opportunities, date changes, emergency services, conflict & crisis management), opt-in covers…
sms-privacy.html2026-07-06 16:40 ET
v3: scope broadened to match the submitted A2P campaign description — NYCID Solutions App / all NYCID operations (SYEP + community events, free services, volunteer opportunities, date changes, emergency services, conflict & crisis management), opt-in covers…
worksite-monitor-assessment.html2026-07-06 16:39 ET
ISSUE 2 — REMOVED the on-site Director signature pad. SIG_ROLES now holds only monitorSig (Provider Monitor) + supervisorSig (Worksite Supervisor); the "SYEP/WLG Program Director" pad is gone from the on-site collection. In its place renderSigs appends a…
sms-terms.html2026-07-06 16:31 ET
v2: NYCID logo (base64-embedded, white chip in masthead) + main office number corrected to (718) 815-4557 everywhere. Still static, single self-contained file, no JS/Firebase.
sms-privacy.html2026-07-06 16:31 ET
v2: NYCID logo (base64-embedded, white chip in masthead) + main office number corrected to (718) 815-4557 everywhere. Still static, single self-contained file, no JS/Firebase.
sms-terms.html2026-07-06 16:22 ET
NEW standalone SMS Terms & Conditions page for Twilio A2P 10DLC campaign registration — program description, frequency, rates, STOP/HELP, carrier liability, support contact. Static, no JS, no Firebase. Companion: sms-privacy.html. Deploy both to…
sms-privacy.html2026-07-06 16:22 ET
NEW standalone SMS Privacy Policy page for Twilio A2P 10DLC campaign registration — carries the three carrier-required clauses (mobile-number non-sharing, message frequency, message & data rates) in highlighted callouts. Static, no JS, no Firebase. Companion:…
worksite-monitor-assessment.html2026-07-06 13:27 ET
RE-ISSUE of the verified-working file for redeploy. Body byte-identical to uploaded copy; export true-render confirmed FULLY pre-filled (site page + interviews page). Use to overwrite any drifted/blank live copy. Back-to-hub link already present.
Saturday, July 4, 2026 1 build
worksite-monitor-assessment.html2026-07-04 08:10 ET
Checkbox calibration (true-render verified): draw descriptive-check groups (facility, recordkeeping, modality, safe, program-activities, interview modes, follow-up) by rect AFTER flatten so duplicate Check BoxNN overlays no longer blank them; Overall Report…
Friday, July 3, 2026 2 builds
worksite-monitor-assessment.html2026-07-03 15:53 ET
EXACT-PDF EXPORT (BETA — checkbox calibration pending) — "⬇ Export official SYEP/WLG PDF" on the Sign tab fills the REAL fillable AcroForm (verified: 8pp, 612×792, 229 fields) in-browser via pdf-lib. VERIFIED via true render of the actual export: all TEXT…
worksite-monitor-assessment.html2026-07-03 15:53 ET
Added PARTICIPANT INTERVIEWS tab (report p6: Completed + Internship modality; Interview #1 & #2 with DOB / Last name / Work type + Q3–Q12; Q6 = Paper/Online, rest Yes/No; comments box) stored in DOC.interview (existing assessment wins, else blank; saved…
Thursday, June 25, 2026 3 builds
index.html2026-06-25 8:10 AM ET (est. — confirm wall-clock)
Removed the "Concord HS Pilot" badge from the hero title + the "Concord HS pilot ·" mention from the footer line. No other content changed.
cm-onboarding-hub.html2026-06-25 7:40 AM ET (est. — confirm wall-clock)
(1) WORKFORCE INITIATIVES TRACK NOW LIVE — full Paycom-based WFI onboarding checklist (6 phases / 24 steps: Offer, Hire Form & Paycom, Identity & Documents, Fingerprints & Clearances, Training, Finalization) so SYEP·WFI hires onboard against a real flow. SYEP…
nycid-careers-admin.html2026-06-25 7:15 AM ET (est. — confirm wall-clock)
UNIFIED LIVE TRACKER: now reads BOTH career_applications (NYCID) AND syep_career_applications (SYEP), normalized + merged into ONE live list with a per-row SOURCE badge (NYCID / SYEP·WFI) + a Source filter; SYEP rows bucket under Workforce Initiatives. Status…
Wednesday, June 24, 2026 5 builds
nycid-careers-admin.html2026-06-24 9:30 PM ET (est. — confirm wall-clock)
DARK/LIGHT THEME TOGGLE in the header (🌙/☀️ button): full dark palette via :root[data-theme=dark] var remap + dark-aware callout overrides; choice persists in localStorage key "nycid_theme" (shared so it can go app-wide) + applied before paint (no flash).…
cm-onboarding-hub.html2026-06-24 9:30 PM ET (est. — confirm wall-clock)
RESTORED manual add-a-hire (v1 "type a name and go", now Firestore-synced via onboarding_progress source:'manual') so the Command Center is usable BEFORE anyone is hired through Careers — this was the regression. Roster now MERGES THREE live sources: NYCID…
syep-careers.html2026-06-24 8:55 PM ET
COLOR HARDENING: added color-scheme:dark so native form controls (select popups, date pickers) are dark-aware on this dark theme. <option> text was already themed. No layout/logic change.
syep-careers-admin.html2026-06-24 8:55 PM ET
COLOR HARDENING: added color-scheme:dark + explicit themed <select>/<option> rules so native control popups never render dark/black text on the dark theme. No layout/logic change.
nycid-careers-admin.html2026-06-24 8:33 PM ET
WIRE hire->onboarding chain: marking a candidate Hired now ALSO stamps stage:'onboarding' + onboardingAt (both already whitelisted) so they flow straight into Onboarding Command, and the expanded row surfaces a "🚀 Open in Onboarding Command ↗" deep-link…
Tuesday, June 23, 2026 2 builds
nycid-careers.html2026-06-23 06:23 ET
NEW master NYCID Careers portal: 4 department pathways (org-chart aligned), unified multi-step hiring flow, SYEP deep-link sub-category, Firestore+mail+Netlify submit, logo-as-favicon
nycid-careers-admin.html2026-06-23 06:23 ET
NEW NYCID Careers Live Tracker — adapted from syep-careers-admin.html: reads career_applications (all departments/programs), LIGHT on-brand NYCID palette (fixes the "too dark" pages), dept/program columns + dept filter, status workflow, reviewer notes, CSV…
Friday, June 19, 2026 4 builds
worksite-monitor-assessment.html2026-06-19 11:11 ET
REDUCED SCROLLING: the long form is now split into 4 sticky tabs — Site · Facility · Review · Sign — so each is a short, no-scroll panel; tab bar pinned under the header, Save bar pinned to the bottom (reachable from any tab). Added a persistent "← Worksite…
worksite-monitor-assessment.html2026-06-19 10:05 ET
Reformatted for a 10-INCH TABLET (primary device): wider 940px container so the form fills landscape, larger touch targets (buttons ≥50px, Yes/No + checkboxes ≥42px, inputs/selects ≥48px, taller signature pads), roomier cards. Deep-link change: opening with…
worksite-monitor-assessment.html2026-06-19 09:51 ET
New assessments now DEFAULT to the CVS audit-passing answer pattern (facility + recordkeeping all set, operations + program activities all Yes, safe=Yes, standard positive summary, follow-up=No) via a DEFAULTS const applied for any worksite with no saved…
worksite-monitor-assessment.html2026-06-19 08:28 ET
NEW monitor tool — the SYEP/WLG Worksite Assessment Report (weekly monitor visit), built on the SAME signed_documents pattern as referral/week3/week6. Writes signed_documents/{wsid}_visit{N}_assessment (type='worksite_assessment', worksiteId) — already…
v1.0 one-time seed of asset_register (779 rows, idempotent merge); live device_assignments table w/ filters, stats, CSV export
Thursday, June 4, 2026 4 builds
cm-otps-allocator.html2026-06-04 22:30 ET
v1.0 — Department Head splits a program's OTPS into per-director sub-budgets; writes to program_otps_allocations; directors see allocations on their dashboard
syep-careers-admin.html2026-06-04 20:10 ET
v1.0 initial — live tracker for syep_career_applications (external PBL Instructor applications), with status workflow + reviewer notes + CSV export
syep-careers.html2026-06-04 19:45 ET
add mail-collection write so Michael gets an email on every application (Netlify-independent path via existing Trigger Email extension)
cm-incentives.html2026-06-04 19:10 ET
v1.1 add optional 2nd incentive (full type picker) for dual-distribution scenarios
1570 stamps across 162 files · generated 2026-10-30 14:30 ET