SShortSingh.
Back to feed

How a branch checkout silently deleted a pipeline's notifier for days

0
·1 views

A software developer discovered that a long-running daily pipeline had silently stopped sending reports after a branch checkout step removed the notifier script from the working tree. The failure passed initial review because the bug only surfaced the day after deployment, once the target branch already existed. A reader's suggestion to run a deployed canary probe against production — rather than relying on source-control declarations — exposed the issue within minutes of manual testing. The root cause was a git workflow where checking out a single-file branch wiped all other repo files, including the script needed in a subsequent step. The developer recommends moving notifications before any push step, and periodically triggering scheduled jobs by hand to catch failures no static file check can reveal.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Developer explains why Google Trends scrapers silently fail and how to fix them

A developer investigated why Google Trends scrapers frequently return empty results despite running successfully and charging users. The core issue is that Google's internal Trends endpoint aggressively rate-limits requests from datacenter IPs, issuing silent rejections rather than clear error messages. A secondary bug stemmed from an inconsistent XSSI guard prefix in Google's JSON responses, where a hardcoded comma separator failed against the real endpoint, which uses a bare newline instead. The developer resolved both issues by routing requests through residential proxies with browser warm-up and implementing session rotation with exponential backoff on failures. The fix was packaged as an Apify scraper that only logs output — and only bills — when real data is actually returned.

0
ProgrammingDEV Community ·

Beyond Prompts: How Context and Harness Engineering Power Reliable AI Agents

As developers build more complex LLM-based applications, simple prompt engineering is proving insufficient for tasks that require understanding codebases, running tests, and recovering from errors. Context engineering addresses what information a model should receive at any given moment, treating the context window as a finite resource that must be carefully curated rather than flooded with data. Techniques like RAG, memory systems, and just-in-time retrieval are all considered context-engineering strategies aimed at maximising signal over volume. Harness engineering goes a step further by providing the surrounding infrastructure — including tool execution, state management, permissions, validation, and observability — that allows an agent to act reliably in real environments. Together, these three disciplines form a more complete framework for building AI agents capable of handling sophisticated, multi-step software tasks.

0
ProgrammingDEV Community ·

Developer Builds Hinglish AI Voice Tutor to Help Indian Students Practice English and Math

A developer has created Bhasha Academy, an AI-powered voice tutoring platform designed to give Indian learners a private, judgment-free space to practice English and basic math. The system supports Hinglish — a mix of Hindi and English — and uses Deepgram Nova-3 for speech recognition, Google Gemini for conversation, and Murf Falcon TTS for voice output, all coordinated through LiveKit's real-time audio infrastructure. Two distinct AI voices, Anisha and Samar, handle language practice and math sessions respectively, with the system able to switch between specialist agents mid-conversation. The platform also features persistent memory to track learner progress and can escalate sessions to a human teacher when needed, with notifications sent via Discord. A key technical challenge involved ensuring natural Hinglish pronunciation by prompting the model to render Hindi words in Devanagari script rather than romanized transliteration.

0
ProgrammingDEV Community ·

React useInterval Hook Solves the Classic setInterval Stale Closure Bug

A common React pitfall involves using setInterval inside useEffect with an empty dependency array, causing the interval callback to read stale state and produce incorrect results. The underlying issue is a mismatch between setInterval's imperative, render-agnostic nature and React's closure-based state model. Dan Abramov's 2019 essay proposed a declarative useInterval hook that stores the latest callback in a ref, preventing stale closures without restarting the timer on every render. The @reactuses/core library implements this pattern with added real-world features such as null-based pausing, manual pause and resume controls, an immediate execution option, and StrictMode-safe cleanup. The article walks through the hook's internals and covers practical use cases including dynamic polling intervals and background-tab handling.

How a branch checkout silently deleted a pipeline's notifier for days · ShortSingh