{"componentChunkName":"component---src-templates-blog-post-js","path":"/blog/2026-06-30-june-release/","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://avniproject.org","twitterHandle":"@avniproject"}},"post":{"id":"b794eb83-991b-5bc1-b98b-a1980b049a2d","html":"<h2>On-device AI, fully offline</h2>\n<div style=\"padding: 40px; margin-bottom: 20px; background: #ffffff;\">\n    <p style=\"margin: 12px 0; line-height: 1.8;\">The Android app can now run AI models directly on the phone, with no internet needed. A form can trigger a model on a photo a field worker just took and <strong>automatically fill in the result</strong> — even inside repeating sections of a form.</p>\n    <p style=\"margin: 12px 0; line-height: 1.8;\">Less manual entry, fewer errors, in places where connectivity can't be relied on.</p>\n    <p style=\"margin-top: 16px; font-size: 13px; font-weight: 600;\"><a href=\"https://github.com/avniproject/avni-client/pull/1929\" target=\"_blank\" style=\"color: #0066cc; text-decoration: none;\">→ View technical details</a></p>\n</div>\n<div style=\"border: none; height: 2px; background: linear-gradient(90deg, transparent, #e0e0e0, transparent); margin: 40px 0;\"></div>\n<h2>Mark attendance directly from the dashboard</h2>\n<div style=\"padding: 40px; margin-bottom: 20px; background: #ffffff;\">\n    <p style=\"margin: 12px 0; line-height: 1.8;\">App Designer now lets you add a <strong>\"Mark attendance\" card</strong> to any dashboard. Tapping it takes a field worker straight into the attendance sheet — no extra navigation needed.</p>\n    <p style=\"margin: 12px 0; line-height: 1.8;\">Administrators pick the Group Subject Type and Attendance Type when setting up the card, keeping it flexible for different programs.</p>\n    <p style=\"margin-top: 16px; font-size: 13px; font-weight: 600;\"><a href=\"https://github.com/avniproject/avni-client/issues/1936\" target=\"_blank\" style=\"color: #0066cc; text-decoration: none;\">→ View technical details</a></p>\n</div>\n<div style=\"border: none; height: 2px; background: linear-gradient(90deg, transparent, #e0e0e0, transparent); margin: 40px 0;\"></div>\n<h2>Attendance refinements</h2>\n<div style=\"padding: 40px; margin-bottom: 20px; background: #ffffff;\">\n    <p style=\"margin: 12px 0; line-height: 1.8;\">Several smaller improvements to the attendance flow have landed:</p>\n    <ul style=\"margin: 12px 0; margin-left: 20px; line-height: 1.8;\">\n        <li><strong>Multiple absence reasons</strong> can now be selected at once</li>\n        <li>A separate <strong>\"needs follow-up\" checkbox</strong>, independent of the absence reason</li>\n        <li>A clearer reason shown when <strong>someone is removed from a group</strong></li>\n        <li><strong>Student names sorted alphabetically</strong> in the attendance view</li>\n        <li>A tidier attendance list overall</li>\n    </ul>\n    <p style=\"margin-top: 16px; font-size: 13px; font-weight: 600;\"><a href=\"https://github.com/avniproject/avni-server/issues/1002\" target=\"_blank\" style=\"color: #0066cc; text-decoration: none;\">→ View technical details</a></p>\n</div>\n<div style=\"border: none; height: 2px; background: linear-gradient(90deg, transparent, #e0e0e0, transparent); margin: 40px 0;\"></div>\n<h2>Import cancelled visits and exited enrolments</h2>\n<div style=\"padding: 40px; margin-bottom: 20px; background: #ffffff;\">\n    <p style=\"margin: 12px 0; line-height: 1.8;\">Two new import modes let you bring <strong>historical visit cancellations</strong> and <strong>enrolment exits</strong> into Avni through bulk upload, instead of entering them one by one. Particularly useful when migrating from paper or a legacy system.</p>\n    <p style=\"margin-top: 16px; font-size: 13px; font-weight: 600;\"><a href=\"https://github.com/avniproject/avni-server/issues/988\" target=\"_blank\" style=\"color: #0066cc; text-decoration: none;\">→ View technical details</a></p>\n</div>\n<div style=\"border: none; height: 2px; background: linear-gradient(90deg, transparent, #e0e0e0, transparent); margin: 40px 0;\"></div>\n<h2>Pull in read-only photos and files from earlier forms</h2>\n<div style=\"padding: 40px; margin-bottom: 20px; background: #ffffff;\">\n    <p style=\"margin: 12px 0; line-height: 1.8;\">A form can now <strong>display a photo or document uploaded in an earlier form</strong> — the same way it already surfaces other read-only data. Useful when a later step in a workflow needs to reference something captured earlier.</p>\n    <p style=\"margin-top: 16px; font-size: 13px; font-weight: 600;\"><a href=\"https://github.com/avniproject/avni-product/issues/1866\" target=\"_blank\" style=\"color: #0066cc; text-decoration: none;\">→ View technical details</a></p>\n</div>\n<div style=\"border: none; height: 2px; background: linear-gradient(90deg, transparent, #e0e0e0, transparent); margin: 40px 0;\"></div>\n<h2>Group-level permission cascading</h2>\n<div style=\"padding: 40px; margin-bottom: 20px; background: #ffffff;\">\n    <p style=\"margin: 12px 0; line-height: 1.8;\">Permissions set at a group level now <strong>cascade down automatically</strong>. Admins no longer need to configure access for every sub-group individually — saving significant setup time for large deployments.</p>\n    <p style=\"margin-top: 16px; font-size: 13px; font-weight: 600;\"><a href=\"https://github.com/avniproject/avni-webapp/issues/1764\" target=\"_blank\" style=\"color: #0066cc; text-decoration: none;\">→ View technical details</a></p>\n</div>\n<hr>\n<h2>Minor enhancements</h2>\n<div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 20px;\">\n<div style=\"padding: 20px; border: 1px solid #e5e7eb; border-radius: 8px;\">\n<p style=\"font-weight: 700; margin: 0 0 8px 0;\">Do visit card shows multiple enrolments</p>\n<p style=\"margin: 0; line-height: 1.7; color: #374151; font-size: 14px;\">Individuals enrolled in more than one program now appear correctly in the Do visit card. (<a href=\"https://github.com/avniproject/avni-client/issues/1937\" target=\"_blank\" style=\"color: #0066cc; font-weight: 500;\">avni-client#1937</a>)</p>\n</div>\n<div style=\"padding: 20px; border: 1px solid #e5e7eb; border-radius: 8px;\">\n<p style=\"font-weight: 700; margin: 0 0 8px 0;\">Registration decisions visible on web</p>\n<p style=\"margin: 0; line-height: 1.7; color: #374151; font-size: 14px;\">Admins can now see registration decisions directly in the Data Entry App. (<a href=\"https://github.com/avniproject/avni-webapp/issues/1554\" target=\"_blank\" style=\"color: #0066cc; font-weight: 500;\">avni-webapp#1554</a>)</p>\n</div>\n<div style=\"padding: 20px; border: 1px solid #e5e7eb; border-radius: 8px;\">\n<p style=\"font-weight: 700; margin: 0 0 8px 0;\">Duplicate syncs prevented</p>\n<p style=\"margin: 0; line-height: 1.7; color: #374151; font-size: 14px;\">Tapping sync multiple times no longer triggers duplicate manual sync operations. (<a href=\"https://github.com/avniproject/avni-client/issues/1792\" target=\"_blank\" style=\"color: #0066cc; font-weight: 500;\">avni-client#1792</a>)</p>\n</div>\n<div style=\"padding: 20px; border: 1px solid #e5e7eb; border-radius: 8px;\">\n<p style=\"font-weight: 700; margin: 0 0 8px 0;\">CSV error files easier to download</p>\n<p style=\"margin: 0; line-height: 1.7; color: #374151; font-size: 14px;\">Analytics permission is no longer needed to download error files from a bulk upload. (<a href=\"https://github.com/avniproject/avni-server/issues/999\" target=\"_blank\" style=\"color: #0066cc; font-weight: 500;\">avni-server#999</a>)</p>\n</div>\n</div>\n<hr>\n<h2>Performance improvements</h2>\n<div style=\"padding: 40px; margin-bottom: 20px; background: #ffffff;\">\n<h3>Subject search is fast again</h3>\n<p>A slow database query was causing subject searches with filters to take 50–70 seconds — the root cause behind the response-time slowdown some teams noticed in May. It's now fixed. (<a href=\"https://github.com/avniproject/avni-server/issues/1005\" target=\"_blank\" style=\"color: #0066cc; font-weight: 500;\">avni-server#1005</a>)</p>\n<h3>One less filter, one faster tap</h3>\n<p>The individual filter on the \"Do visit\" action card has been removed, making that flow quicker to use. (<a href=\"https://github.com/avniproject/avni-client/issues/1911\" target=\"_blank\" style=\"color: #0066cc; font-weight: 500;\">avni-client#1911</a>)</p>\n</div>\n<hr>\n<h3>Share Feedback and Stay Updated!</h3>\n<p>Join our <a href=\"https://discord.gg/VRZQYdcyuG\">Avni community on Discord</a> to share your thoughts, ask questions, and get the latest updates.</p>\n<p>For the complete technical details, see the release notes on GitHub.</p>\n<p>Need a walkthrough or have questions? Feel free to <a href=\"https://avniproject.org/\">schedule a demo call here</a>.</p>","frontmatter":{"date":"June 30, 2026","title":"Avni June Release","author":"Avni Team","description":"On-device AI for field workers, attendance flow improvements, and a faster data pipeline. Here's what changed and what it means for you.","tags":["release"],"image":null},"fields":{"slug":"/blog/2026-06-30-june-release/"}}},"pageContext":{"id":"b794eb83-991b-5bc1-b98b-a1980b049a2d"}},"staticQueryHashes":["1175525803","4080856488"]}