Stop HTML-escaping the package title in the four HR subjects
EmailTemplateService renders a template's SUBJECT and BODY from ONE variable map, and all four canonical HR subjects carry {{packageTitle}} — which LegalNotific...
Four canonical HR legal-package templates
hr.package_assigned, hr.package_reminder, hr.package_voided and hr.package_completed, as {json,html} pairs plus four CANONICAL_KEYS entries. The CONSTANT is no...
Let a caller own the realtime announcement of the message it is still building
undaMessage ilitangaza kila ujumbe mpya juu ya somo la wakati halisi wa kikao Mstari uliokolewa - ndani ya shughuli ya mwombaji, kabla ya mwombaji kuandika choc...
Haki za binadamu kwa mujibu wa Human Resources
Vichujio vya / h vilikuwa vimefungwa popote ambapo haki ya HR ya awali ilitokea kuwa AU-term katika mwisho wa mbele: Kuhudhuria kufunguliwa juu ya VIEW SCHEDULE...
Expose the content-addressed store so chat attachments can dedup
Chat attachments never went through the hashing pipeline — they wrote a private "<imgId>/<fileName>" object per upload, so the same file attached three times oc...
Store every image in one bucket so dedup means one copy
Association is metadata, not a storage boundary. Each ImageAssocType used to name its own MinIO bucket, which contradicted the hashing pipeline: dedup is scoped...
Copy a deduplicated document's objects into its own association bucket
Object storage is bucket-per-association (every reader resolves img.getAssocId().getBucket()), but deduplication is scoped ORG-wide or GLOBALly and so crosses a...
Let sync progress and domain state be announced instead of polled
Two hooks for the push conversion in SecurityService, where several platform screens refreshed on timers because there was no way to tell them anything. Retail...
Make the audience FKs and the attested wording actually hold
Five defects from the whole-branch review, all in the evidence path. The audience FKs did not cascade. cascade = CascadeType.DETACH is a persistence-context ca...
Record package attestation as append-only evidence
The package-level 'I have read and agree' is a different legal instrument from the E-SIGN consent to transact and from any per-document signature, and it is the...
Add per-member assignments and per-document progress
The document row is the join that makes N e-sign envelopes read as one package. The badge count comes off the assignment status, not e-sign status: recipient st...
Freeze pakiti maudhui katika matoleo yasiyobadilika
Pins ImgDat blob id na SHA-256 yake, si tu imgId - Docs kuokoa Inachagua Img sawa kwenye bytes mpya, kwa hivyo imgId peke yake ingeruhusu wanachama wawili wa is...
Target a package at departments, job types or named members
Shaped on SystemUserAccess. Adds the audience resolver to TeamMemberRepo, which was an empty interface; the ACTIVE + recordState predicate is what keeps termina...
Add the legal package template entities
A package is an ordered set of binders plus an audience. Binder references are soft ids because binders are user-deletable and cascade their items. The attestat...
Narrow binder visibility to one document collection
Replaces findVisibleToMember with a scoped variant and drops the two unreferenced finders that sorted by the dead date_updated column.
Kutoa hati ya ukusanyaji ambayo ni
Binders hakuwa na scoping assoc, hivyo kila DocManager alitoa sawa duniani kote. bwawa kwa kila mwanachama na binder kujengwa chini ya Masoko inaweza kujazwa na...
Map the metadata array columns as Java arrays, not List
Both entities declared their array columns as List<T> under an explicit @JdbcTypeCode(SqlTypes.ARRAY). On Hibernate 6.2.13 that combination resolves the array's...
Record the uploader on a deduplicated document
registerExistingDocument built its Img without .createdByMember(member), which the normal upload path sets. Every document registered through dedup therefore la...
Targeted conversion updates, so a detached ImgDat save cannot abort conversion
Conversion runs on a virtual thread against a DETACHED ImgDat. save() therefore merges an instance whose LAZY `images` collection is no longer the managed one, ...
Put unowned intake leads into the auto-assignment pool
Every lead-creation path funnels through LeadService.createLead — CSV import, the lead-intake endpoints and their scheduled DaemonService job, the public webina...
HR RESOURCE assoc aina ya maktaba ya rasilimali ya HR
Kichupo cha Rasilimali /hr kinachapisha vitabu, sera, fomu na kumbukumbu vifaa kwa timu nzima, na hakuna aina ya assoc iliyopo inafaa: MY DOCS ni Eneo la mtu mw...
Pin the contact-point and linker invariants, and drop timeline count queries
The two classes the whole feature rests on had no tests, and all three properties they guarantee fail silently in production: an unmatched call is indistinguish...
Make communication source ids natural keys, not row ids
A source id derived from the source row's generated UUID is only stable if that row commits. The VOIP ingest paths write inside the sync transaction while LeadC...
Point-in-time contact-point index and lead communication links
Adds the spine the lead Communications tab reads from. LEAD_CONTACT_POINTS records every phone number and e-mail a lead has ever had, as a window with activeFr...
Utawala wa Umma wa demo-request risasi kukamata primitives
A visitor who fills in the marketing site's demo form but never books a time left no trace: the lead was only ever written inside the booking transaction. Captu...
MICROSOFT_TEAMS provider type
Appends MICROSOFT_TEAMS to VoipProviderType. The enum persists as ORDINAL on **************** so the position is load-bearing and the constant goes last; the cl...
Mkutano wa mfano kama mtoa huduma
Kamo Meets was the only possible backend: OrgMeetConfig was a flat Meet settings bag and a MeetingRecord held nothing but a room name. This adds the schema for ...
Soma ubora wa marekebisho na matoleo ya mwongozo
An assembled price is a base cell PLUS the adjustments stacked onto it, so judging only the cell judges half the number: a cleanly-read 99.875 with a misread -1...
Publish the agent's cell when it is the only number they have
An agent's number can live in any of three columns and commonly sits in only one: e_phone_number on the team member, m_phone_number and m_cell_number on the mem...
Per-cell extraction confidence + eligibility-matrix provenance
Two gaps in the confidence model, both on the money path. PER-CELL. A sheet-wide floor is the wrong grain for judging one price: a single badly-read coupon dra...
Publish every way to reach the agent, not just a name
Name and title alone tell a customer who owns the quote but not how to ask about it. The block now carries email and phone, resolved by the caller — the primary...
Extraction confidence on the catalog spine + auto sign-off basis
A price is only as trustworthy as the sheet it was assembled from, and nothing on the pricing path carried that signal: confidence existed ONLY on pre-promotion...
The opportunity templates own their own markup again
The company line was changed to arrive as a complete <p> element from the sender, so an absent company would not leave an empty paragraph. That was the wrong tr...
Page and filter an account's quotes in the database
An account view needs every quote across all its leads. Loading them to render a page degrades every month the account is in use, and any total shown would only...
Name the lead's assigned agent on the document
Kichwa cha barua hutambua org, lakini mteja aliye na swali kuhusu mahitaji ya bei mtu ambaye ana uhusiano. Orodha hiyo sasa inashikiliwa na maafisa wa usalama –...
Reassignable primary agent, and nine notification templates
An approver can hand an opportunity — and the commission with it — to a different agent. PRIMARY_AGENT_MEMBER_ID is who holds it now; REQUESTED_BY_MEMBER_ID is ...
The overall commission on a sale, and market defaults for it
Fursa iliyohifadhiwa sasa inarekodi kile ambacho shirika hulipa nje ya uuzaji Kikundi cha maombi na kikundi ambacho wanashirikiana nao - sufuria ya per-colleagu...
Kubeba vitambulisho vya kuongoza kama kamba - idadi ya JS inawapotosha kimya
Alama zinazoongoza ni thamani ya CockroachDB ya kipekee rowid () hapo juu. Picha zote na Wizara ya Mambo ya Ndani ya Nchi. ... 1189175700550222222 inakuwa 11891...
Put the client's details on the document, read off the lead
Dropping the quote's own addressee fields left the document with nothing to say about the client: customerName only ever came from a linked Account, which lead-...
Quotes belong to leads, configured per market
Quotes were a commerce-pipeline artifact, which put them beside orders and carts rather than beside the client they are for. They now hang off the lead: the mar...
Entities for time-boxed lead opportunity reservations
An agent stakes an exclusive claim on closing a lead for a bounded window; an approver grants, edits or denies it, and colleagues can be offered a share of the ...
Tuma barua pepe kwa mtu ambaye bado si akaunti
The addressee was derived solely from a linked Account, so any quote raised for a prospect — which is most of them — printed a blank "Prepared for" line and the...
Resolve the org's real hostname and logo extension for the letterhead
Correcting the theme URL was necessary but not sufficient — the logo still did not render, for two further reasons found in the live data. org_domains stores a...
Weka alama ya barua kwenye njia ndoo ya mandhari kwa kweli hutumikia
The logo URL was built as **************** which that host answers with a 308 rather than an image — so every quote, sent as well as previewed, silently fell ba...
PHI_ACCESS_ALERT canonical template
SecurityService's hourly review of phi_access_log needs somewhere to send what it finds. Rather than invent a channel it uses the existing transactional-email r...
Sauti ya sauti kwa ajili ya mabadiliko ya mpaka wa kufuata yenyewe
Inaongeza PhiResourceType.ORGANIZATION na PhiAccessKind.CONFIGURE ili kugeuka Shirika.handlesPhi juu au mbali inaweza kurekodiwa kama ilivyo. Kila aina ya rasi...
Shiriki azimio la barua kati ya ukurasa wa umma na wafanyakazi
The staff preview has to show exactly what the customer receives, so branding, the document term and the link host now resolve in one place. Two copies would dr...
Pin option FK column definitions so they do not inherit gen_random_uuid()
Hibernate copies the referenced id's columnDefinition onto a new @JoinColumn, so quote_id and option_id were both created DEFAULT gen_random_uuid(). An insert t...
Multi-option quotes with per-option comparison totals
A quote can now present several mutually-exclusive ways to buy — monthly, annual, three-year — instead of forcing three separate documents that drift apart the ...
WORM pricing sign-off entity (mlos_pricing_signoff)
Mshauri wa mwisho tu APPROVE / REJECT hukumu juu ya matokeo ya bei ya waliohifadhiwa. @PreUpdate throws (kubadilisha ni mstari mpya). Orodha ya + 4 (org, run, M...
Je, unaona nini kuhusu usafiri?
Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.