Anthropic announced six months of free Claude Max for maintainers of popular open source projects (5,000+ stars or 1M+ NPM downloads) on 27th February.
Now OpenAI have launched their comparable offer: six months of ChatGPT Pro (same $200/month price as Claude Max) with Codex and "conditional access to Codex Security" for core maintainers.
Unlike Anthropic they don't hint at the exact metrics they care about, but the application form does ask for "information such as GitHub stars, monthly downloads, or why the project is important to the ecosystem."
An anonymous reader The Guardian: Humanity is heating the planet faster than ever before, a study has found. Climate breakdown is occurring more rapidly with the heating rate almost doubling, according to research that excludes the effect of natural factors behind the latest scorching temperatures. It found global heating accelerated from a steady rate of less than 0.2C per decade between 1970 and 2015 to about 0.35C per decade over the past 10 years. The rate is higher than scientists have seen since they started systematically taking the Earth's temperature in 1880.
"If the warming rate of the past 10 years continues, it would lead to a long-term exceedance of the 1.5C (2.7F) limit of the Paris agreement before 2030," said Stefan Rahmstorf, a scientist at the Potsdam Institute for Climate Impact Research and co-author of the study. [...] The researchers applied a noise-reduction method to filter out the estimated effect of nonhuman factors in five major datasets that scientists have compiled to gauge the Earth's temperature. In each of them, they found an acceleration in global heating emerged in 2013 or 2014. The findings have been published in the journal Geophysical Research Letters.
OpenAI's GPT-5.4 consolidates advances in reasoning, coding, and agentic workflows while adding a 1 million-token context window and native desktop/computer-use capabilities. Benchmarks show major gains for professional knowledge work and automation: faster, more token-efficient reasoning; improved tool calling via toolsearch; and desktop navigation with higher accuracy than human baselines. Real-world testing highlights exceptional coding and long-form writing abilities alongside persistent issues in frontend taste, excessive verbosity, and occasional premature task completion.
We’re excited to announce the release of Ionic Framework 8.8! This update makes customizing components easier and more flexible by adding new CSS classes, exposing internal elements through CSS Shadow Parts, and introducing new events for the Modal and Refresher components.
Many of the features in this release support community-driven projects adapting Ionic Framework to implement both the latest iOS design system (Liquid Glass) and a Material Design 3 theme, giving developers the tools to create modern, fully branded design systems.
Take a look at the new features that make customizing Ionic Framework simpler and more flexible.
New Drag Events for Sheet & Card Modals
Modals now expose new drag events that let you hook into the complete drag lifecycle. With detailed movement data available, you can respond to position, velocity, progress, and breakpoint changes in real time, enabling richer, more interactive experiences.
New Events
ionDragStart โ fires at the start of the drag gesture without any details
ionDragMove โ fires continuously while the modal is being dragged with currentY, deltaY, velocityY, progress, and, for sheet modals, snapBreakpoint
ionDragEnd โ fires at the end of the drag gesture with currentY, deltaY, velocityY, progress, and, for sheet modals, snapBreakpoint
These events make it possible to coordinate surrounding UI with the gesture. As the modal moves, you can reveal or conceal headers, footers, tab bars, or other interface elements, adjust layout and styling based on progress, and react instantly as the modal shifts position or approaches a breakpoint.
Range now includes significant improvements to dual knob behavior, bringing more predictable interactions and powerful new styling capabilities.
We fixed an issue where knob identities (A and B) would unintentionally swap when crossing over each other. Knobs now retain their static identity, ensuring consistent behavior and styling.
Beyond behavior improvements, Range now exposes additional host classes and Shadow Parts when dualKnobs is enabled, giving you complete control over styling and interaction states.
New Host Classes
When dualKnobs is enabled, the following classes will be applied to the host element:
range-dual-knobs โ always applied
range-pressed-a โ applied when the knob with identity A is pressed
range-pressed-b โ applied when the knob with identity B is pressed
range-pressed-lower โ applied when the knob with position lower is pressed
range-pressed-upper โ applied when the knob with position upper is pressed
These classes allow you to style the component based on the existence of the dualKnobs property and which knob is currently being interacted with.
New Shadow Parts
Dual knob ranges now support two styling models:
Static Identity (A / B) These parts always refer to the same physical knob, even if the knobs cross.
knob-handle-a, knob-handle-b โ applied to the handle of the knob with identity A or B, respectively
knob-a, knob-b โ applied to the knob itself with identity A or B
pin-a, pin-b โ applied to the pin of the knob with identity A or B
Dynamic Position (Lower / Upper) These parts reflect the knob’s current value position. If the knobs cross, these parts swap automatically.
knob-handle-lower, knob-handle-upper โ applied to the knob handle in the lower or upper position, respectively
knob-lower, knob-upper โ applied to the knob itself in the lower or upper position
pin-lower, pin-upper โ applied to the pin of the knob in the lower or upper position
This makes it possible to style knobs either by consistent identity or by their relative position within the range.
New State Parts
To support advanced interaction styling, Range now applies state parts to the active knob’s handle, knob, and pin:
activated โ applied when the knob is active
focused โ applied when the knob is focused
hover โ applied when the knob is hovered
pressed โ applied when the knob is being pressed
Only one set of these state parts is applied at a time when dualKnobs is enabled, ensuring only the knob that has that state will be styled.
These updates make dual knob ranges more reliable, more accessible, and significantly more customizable. Build advanced filtering controls, price selectors, or ranges fully branded to match your design system.
Refresher now emits two new events that give more visibility into the pull gesture lifecycle, letting you respond to user interactions in real time. You can detect exactly when a user starts pulling, and when the refresher has fully returned to its inactive state, including whether the pull completed successfully or was canceled.
New Events
ionPullStart โ fires when the user begins pulling down, without any details
ionPullEnd โ fires after the refresher returns to its inactive state, with a reason property ('complete' or 'cancel') indicating how the pull gesture ended
Deprecated Event
ionStart has been deprecated in favor of ionPullStart to improve consistency across event names. Going forward, event names follow a structure of action + timing (such as Start, Move, or End) to make their purpose more explicit and to allow for better scalability as new events are added.
The event payload is unchanged, so migrating only requires updating the event name.
Example Migration:
// Before
refresher.addEventListener('ionStart', () => {
console.log('Pull Start');
});
// After
refresher.addEventListener('ionPullStart', () => {
console.log('Pull Start');
});
We’ve introduced several new CSS Shadow Parts and classes to provide granular control over component internals previously inaccessible via global CSS.
Content
The .content-fullscreen class is now added to ion-content when the fullscreen property is set to true.
Datetime
The following Shadow Parts give developers control over the headers and calendar elements in the Datetime component:
calendar-days-of-week โ container for the day-of-the-week header (both weekdays and weekends) when using a grid style layout
calendar-header โ container for the month/year picker, navigation buttons, and days of the week in a grid layout
datetime-header โ contains the content for the title slot and the selected date
datetime-selected-date โ contains the selected date
datetime-title โ contains the title slot content
navigation-button โ buttons used to navigate to the next or previous month in grid layout
previous-button โ button used to navigate to the previous month in grid layout
next-button โ button used to navigate to the next month in grid layout
wheel โ wheel container when using a wheel style layout or in the month/year picker in grid layout
Item & List Components
To provide greater flexibility in customizing the appearance and structure of list elements, the following Shadow Parts have been added for Item, Item Divider, Item Option, and List Header components:
Item
inner โ arranges the item content
container โ contains the default slot
Item Divider
inner โ arranges the divider content
container โ contains the default slot
Item Option
inner โ arranges the option content
container โ contains the start, icon-only, default, and end slots
List Header
inner โ arranges the list header content
Range
The .range-value-min and .range-value-max classes are applied to ion-range when the value reaches the configured min or max. When dualKnobs is enabled, both classes may be applied at the same time if the lower and upper knobs are set to the minimum and maximum values, respectively.
Select
The following Shadow Parts allow developers to adjust the appearance of the Select component:
bottom โ container for helper text, error text, and counter
wrapper โ clickable label element wrapping the entire form field
inner โ manages the slots, selected values or placeholder, and toggle icons
Toast
The following Shadow Parts enable customization of the Toast overlay and its content:
wrapper โ outer wrapper for the toast overlay
content โ live region containing the header and message
New and Updated Properties
Segment View
A new swipeGesture property has been added to Segment View to control whether the view can be swiped.
This setting is independent of the swipeGesture property on Segment. If you want to fully disable swiping, you must set swipeGesture to "false" on both the Segment and Segment View components.
Select
A new cancelText property has been added to the modal interface for Select.
When using interface="modal", developers can now customize the cancel button text by setting the cancelText property on ion-select. The value will be passed through to the underlying modal.
The disabled and readonly properties on Textarea now reflect to the host element.
When either property is set, the corresponding HTML attribute is applied to the component’s host element. This improves consistency with native behavior and enables styling via attribute selectors.
Angular Injector Support
ModalController and PopoverController in Angular now support passing a custom Injector when creating overlays.
By default, overlays use the root injector for dependency injection. With this update, you can provide a custom injector so that components rendered inside a modal or popover can access services and tokens that are scoped to a specific route or component tree.
This is especially useful when:
Using route-scoped services
Providing Angular CDK’s Dir directive for bidirectional text support
Accessing providers that are not registered at the root level
You can pass the current component’s injector directly:
Stencil has been updated from v4.38 to v4.43. This update includes various compiler improvements and bug fixes. For a complete list of changes, check out the Stencil Changelog.
As with any dependency update, if you encounter issues related to this Stencil upgrade, please open a new issue so we can investigate.
Looking Ahead: Ionic Framework 9
Ionic Framework 8.8 marks the final minor release in the Ionic 8 lifecycle. As we look ahead, our focus is shifting to the next major evolution of the framework: Ionic Framework 9.
Modular Ionic
Ionic Framework 9 will introduce significant architectural changes aimed at making the framework more modular and easier to extend. These changes lay the foundation for greater flexibility in how developers customize and build on top of Ionic Framework.
One of the main areas to benefit from Ionic Framework 9’s new architecture is theming. Developers will be able to:
Create and distribute custom themes without modifying the core framework
Share reusable themes across projects
Configure component behavior based on the theme
Build themes inspired by design systems such as Liquid Glass
While we are not planning to ship an official Liquid Glass theme right now, the goal is to provide the underlying architecture that enables developers to implement these types of design systems themselves without waiting on us.
React Router Support
Ionic Framework 9 will add support for React Router 6, enabling developers to adopt modern React routing patterns. This update lays the groundwork for future support of React Router 7. We’ll share more details on this soon.
Ionic Framework 8.8 enhances customization today while also paving the way for the modular architecture and React Router 6 support coming in Ionic Framework 9. We can’t wait to see what you build with it!
Weโre improving how add-ins appear on the ribbon in Outlook on the web and the new Outlook on Windows. These Outlook ribbon updates make add-ins easier to find and align the experience across Outlook clients. Improvements include:
Showing the group name specified in your manifest for the add-inโs ribbon button (instead of the add-in name from Microsoft Marketplace).
Adding a dropdown next to the add-in button for quick access to the add-inโs commands.
Adding a similar dropdown in the overflow menu.
To make sure your add-in shows the intended group name when these updates take effect, review your manifest and update the group label if needed. Where the group name is specified depends on the type of manifest your add-in uses.